L0 may be detected just in time if Gen1 training is finished.
But if EP supports higher Gen mode, Gen switch just happen
there but we keep on accessing devices, which leads unstable
link state and fail to detect the device finally.
And a bit more time before accessing devices to avoid this risky
case.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: If7eddce430b4590922b5c8f765be8a240b562d92
FS35ND01G-S1Y2, FS35ND02G-S3Y2, FS35ND04G-S2Y2, fsxxndxxg
Change-Id: Icdff45a209b5aa4dd2827e0e58bd543a84f9d809
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Add a prefix for all clocks to avoid namespace conflicts,
and no functional changes.
Change-Id: I1cf1c868f84b9bee4ba033bdd80c4995876b43f1
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Add a prefix for all clocks to avoid namespace conflicts,
and no functional changes.
Change-Id: I6b586ce859ecf084fe6037c10c775d6bcc78baa1
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
For PMIC that power off supplies by write register via i2c bus,
it's better to do power off at syscore shutdown.
Because when run to kernel's "pm_power_off" call, i2c may has
been stopped or PMIC may not be able to get i2c transfer while
there are too many devices are competiting.
This patch effects on PMIC: RK808/RK818/RK816, not including RK805
which power off system by pull up pmic sleep pin in ATF.
The i2c maybe stopped before pm_power_off() is called, which
results in the PMIC power off failure issue.
Moving PMIC power off operation to syscore shutdown is better.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Ib43827ebd49059719b8899f90a696b6c32a6ddd1
Fix the following gcc warning:
drivers/gpu/drm/rockchip/rockchip_vop2_clk.c:304:5: warning:
no previous prototype for 'vop2_clk_init' [-Wmissing-prototypes]
Fixes: 95b6a39dab ("drm/rockchip: vop2: Add support for rk3588")
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ifc892f473a50a9e408e09648c7a6539ffda24039
The operation of reading back flash cache after programing is not
universal. At present, only ESMT devices are found to have this anomaly.
Change-Id: I3ec21eebc4aa7b8a259129ed2c036e1168553f27
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
RK3588 VOP:
4 Video Ports.
4 Cluster Windows.
4 Esmart Windows.
Can drive HDMI/eDP/DP/MIPI/BT1120/BT656 interface.
Support drive HDMI/DP 8k output in splice mode.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I37df329fcab729cd7fa1de47c4d5faf232bb265f
We enable PM runtime auto suspend on rockchip platforms
(e.g. RK3399), it allows the DWC3 controller to enter
runtime suspend if usb cable detached. So if the dwc3
is already in PM runtime suspend, we don't need to do
anything in dwc3_suspend() and dwc3_resume() which
duplicated the same operations as dwc3_runtime_suspend()
and dwc3_runtime_resume().
This patch can help to avoid kernel panic if accessing
the DWC3 registers in dwc3_resume() when the DWC3 is in
PM runtime suspend and it's power domain is power off.
Kernel panic - not syncing: Asynchronous SError Interrupt
CPU: 1 PID: 707 Comm: Binder:236_2 Not tainted 5.10.43 #270
Hardware name: Rockchip RK3566 RK817 TABLET LP4X Board (DT)
Call trace:
dump_backtrace+0x0/0x1c0
show_stack+0x18/0x24
dump_stack_lvl+0xc8/0x104
dump_stack+0x18/0x5c
panic+0x14c/0x390
test_taint+0x0/0x30
arm64_serror_panic+0x74/0x80
do_serror+0xd8/0xf8
el1_error+0x94/0x118
el1_abort+0x3c/0x60
el1_sync_handler+0x48/0x84
el1_sync+0x8c/0x140
dwc3_phy_setup+0x24/0x50c
dwc3_core_init+0x50/0xf40
dwc3_core_init_for_resume+0x64/0x274
dwc3_resume_common+0x3c/0x274
dwc3_resume+0x28/0x64
dpm_resume+0x134/0x568
Change-Id: I63e734f51b05274251d8a88a664eee768568eb7b
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
There is no validation of the index from dwc3_wIndex_to_dep() and we might
be referring a non-existing ep and trigger a NULL pointer exception. In
certain configurations we might use fewer eps and the index might wrongly
indicate a larger ep index than existing.
By adding this validation from the patch we can actually report a wrong
index back to the caller.
In our usecase we are using a composite device on an older kernel, but
upstream might use this fix also. Unfortunately, I cannot describe the
hardware for others to reproduce the issue as it is a proprietary
implementation.
[ 82.958261] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a4
[ 82.966891] Mem abort info:
[ 82.969663] ESR = 0x96000006
[ 82.972703] Exception class = DABT (current EL), IL = 32 bits
[ 82.978603] SET = 0, FnV = 0
[ 82.981642] EA = 0, S1PTW = 0
[ 82.984765] Data abort info:
[ 82.987631] ISV = 0, ISS = 0x00000006
[ 82.991449] CM = 0, WnR = 0
[ 82.994409] user pgtable: 4k pages, 39-bit VAs, pgdp = 00000000c6210ccc
[ 83.000999] [00000000000000a4] pgd=0000000053aa5003, pud=0000000053aa5003, pmd=0000000000000000
[ 83.009685] Internal error: Oops: 96000006 [#1] PREEMPT SMP
[ 83.026433] Process irq/62-dwc3 (pid: 303, stack limit = 0x000000003985154c)
[ 83.033470] CPU: 0 PID: 303 Comm: irq/62-dwc3 Not tainted 4.19.124 #1
[ 83.044836] pstate: 60000085 (nZCv daIf -PAN -UAO)
[ 83.049628] pc : dwc3_ep0_handle_feature+0x414/0x43c
[ 83.054558] lr : dwc3_ep0_interrupt+0x3b4/0xc94
...
[ 83.141788] Call trace:
[ 83.144227] dwc3_ep0_handle_feature+0x414/0x43c
[ 83.148823] dwc3_ep0_interrupt+0x3b4/0xc94
[ 83.181546] ---[ end trace aac6b5267d84c32f ]---
Change-Id: Iad43f5d46dfd81cabac976f7a65410ecc8a4fcd4
Signed-off-by: Marian-Cristian Rotariu <marian.c.rotariu@gmail.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210608162650.58426-1-marian.c.rotariu@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit d00889080a)
at a high frame rate (120fps), the fast switch test has a higher probability of the following errors:
Failed to get runtime pm, -22
Signed-off-by: Yiqing Zeng <zack.zeng@rock-chips.com>
Change-Id: I6d9fdd86cc69368ba340ab7e43d2b6030a72ce8c