RV1126 set 3.3V before regulator disable.
Do a fix to rockchip io-domain, follow this orders:
* system running state
-> io-domain vsel to 3.3V (actually is done by event-disable)
-> regulator_enable
-> vsel change according to regulator voltage
* system running state
-> regulator_disable
-> io-domain vsel to 3.3V
The bug only instance on RV1126, and tested on RV1126 EVB DDR3 V10.
Change-Id: Ic9d6b05d07b050c392e415786cf6390cc1c5aa9e
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Get the voltage of regulator and then pass it as the parameter of
notify, the driver could take it.
The origin parameter for notify is NULL, so this patch do nothing effect
to other driver who not care about the voltage value.
Change-Id: I22a626132d99501f6f9b25371543ab3c99cb0e02
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
cleanup_planes and return when swap_state failed.
Change-Id: Icbdceb83a16747d42826bd443a6c43fcf3675592
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Commit 6de4caa7df ("arm64: dts: rockchip: rk356x-evb: fix pcie supply
to regulator-fixed") cleanup these stuff but we still have some left.
Then commit e81fbbddde ("arm64: dts: rockchip: rk356x-evb: fix pcie
supply to regulator-fixed") cleanup it but introduce a new bug in dts
property name. Fix the name didn't make it work stabe since we found
some boards need a delay before enabling trainning for power to be
stable from the measurement.
By measurement, 5ms is enough for power and refclk to be stable.
Fixes: 6de4caa7df ("arm64: dts: rockchip: rk356x-evb: fix pcie supply to regulator-fixed")
Fixes: e81fbbddde ("arm64: dts: rockchip: rk356x-evb: fix pcie supply to regulator-fixed")
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: Ibebca2464f3b432114111a774ace14ed1e249ddb
When the CPU is busy, there may be a situation:
1. After the software timeout task of the current task is mounted
2. Than the thread is cut away for too long, and the hardware is
not configured at this time,
3. The software timeout is triggered to go to reset and poweroff.
4. The thread switches back to configure the hardware
5. The hardware is stuck.
Solution:
In the software timeout processing function, judge whether the hardware
at this time has been configured to start.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I00c0794bb2f27690ab8a2341b3bee2d3f942adf8
rkvdec2 link mode use a new serialized work flow.
This process is for link mode decoder in RK356x.
The new flow run async with hardware and use multiple trigger event to
run the work thread. All task operation, power operation and reset
operation are serialzed in one thread with certain order.
This is mainly for runtime debug and it will simplify the system design.
rkvdec2 link mode use two sets of counters to control the hardware io:
1. write / read task for preparing link mode task to ddr.
2. send / recv task for sending / receiving task from hardware.
All the operations are serialized in single work thread. So only a few
of lock and atomic is required.
The decoded counter and total counter are the synchronization method
between driver and hardware.
NOTE:
1. link mode reset should use sip_reset.
2. link mode should not change hardware frequency or power off when
there is still task running.
3. link mode should not access hardware when there is an error happen.
4. link mode should reserve a stuff task for H.264 decode task.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7736d54a64225089cd6d1b6522f660ce4481d437
NVR product isn't need to check yuv420 mode valid in hdmi driver.
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I56264bd3e4a9a3e9d5ddbec48e36fb816dd1de65
Since storage drivers register in module_init, So the vendor_storage
should be initiated after it.
Change-Id: Icefce56c54713dd56ef992ec527e65fce4f0c977
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
[<c010f0c4>] (unwind_backtrace) from [<c010b3dc>] (show_stack+0x10/0x14)
[<c010b3dc>] (show_stack) from [<c03fcff8>] (dump_stack+0x7c/0x98)
[<c03fcff8>] (dump_stack) from [<c03fb0c4>] (Ldiv0_64+0x8/0x18)
[<c03fb0c4>] (Ldiv0_64) from [<c06bb3e8>] (enable_stream+0x290/0x940)
[<c06bb3e8>] (enable_stream) from [<c06bc784>]
(rk628_csi_s_stream+0x10/0x18)
[<c06bc784>] (rk628_csi_s_stream) from [<c06f7538>]
(rkisp1_pipeline_set_stream+0x7c/0x224)
[<c06f7538>] (rkisp1_pipeline_set_stream) from [<c06ff754>]
(rkisp1_start_streaming+0x364/0x69c)
[<c06ff754>] (rkisp1_start_streaming) from [<c06dc918>]
(vb2_start_streaming+0x64/0x128)
[<c06dc918>] (vb2_start_streaming) from [<c06dd4a8>]
(vb2_core_streamon+0xd0/0x12c)
[<c06dd4a8>] (vb2_core_streamon) from [<c06ccc4c>]
(__video_do_ioctl+0x224/0x2bc)
[<c06ccc4c>] (__video_do_ioctl) from [<c06cc668>]
(video_usercopy+0x294/0x648)
[<c06cc668>] (video_usercopy) from [<c06c65c8>] (v4l2_ioctl+0x5c/0x98)
[<c06c65c8>] (v4l2_ioctl) from [<c024f21c>] (do_vfs_ioctl+0x94/0x6a0)
[<c024f21c>] (do_vfs_ioctl) from [<c024f874>] (SyS_ioctl+0x4c/0x70)
[<c024f874>] (SyS_ioctl) from [<c0107240>] (ret_fast_syscall+0x0/0x54)
Division by zero in kernel.
Signed-off-by: Shunqing Chen <csq@rock-chips.com>
Change-Id: Icb94f2ef1dc5575a162faae38e32352c5133ca27
1. reset hdmirx in cru when hotplug or res change to avoid audio L/R channel swap
2. disable hdmirx and audio unit when PHY setup
3. enable audio unit and audio fifo interrupts after N CTS updating
4. double initial audio fifo when fifo overflow after underflow
5. initial audio fifo when fifo overflow after underflow
6. fix i2c access timeout when hdmirx resetting
7. add 60ms delay after phy locked
Change-Id: I0bc2afe33a52a65c8a028695785fa273339b317b
Signed-off-by: Shunhua Lan <lsh@rock-chips.com>
When HDCP is enabled, there is a probability of data error for
a period of time, so we use the above method to workround it:
1. If read the same value six times, we think the data is stable.
2. If thd data is no stable after 1s, force hdcp avmute.
3. If avi packet is no ready, reset hdmi ctrl.
Signed-off-by: Shunqing Chen <csq@rock-chips.com>
Change-Id: Ia4d2fe5fc74188e593ea149404ad2504a0d8a482
How to use this configuration:
make ARCH=arm rv1126_defconfig rv1126-dictionary-pen.config
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Change-Id: I85bc9744b61cd17f0b8f20aabf3184a4a931fd99
When build with rv1126_defconfig:
before:
text data bss dec hex filename
18918 34120 8 53046 cf36 drivers/pinctrl/pinctrl-rockchip.o
after:
text data bss dec hex filename
11726 3028 8 14762 39aa drivers/pinctrl/pinctrl-rockchip.o
Change-Id: I09e85d6a05f9bdee1033584bd1573d41d69633bc
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
1.support suspend logo refresh
2.support multi panel pmics define as:
&ebc_dev {
pmic = <&tps65185 &sy7673a &xxxx>;
}
3.do err when bufmode not support
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
Change-Id: I9686a7d2eae8051c04c53970acdc7793870dd553
When internal DMA ready, the last spare data may still in fifo.
Change-Id: I1cf670d2008ea62b67b517641e31386fd0877417
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Requesting perst# as high and then drive it low makes some
buggy devices fail to work properly, for instance Biwin SSD.
It's not mandatory to have a high-low transition for perst#
before powering up. So we request it as output-low state directly
and remove redundant code.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: Ib62954f8dccc8a21dd06e7a582263bcf62995f29
1. Remove unused state
The link mode process will be moved to new function.
2. Remove reduce frequency function
The future link mode process should not reduce hardware frequency.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I173912e149e68aca97d5367ce92facf1af05eda7
Add new function pointer for process task, wait task result and task
worker thread.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib0b23c90083b9acab6a8eec8db0871304dbb72ca
This reverts commit 384134cb60.
bcm2079x is unused.
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ibbc1b18fbadc1de9fa66915348b3382533ad1621