* [REGRESSION][BISECTED] No display on rk3399-gru-kevin @ 2026-06-16 23:05 Vicente Bergas 2026-06-17 7:30 ` Damon Ding 2026-06-17 8:45 ` Heiko Stübner 0 siblings, 2 replies; 9+ messages in thread From: Vicente Bergas @ 2026-06-16 23:05 UTC (permalink / raw) To: Shawn Lin, Damon Ding Cc: Sandy Huang, Andy Yan, Heiko Stübner, open list:ARM/Rockchip SoC... Hello, there are two issues that result on a black screen on the rk3399-gru-kevin. The first one is due to: c8079f83e0bf312645050c17d9c87deb707369c1 gpio: rockchip: convert to dynamic GPIO base allocation Reverting this does not fix the problem as there is a second one: 51eb548ade20158b4f4f8693a95b1f31a2480e8e drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() That second one depends on: d84b087c7662dd65cd51b228219987c31b1cee02 drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages and pre-emphasises Reverting all three commits from v7.1 make the display work again. Please, can this be resolved? Regards, Vicente. _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-16 23:05 [REGRESSION][BISECTED] No display on rk3399-gru-kevin Vicente Bergas @ 2026-06-17 7:30 ` Damon Ding 2026-06-17 8:45 ` Heiko Stübner 1 sibling, 0 replies; 9+ messages in thread From: Damon Ding @ 2026-06-17 7:30 UTC (permalink / raw) To: Vicente Bergas, Shawn Lin Cc: Sandy Huang, Andy Yan, Heiko Stübner, open list:ARM/Rockchip SoC... Hi Vicente, On 6/17/2026 7:05 AM, Vicente Bergas wrote: > Hello, > there are two issues that result on a black screen on the rk3399-gru-kevin. > > The first one is due to: > c8079f83e0bf312645050c17d9c87deb707369c1 > gpio: rockchip: convert to dynamic GPIO base allocation > > Reverting this does not fix the problem as there is a second one: > 51eb548ade20158b4f4f8693a95b1f31a2480e8e > drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() > > That second one depends on: > d84b087c7662dd65cd51b228219987c31b1cee02 > drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages > and pre-emphasises > > Reverting all three commits from v7.1 make the display work again. > > Please, can this be resolved? > These two issues appear to come from entirely distinct subsystems. Could you share the related error logs so I can analyze them further? Additionally, I will set up an RK3399 EVB1 environment locally to reproduce and verify this issue later. Best regards, Damon _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-16 23:05 [REGRESSION][BISECTED] No display on rk3399-gru-kevin Vicente Bergas 2026-06-17 7:30 ` Damon Ding @ 2026-06-17 8:45 ` Heiko Stübner 2026-06-17 23:15 ` Vicente Bergas 1 sibling, 1 reply; 9+ messages in thread From: Heiko Stübner @ 2026-06-17 8:45 UTC (permalink / raw) To: Shawn Lin, Damon Ding, Vicente Bergas Cc: Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... Hi Vicente, Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: > Hello, > there are two issues that result on a black screen on the rk3399-gru-kevin. > > The first one is due to: > c8079f83e0bf312645050c17d9c87deb707369c1 > gpio: rockchip: convert to dynamic GPIO base allocation can you check that your kernel contains "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff > Reverting this does not fix the problem as there is a second one: > 51eb548ade20158b4f4f8693a95b1f31a2480e8e > drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() > > That second one depends on: > d84b087c7662dd65cd51b228219987c31b1cee02 > drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages > and pre-emphasises > > Reverting all three commits from v7.1 make the display work again. > > Please, can this be resolved? and as Damon wrote, please provide logs, so we can see the actual problem Thanks Heiko _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-17 8:45 ` Heiko Stübner @ 2026-06-17 23:15 ` Vicente Bergas 2026-06-18 3:49 ` Damon Ding 0 siblings, 1 reply; 9+ messages in thread From: Vicente Bergas @ 2026-06-17 23:15 UTC (permalink / raw) To: Heiko Stübner Cc: Shawn Lin, Damon Ding, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: > > Hi Vicente, > > Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: > > Hello, > > there are two issues that result on a black screen on the rk3399-gru-kevin. > > > > The first one is due to: > > c8079f83e0bf312645050c17d9c87deb707369c1 > > gpio: rockchip: convert to dynamic GPIO base allocation > > can you check that your kernel contains > "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff Yes, that commit is in v7.1 and it indeed fixes the gpio issue. I tested reverting c8079f83 alone and reverting all three. Now i've tested only reverting 51eb548a and d84b087c, and it works. The thing is both bugs coexisted at some point and git bisect finds them in order. > > Reverting this does not fix the problem as there is a second one: > > 51eb548ade20158b4f4f8693a95b1f31a2480e8e > > drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() > > > > That second one depends on: > > d84b087c7662dd65cd51b228219987c31b1cee02 > > drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages > > and pre-emphasises > > > > Reverting all three commits from v7.1 make the display work again. > > > > Please, can this be resolved? > > and as Damon wrote, please provide logs, so we can see the actual problem It is quite difficult to read the logs from a black screen... Jokes apart, here they are: Relevant log entries: <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 minor 0x0 status 0x0 <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, issues: 00000000,24040400 <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7 <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop (ops 0xffff800080c9a3c8) <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop (ops 0xffff800080c9a3c8) <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp (ops 0xffff800080c9e840) <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp (ops 0xffff800080c9f0c8) <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not connected; disabling cdn <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for display-subsystem on minor 1 <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already disabled panel <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp commit error, ret = -5 <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already disabled panel <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp commit error, ret = -5 <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already disabled panel <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp commit error, ret = -5 <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already disabled panel <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp commit error, ret = -5 <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already disabled panel <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp commit error, ret = -5 <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set bridge, give it up <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device Other log entries at level <= 4 <4>[ 0.000000] GICv3: Broken GIC integration, security disabled <4>[ 0.266364] dw_wdt ff848000.watchdog: No valid TOPs array specified <6>[ 0.321624] ntc-thermistor thermistor-ppvar-bigcpu: Thermistor type: ncp15wb473 successfully probed. <3>[ 0.321959] thermal_sys: bigcpu-reg-thermal: Failed to read thermal-sensors cells: -2 <3>[ 0.321979] thermal_sys: Failed to find thermal zone for thermistor-ppvar-litcpu id=0 <3>[ 0.322045] ntc-thermistor thermistor-ppvar-litcpu: unable to register as hwmon device. <3>[ 0.322056] ntc-thermistor thermistor-ppvar-litcpu: probe with driver ntc-thermistor failed with error -2 <4>[ 0.338223] sbs-battery 9-000b: I2C adapter does not support I2C_FUNC_SMBUS_READ_BLOCK_DATA. Fallback method does not support PEC. <4>[ 0.900862] rockchip-i2s ff880000.i2s: using zero-initialized flat cache, this may cause unexpected behavior <3>[ 0.907748] rk3399-gru-sound sound: ASoC: driver name too long 'rk3399-gru-sound' -> 'rk3399-gru-soun' <3>[ 2.885745] Bluetooth: hci0: unexpected event for opcode 0x0000 Regards, Vicente. _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-17 23:15 ` Vicente Bergas @ 2026-06-18 3:49 ` Damon Ding 2026-06-18 23:51 ` Vicente Bergas 0 siblings, 1 reply; 9+ messages in thread From: Damon Ding @ 2026-06-18 3:49 UTC (permalink / raw) To: Vicente Bergas, Heiko Stübner Cc: Shawn Lin, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... [-- Attachment #1: Type: text/plain, Size: 8479 bytes --] Hi Vicente, On 6/18/2026 7:15 AM, Vicente Bergas wrote: > On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: >> >> Hi Vicente, >> >> Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: >>> Hello, >>> there are two issues that result on a black screen on the rk3399-gru-kevin. >>> >>> The first one is due to: >>> c8079f83e0bf312645050c17d9c87deb707369c1 >>> gpio: rockchip: convert to dynamic GPIO base allocation >> >> can you check that your kernel contains >> "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" >> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff > > Yes, that commit is in v7.1 and it indeed fixes the gpio issue. > I tested reverting c8079f83 alone and reverting all three. > Now i've tested only reverting 51eb548a and d84b087c, and it works. > The thing is both bugs coexisted at some point and > git bisect finds them in order. > >>> Reverting this does not fix the problem as there is a second one: >>> 51eb548ade20158b4f4f8693a95b1f31a2480e8e >>> drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() >>> >>> That second one depends on: >>> d84b087c7662dd65cd51b228219987c31b1cee02 >>> drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages >>> and pre-emphasises >>> >>> Reverting all three commits from v7.1 make the display work again. >>> >>> Please, can this be resolved? >> >> and as Damon wrote, please provide logs, so we can see the actual problem > > It is quite difficult to read the logs from a black screen... > Jokes apart, here they are: > > Relevant log entries: > <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 > <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 > <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 > <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 > <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 > <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 > <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 > <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 > <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel > <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 > <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 > <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 > <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured > <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured > <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 > <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 > minor 0x0 status 0x0 > <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, > issues: 00000000,24040400 > <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 > Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff > JS:0x7 > <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 > <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 > <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured > <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured > <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop > (ops 0xffff800080c9a3c8) > <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop > (ops 0xffff800080c9a3c8) > <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach > <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp > (ops 0xffff800080c9e840) > <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp > (ops 0xffff800080c9f0c8) > <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not > connected; disabling cdn > <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for > display-subsystem on minor 1 > <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already > disabled panel > <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop > <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! > <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) > <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > commit error, ret = -5 > <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 > <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already > disabled panel > <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop > <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! > <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) > <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > commit error, ret = -5 > <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 > <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already > disabled panel > <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop > <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! > <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) > <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > commit error, ret = -5 > <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 > <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already > disabled panel > <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop > <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! > <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) > <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > commit error, ret = -5 > <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 > <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already > disabled panel > <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop > <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! > <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) > <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > commit error, ret = -5 > <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 > <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set > bridge, give it up > <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 > <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: > rockchipdrmfb frame buffer device > > I have tested RK3399 IND EVB locally based on kernel v7.1, and eDP training completes successfully with normal display output with patch 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch applied. From your logs, the failure occurs during the EQ stage of eDP training. Please apply the additional patch 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch without reverting the two commits mentioned above (51eb548a and d84b087c), then retest to check if the issue gets improved. (BTW: This is a test-only temporary patch with minor style flaws, but the patch needs upstreaming. I'll rework and send a formal version soon.) If the problem persists, try adding a small delay at the location mentioned below for further verification: diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index a5dc645d7005..6dac3974acb5 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -401,6 +401,8 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp) analogix_dp_get_adjust_training_lane(dp, link_status); + usleep_range(5000, 6000); + if (drm_dp_channel_eq_ok(link_status, lane_count)) { /* traing pattern Set to Normal */ retval = analogix_dp_training_pattern_dis(dp); (Note: This delay is only for testing purpose) Best regards, Damon [-- Attachment #2: 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch --] [-- Type: text/plain, Size: 1976 bytes --] From 82188d8c190ad926f14126a889701d57108a917f Mon Sep 17 00:00:00 2001 From: Damon Ding <damon.ding@rock-chips.com> Date: Thu, 18 Jun 2026 11:31:14 +0800 Subject: [PATCH 1/2] arm64: dts: rockchip: Enable eDP display for RK3399 IND EVB board Signed-off-by: Damon Ding <damon.ding@rock-chips.com> --- .../boot/dts/rockchip/rk3399-evb-ind.dts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts index 70aee1ab904c..3d7242d480ad 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts @@ -17,6 +17,14 @@ aliases { chosen { stdout-path = "serial2:1500000n8"; + bootargs = "root=PARTUUID=614e0000-0000 rootwait"; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; + power-supply = <&vcc_lcd>; + pwms = <&pwm2 0 25000 0>; }; vcc5v0_sys: regulator-vcc5v0-sys { @@ -29,6 +37,17 @@ vcc5v0_sys: regulator-vcc5v0-sys { regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; }; + + vcc_lcd: vcc-lcd { + compatible = "regulator-fixed"; + regulator-name = "vcc_lcd"; + startup-delay-us = <20000>; + enable-active-high; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + vin-supply = <&vcc5v0_sys>; + }; }; &cpu_b0 { @@ -492,3 +511,34 @@ &vopl { &vopl_mmu { status = "okay"; }; + +&edp { + force-hpd; + status = "okay"; + + aux-bus { + panel { + compatible = "edp-panel"; + backlight = <&backlight>; + power-supply = <&vcc_lcd>; + no-hpd; + + port { + panel_in_edp: endpoint { + remote-endpoint = <&edp_out_panel>; + }; + }; + }; + }; +}; + +&edp_out { + edp_out_panel: endpoint { + remote-endpoint = <&panel_in_edp>; + }; +}; + +&pwm2 { + pinctrl-0 = <&pwm2_pin_pull_down>; + status = "okay"; +}; -- 2.34.1 [-- Attachment #3: 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch --] [-- Type: text/plain, Size: 2188 bytes --] From 6115abdc02618d699b58364d1bae985e42001f85 Mon Sep 17 00:00:00 2001 From: Damon Ding <damon.ding@rock-chips.com> Date: Thu, 18 Jun 2026 11:32:22 +0800 Subject: [PATCH 2/2] drm/bridge: analogix_dp: Read CR/EQ delay from DPCD instead of fixed delay time Signed-off-by: Damon Ding <damon.ding@rock-chips.com> --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 10 ++++++++-- drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 8dee5f2fbde5..a5dc645d7005 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -325,7 +325,7 @@ static int analogix_dp_process_clock_recovery(struct analogix_dp_device *dp) u8 voltage_swing, pre_emphasis, training_lane; u8 link_status[DP_LINK_STATUS_SIZE]; - usleep_range(100, 101); + drm_dp_link_train_clock_recovery_delay(&dp->aux, dp->dpcd); lane_count = dp->link_train.lane_count; @@ -386,7 +386,7 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp) u32 reg; u8 link_status[DP_LINK_STATUS_SIZE]; - usleep_range(400, 401); + drm_dp_link_train_channel_eq_delay(&dp->aux, dp->dpcd); lane_count = dp->link_train.lane_count; @@ -747,6 +747,12 @@ static int analogix_dp_commit(struct analogix_dp_device *dp) { int ret; + ret = drm_dp_read_dpcd_caps(&dp->aux, dp->dpcd); + if (ret < 0) { + dev_err(dp->dev, "failed to read dpcd caps: %d\n", ret); + return ret; + } + /* Keep the panel disabled while we configure video */ drm_panel_disable(dp->plat_data->panel); diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h index 91b215c6a0cf..21d4d7f4ad34 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h @@ -170,6 +170,8 @@ struct analogix_dp_device { bool fast_train_enable; bool psr_supported; + u8 dpcd[DP_RECEIVER_CAP_SIZE]; + struct analogix_dp_plat_data *plat_data; }; -- 2.34.1 [-- Attachment #4: Type: text/plain, Size: 170 bytes --] _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-18 3:49 ` Damon Ding @ 2026-06-18 23:51 ` Vicente Bergas 2026-06-22 2:02 ` Damon Ding 0 siblings, 1 reply; 9+ messages in thread From: Vicente Bergas @ 2026-06-18 23:51 UTC (permalink / raw) To: Damon Ding Cc: Heiko Stübner, Shawn Lin, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... On Thu, Jun 18, 2026 at 5:49 AM Damon Ding <damon.ding@rock-chips.com> wrote: > > Hi Vicente, > > On 6/18/2026 7:15 AM, Vicente Bergas wrote: > > On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: > >> > >> Hi Vicente, > >> > >> Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: > >>> Hello, > >>> there are two issues that result on a black screen on the rk3399-gru-kevin. > >>> > >>> The first one is due to: > >>> c8079f83e0bf312645050c17d9c87deb707369c1 > >>> gpio: rockchip: convert to dynamic GPIO base allocation > >> > >> can you check that your kernel contains > >> "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" > >> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff > > > > Yes, that commit is in v7.1 and it indeed fixes the gpio issue. > > I tested reverting c8079f83 alone and reverting all three. > > Now i've tested only reverting 51eb548a and d84b087c, and it works. > > The thing is both bugs coexisted at some point and > > git bisect finds them in order. > > > >>> Reverting this does not fix the problem as there is a second one: > >>> 51eb548ade20158b4f4f8693a95b1f31a2480e8e > >>> drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() > >>> > >>> That second one depends on: > >>> d84b087c7662dd65cd51b228219987c31b1cee02 > >>> drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages > >>> and pre-emphasises > >>> > >>> Reverting all three commits from v7.1 make the display work again. > >>> > >>> Please, can this be resolved? > >> > >> and as Damon wrote, please provide logs, so we can see the actual problem > > > > It is quite difficult to read the logs from a black screen... > > Jokes apart, here they are: > > > > Relevant log entries: > > <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 > > <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 > > <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 > > <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 > > <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 > > <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 > > <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 > > <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 > > <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel > > <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 > > <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 > > <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 > > <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured > > <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured > > <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 > > <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 > > minor 0x0 status 0x0 > > <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, > > issues: 00000000,24040400 > > <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 > > Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff > > JS:0x7 > > <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 > > <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 > > <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured > > <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured > > <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop > > (ops 0xffff800080c9a3c8) > > <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop > > (ops 0xffff800080c9a3c8) > > <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach > > <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp > > (ops 0xffff800080c9e840) > > <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp > > (ops 0xffff800080c9f0c8) > > <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not > > connected; disabling cdn > > <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for > > display-subsystem on minor 1 > > <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already > > disabled panel > > <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop > > <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! > > <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) > > <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > > <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > > commit error, ret = -5 > > <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 > > <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already > > disabled panel > > <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop > > <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! > > <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) > > <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > > <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > > commit error, ret = -5 > > <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 > > <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already > > disabled panel > > <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop > > <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! > > <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) > > <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > > <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > > commit error, ret = -5 > > <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 > > <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already > > disabled panel > > <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop > > <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! > > <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) > > <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > > <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > > commit error, ret = -5 > > <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 > > <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already > > disabled panel > > <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop > > <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! > > <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) > > <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > > <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > > commit error, ret = -5 > > <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 > > <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set > > bridge, give it up > > <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 > > <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: > > rockchipdrmfb frame buffer device > > > > > > I have tested RK3399 IND EVB locally based on kernel v7.1, and eDP > training completes successfully with normal display output with patch > 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch applied. > > From your logs, the failure occurs during the EQ stage of eDP training. > Please apply the additional patch > 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch without > reverting the two commits mentioned above (51eb548a and d84b087c), then > retest to check if the issue gets improved. > (BTW: This is a test-only temporary patch with minor style flaws, but > the patch needs upstreaming. I'll rework and send a formal version soon.) Hi Damon, applying patch 0001 and 0002 does not fix the issue. The logs are mostly the same. > If the problem persists, try adding a small delay at the location > mentioned below for further verification: applying the extra delay results are the same, just small noise in the dmesg timestamps. Besides this, i've done another test: i have reverted 51eb548a while keeping d84b087c, which i had to rebase. The result is again the same: black screen and the logs are again equivalent. That proves that both patches 51eb548a and d84b087c each introduce a regression. Regards, Vicente. > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > index a5dc645d7005..6dac3974acb5 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > @@ -401,6 +401,8 @@ static int > analogix_dp_process_equalizer_training(struct analogix_dp_device *dp) > > analogix_dp_get_adjust_training_lane(dp, link_status); > > + usleep_range(5000, 6000); > + > if (drm_dp_channel_eq_ok(link_status, lane_count)) { > /* traing pattern Set to Normal */ > retval = analogix_dp_training_pattern_dis(dp); > (Note: This delay is only for testing purpose) > > Best regards, > Damon _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-18 23:51 ` Vicente Bergas @ 2026-06-22 2:02 ` Damon Ding 2026-06-22 17:08 ` Vicente Bergas 0 siblings, 1 reply; 9+ messages in thread From: Damon Ding @ 2026-06-22 2:02 UTC (permalink / raw) To: Vicente Bergas Cc: Heiko Stübner, Shawn Lin, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... Hi Vicente, On 6/19/2026 7:51 AM, Vicente Bergas wrote: > On Thu, Jun 18, 2026 at 5:49 AM Damon Ding <damon.ding@rock-chips.com> wrote: >> >> Hi Vicente, >> >> On 6/18/2026 7:15 AM, Vicente Bergas wrote: >>> On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: >>>> >>>> Hi Vicente, >>>> >>>> Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: >>>>> Hello, >>>>> there are two issues that result on a black screen on the rk3399-gru-kevin. >>>>> >>>>> The first one is due to: >>>>> c8079f83e0bf312645050c17d9c87deb707369c1 >>>>> gpio: rockchip: convert to dynamic GPIO base allocation >>>> >>>> can you check that your kernel contains >>>> "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" >>>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff >>> >>> Yes, that commit is in v7.1 and it indeed fixes the gpio issue. >>> I tested reverting c8079f83 alone and reverting all three. >>> Now i've tested only reverting 51eb548a and d84b087c, and it works. >>> The thing is both bugs coexisted at some point and >>> git bisect finds them in order. >>> >>>>> Reverting this does not fix the problem as there is a second one: >>>>> 51eb548ade20158b4f4f8693a95b1f31a2480e8e >>>>> drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() >>>>> >>>>> That second one depends on: >>>>> d84b087c7662dd65cd51b228219987c31b1cee02 >>>>> drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages >>>>> and pre-emphasises >>>>> >>>>> Reverting all three commits from v7.1 make the display work again. >>>>> >>>>> Please, can this be resolved? >>>> >>>> and as Damon wrote, please provide logs, so we can see the actual problem >>> >>> It is quite difficult to read the logs from a black screen... >>> Jokes apart, here they are: >>> >>> Relevant log entries: >>> <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 >>> <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 >>> <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 >>> <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 >>> <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 >>> <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 >>> <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 >>> <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 >>> <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel >>> <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 >>> <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 >>> <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 >>> <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured >>> <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured >>> <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 >>> <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 >>> minor 0x0 status 0x0 >>> <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, >>> issues: 00000000,24040400 >>> <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 >>> Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff >>> JS:0x7 >>> <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 >>> <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 >>> <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured >>> <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured >>> <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop >>> (ops 0xffff800080c9a3c8) >>> <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop >>> (ops 0xffff800080c9a3c8) >>> <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach >>> <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp >>> (ops 0xffff800080c9e840) >>> <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp >>> (ops 0xffff800080c9f0c8) >>> <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not >>> connected; disabling cdn >>> <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for >>> display-subsystem on minor 1 >>> <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already >>> disabled panel >>> <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop >>> <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! >>> <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) >>> <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>> <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>> commit error, ret = -5 >>> <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 >>> <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already >>> disabled panel >>> <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop >>> <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! >>> <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) >>> <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>> <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>> commit error, ret = -5 >>> <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 >>> <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already >>> disabled panel >>> <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop >>> <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! >>> <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) >>> <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>> <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>> commit error, ret = -5 >>> <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 >>> <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already >>> disabled panel >>> <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop >>> <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! >>> <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) >>> <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>> <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>> commit error, ret = -5 >>> <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 >>> <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already >>> disabled panel >>> <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop >>> <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! >>> <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) >>> <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>> <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>> commit error, ret = -5 >>> <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 >>> <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set >>> bridge, give it up >>> <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 >>> <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: >>> rockchipdrmfb frame buffer device >>> >>> >> >> I have tested RK3399 IND EVB locally based on kernel v7.1, and eDP >> training completes successfully with normal display output with patch >> 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch applied. >> >> From your logs, the failure occurs during the EQ stage of eDP training. >> Please apply the additional patch >> 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch without >> reverting the two commits mentioned above (51eb548a and d84b087c), then >> retest to check if the issue gets improved. >> (BTW: This is a test-only temporary patch with minor style flaws, but >> the patch needs upstreaming. I'll rework and send a formal version soon.) > > Hi Damon, > applying patch 0001 and 0002 does not fix the issue. > The logs are mostly the same. > >> If the problem persists, try adding a small delay at the location >> mentioned below for further verification: > > applying the extra delay results are the same, just small noise in the > dmesg timestamps. > > Besides this, i've done another test: > i have reverted 51eb548a while keeping d84b087c, which i had to rebase. > The result is again the same: black screen and the logs are again equivalent. > That proves that both patches 51eb548a and d84b087c each introduce a regression. > Thanks a lot for all these thorough tests, your results give me much clearer clues. I suspect the root cause is not the EQ training delay, but incorrect PE (pre-emphasis) and VS (voltage swing) register configuration. Please do not revert any of the two commits mentioned above. Instead, apply the following patch which may properly resolve the black screen issue you are seeing: diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index a5dc645d7005..30ad952c5c12 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -306,7 +306,9 @@ static void analogix_dp_get_adjust_training_lane(struct analogix_dp_device *dp, lane_count = dp->link_train.lane_count; for (lane = 0; lane < lane_count; lane++) { voltage_swing = drm_dp_get_adjust_request_voltage(link_status, lane); + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; pre_emphasis = drm_dp_get_adjust_request_pre_emphasis(link_status, lane); + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; training_lane = DPCD_VOLTAGE_SWING_SET(voltage_swing) | DPCD_PRE_EMPHASIS_SET(pre_emphasis); @@ -352,7 +354,9 @@ static int analogix_dp_process_clock_recovery(struct analogix_dp_device *dp) for (lane = 0; lane < lane_count; lane++) { training_lane = analogix_dp_get_lane_link_training(dp, lane); voltage_swing = drm_dp_get_adjust_request_voltage(link_status, lane); + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; pre_emphasis = drm_dp_get_adjust_request_pre_emphasis(link_status, lane); + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; if (DPCD_VOLTAGE_SWING_GET(training_lane) == voltage_swing && DPCD_PRE_EMPHASIS_GET(training_lane) == pre_emphasis) Without this fix, there is no obvious error when pre-emphasis equals 0, but wrong register values will be programmed once PE is non-zero. Best regards, Damon _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-22 2:02 ` Damon Ding @ 2026-06-22 17:08 ` Vicente Bergas 2026-06-24 4:00 ` Damon Ding 0 siblings, 1 reply; 9+ messages in thread From: Vicente Bergas @ 2026-06-22 17:08 UTC (permalink / raw) To: Damon Ding Cc: Heiko Stübner, Shawn Lin, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... On Mon, Jun 22, 2026 at 4:02 AM Damon Ding <damon.ding@rock-chips.com> wrote: > > Hi Vicente, > > On 6/19/2026 7:51 AM, Vicente Bergas wrote: > > On Thu, Jun 18, 2026 at 5:49 AM Damon Ding <damon.ding@rock-chips.com> wrote: > >> > >> Hi Vicente, > >> > >> On 6/18/2026 7:15 AM, Vicente Bergas wrote: > >>> On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: > >>>> > >>>> Hi Vicente, > >>>> > >>>> Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: > >>>>> Hello, > >>>>> there are two issues that result on a black screen on the rk3399-gru-kevin. > >>>>> > >>>>> The first one is due to: > >>>>> c8079f83e0bf312645050c17d9c87deb707369c1 > >>>>> gpio: rockchip: convert to dynamic GPIO base allocation > >>>> > >>>> can you check that your kernel contains > >>>> "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" > >>>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff > >>> > >>> Yes, that commit is in v7.1 and it indeed fixes the gpio issue. > >>> I tested reverting c8079f83 alone and reverting all three. > >>> Now i've tested only reverting 51eb548a and d84b087c, and it works. > >>> The thing is both bugs coexisted at some point and > >>> git bisect finds them in order. > >>> > >>>>> Reverting this does not fix the problem as there is a second one: > >>>>> 51eb548ade20158b4f4f8693a95b1f31a2480e8e > >>>>> drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() > >>>>> > >>>>> That second one depends on: > >>>>> d84b087c7662dd65cd51b228219987c31b1cee02 > >>>>> drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages > >>>>> and pre-emphasises > >>>>> > >>>>> Reverting all three commits from v7.1 make the display work again. > >>>>> > >>>>> Please, can this be resolved? > >>>> > >>>> and as Damon wrote, please provide logs, so we can see the actual problem > >>> > >>> It is quite difficult to read the logs from a black screen... > >>> Jokes apart, here they are: > >>> > >>> Relevant log entries: > >>> <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 > >>> <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 > >>> <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 > >>> <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 > >>> <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 > >>> <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 > >>> <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 > >>> <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 > >>> <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel > >>> <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 > >>> <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 > >>> <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 > >>> <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured > >>> <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured > >>> <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 > >>> <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 > >>> minor 0x0 status 0x0 > >>> <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, > >>> issues: 00000000,24040400 > >>> <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 > >>> Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff > >>> JS:0x7 > >>> <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 > >>> <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 > >>> <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured > >>> <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured > >>> <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop > >>> (ops 0xffff800080c9a3c8) > >>> <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop > >>> (ops 0xffff800080c9a3c8) > >>> <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach > >>> <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp > >>> (ops 0xffff800080c9e840) > >>> <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp > >>> (ops 0xffff800080c9f0c8) > >>> <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not > >>> connected; disabling cdn > >>> <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for > >>> display-subsystem on minor 1 > >>> <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already > >>> disabled panel > >>> <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop > >>> <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! > >>> <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) > >>> <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > >>> <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > >>> commit error, ret = -5 > >>> <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 > >>> <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already > >>> disabled panel > >>> <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop > >>> <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! > >>> <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) > >>> <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > >>> <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > >>> commit error, ret = -5 > >>> <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 > >>> <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already > >>> disabled panel > >>> <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop > >>> <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! > >>> <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) > >>> <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > >>> <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > >>> commit error, ret = -5 > >>> <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 > >>> <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already > >>> disabled panel > >>> <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop > >>> <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! > >>> <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) > >>> <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > >>> <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > >>> commit error, ret = -5 > >>> <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 > >>> <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already > >>> disabled panel > >>> <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop > >>> <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! > >>> <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) > >>> <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 > >>> <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp > >>> commit error, ret = -5 > >>> <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 > >>> <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set > >>> bridge, give it up > >>> <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 > >>> <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: > >>> rockchipdrmfb frame buffer device > >>> > >>> > >> > >> I have tested RK3399 IND EVB locally based on kernel v7.1, and eDP > >> training completes successfully with normal display output with patch > >> 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch applied. > >> > >> From your logs, the failure occurs during the EQ stage of eDP training. > >> Please apply the additional patch > >> 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch without > >> reverting the two commits mentioned above (51eb548a and d84b087c), then > >> retest to check if the issue gets improved. > >> (BTW: This is a test-only temporary patch with minor style flaws, but > >> the patch needs upstreaming. I'll rework and send a formal version soon.) > > > > Hi Damon, > > applying patch 0001 and 0002 does not fix the issue. > > The logs are mostly the same. > > > >> If the problem persists, try adding a small delay at the location > >> mentioned below for further verification: > > > > applying the extra delay results are the same, just small noise in the > > dmesg timestamps. > > > > Besides this, i've done another test: > > i have reverted 51eb548a while keeping d84b087c, which i had to rebase. > > The result is again the same: black screen and the logs are again equivalent. > > That proves that both patches 51eb548a and d84b087c each introduce a regression. > > > > Thanks a lot for all these thorough tests, your results give me much > clearer clues. > > I suspect the root cause is not the EQ training delay, but incorrect PE > (pre-emphasis) and VS (voltage swing) register configuration. > > Please do not revert any of the two commits mentioned above. Instead, > apply the following patch which may properly resolve the black screen > issue you are seeing: > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > index a5dc645d7005..30ad952c5c12 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > @@ -306,7 +306,9 @@ static void > analogix_dp_get_adjust_training_lane(struct analogix_dp_device *dp, > lane_count = dp->link_train.lane_count; > for (lane = 0; lane < lane_count; lane++) { > voltage_swing = > drm_dp_get_adjust_request_voltage(link_status, lane); > + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; > pre_emphasis = > drm_dp_get_adjust_request_pre_emphasis(link_status, lane); > + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; > training_lane = DPCD_VOLTAGE_SWING_SET(voltage_swing) | > DPCD_PRE_EMPHASIS_SET(pre_emphasis); > > @@ -352,7 +354,9 @@ static int analogix_dp_process_clock_recovery(struct > analogix_dp_device *dp) > for (lane = 0; lane < lane_count; lane++) { > training_lane = analogix_dp_get_lane_link_training(dp, > lane); > voltage_swing = > drm_dp_get_adjust_request_voltage(link_status, lane); > + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; > pre_emphasis = > drm_dp_get_adjust_request_pre_emphasis(link_status, lane); > + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; > > if (DPCD_VOLTAGE_SWING_GET(training_lane) == > voltage_swing && > DPCD_PRE_EMPHASIS_GET(training_lane) == pre_emphasis) > > > Without this fix, there is no obvious error when pre-emphasis equals 0, > but wrong register values will be programmed once PE is non-zero. You found it! Applying the shifts makes it work. Thanks, Vicente. > Best regards, > Damon _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [REGRESSION][BISECTED] No display on rk3399-gru-kevin 2026-06-22 17:08 ` Vicente Bergas @ 2026-06-24 4:00 ` Damon Ding 0 siblings, 0 replies; 9+ messages in thread From: Damon Ding @ 2026-06-24 4:00 UTC (permalink / raw) To: Vicente Bergas Cc: Heiko Stübner, Shawn Lin, Sandy Huang, Andy Yan, open list:ARM/Rockchip SoC... On 6/23/2026 1:08 AM, Vicente Bergas wrote: > On Mon, Jun 22, 2026 at 4:02 AM Damon Ding <damon.ding@rock-chips.com> wrote: >> >> Hi Vicente, >> >> On 6/19/2026 7:51 AM, Vicente Bergas wrote: >>> On Thu, Jun 18, 2026 at 5:49 AM Damon Ding <damon.ding@rock-chips.com> wrote: >>>> >>>> Hi Vicente, >>>> >>>> On 6/18/2026 7:15 AM, Vicente Bergas wrote: >>>>> On Wed, Jun 17, 2026 at 10:45 AM Heiko Stübner <heiko@sntech.de> wrote: >>>>>> >>>>>> Hi Vicente, >>>>>> >>>>>> Am Mittwoch, 17. Juni 2026, 01:05:27 Mitteleuropäische Sommerzeit schrieb Vicente Bergas: >>>>>>> Hello, >>>>>>> there are two issues that result on a black screen on the rk3399-gru-kevin. >>>>>>> >>>>>>> The first one is due to: >>>>>>> c8079f83e0bf312645050c17d9c87deb707369c1 >>>>>>> gpio: rockchip: convert to dynamic GPIO base allocation >>>>>> >>>>>> can you check that your kernel contains >>>>>> "gpio: rockchip: Fix GPIO regression after conversion to dynamic base allocation" >>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5cd9c6d332f46d1de8b68117fe2a3f1b08ee80ff >>>>> >>>>> Yes, that commit is in v7.1 and it indeed fixes the gpio issue. >>>>> I tested reverting c8079f83 alone and reverting all three. >>>>> Now i've tested only reverting 51eb548a and d84b087c, and it works. >>>>> The thing is both bugs coexisted at some point and >>>>> git bisect finds them in order. >>>>> >>>>>>> Reverting this does not fix the problem as there is a second one: >>>>>>> 51eb548ade20158b4f4f8693a95b1f31a2480e8e >>>>>>> drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok() >>>>>>> >>>>>>> That second one depends on: >>>>>>> d84b087c7662dd65cd51b228219987c31b1cee02 >>>>>>> drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages >>>>>>> and pre-emphasises >>>>>>> >>>>>>> Reverting all three commits from v7.1 make the display work again. >>>>>>> >>>>>>> Please, can this be resolved? >>>>>> >>>>>> and as Damon wrote, please provide logs, so we can see the actual problem >>>>> >>>>> It is quite difficult to read the logs from a black screen... >>>>> Jokes apart, here they are: >>>>> >>>>> Relevant log entries: >>>>> <6>[ 0.043668] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff8f0000 >>>>> <6>[ 0.043735] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@fec00000 >>>>> <6>[ 0.044192] /dp@fec00000: Fixed dependency cycle(s) with /vop@ff900000 >>>>> <6>[ 0.044250] /vop@ff900000: Fixed dependency cycle(s) with /dp@fec00000 >>>>> <6>[ 0.045064] /vop@ff900000: Fixed dependency cycle(s) with /dp@ff970000 >>>>> <6>[ 0.045122] /vop@ff8f0000: Fixed dependency cycle(s) with /dp@ff970000 >>>>> <6>[ 0.045194] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff8f0000 >>>>> <6>[ 0.045264] /dp@ff970000: Fixed dependency cycle(s) with /vop@ff900000 >>>>> <6>[ 0.058590] /dp@ff970000: Fixed dependency cycle(s) with /edp-panel >>>>> <6>[ 0.058733] /edp-panel: Fixed dependency cycle(s) with /dp@ff970000 >>>>> <6>[ 0.101266] platform ff8f0000.vop: Adding to iommu group 2 >>>>> <6>[ 0.102073] platform ff900000.vop: Adding to iommu group 3 >>>>> <3>[ 0.105258] rockchip-dp ff970000.dp: no DP phy configured >>>>> <3>[ 0.308638] rockchip-dp ff970000.dp: no DP phy configured >>>>> <6>[ 0.310104] panfrost ff9a0000.gpu: clock rate = 500000000 >>>>> <6>[ 0.311210] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 >>>>> minor 0x0 status 0x0 >>>>> <6>[ 0.311223] panfrost ff9a0000.gpu: features: 00000000,00000407, >>>>> issues: 00000000,24040400 >>>>> <6>[ 0.311231] panfrost ff9a0000.gpu: Features: L2:0x07120206 >>>>> Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff >>>>> JS:0x7 >>>>> <6>[ 0.311239] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1 >>>>> <6>[ 0.312664] [drm] Initialized panfrost 1.6.0 for ff9a0000.gpu on minor 0 >>>>> <3>[ 0.624232] rockchip-dp ff970000.dp: no DP phy configured >>>>> <3>[ 0.639611] rockchip-dp ff970000.dp: no DP phy configured >>>>> <6>[ 0.641512] rockchip-drm display-subsystem: bound ff900000.vop >>>>> (ops 0xffff800080c9a3c8) >>>>> <6>[ 0.642646] rockchip-drm display-subsystem: bound ff8f0000.vop >>>>> (ops 0xffff800080c9a3c8) >>>>> <4>[ 0.643198] [drm] Missing drm_bridge_add() before attach >>>>> <6>[ 0.643238] rockchip-drm display-subsystem: bound ff970000.dp >>>>> (ops 0xffff800080c9e840) >>>>> <6>[ 0.644029] rockchip-drm display-subsystem: bound fec00000.dp >>>>> (ops 0xffff800080c9f0c8) >>>>> <6>[ 0.644102] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not >>>>> connected; disabling cdn >>>>> <6>[ 0.644837] [drm] Initialized rockchip 1.0.0 for >>>>> display-subsystem on minor 1 >>>>> <4>[ 0.786773] panel-edp edp-panel: Skipping disable of already >>>>> disabled panel >>>>> <3>[ 0.796517] rockchip-dp ff970000.dp: EQ Max loop >>>>> <3>[ 0.797745] rockchip-dp ff970000.dp: LT EQ failed! >>>>> <3>[ 0.797757] rockchip-dp ff970000.dp: eDP link training failed (-5) >>>>> <3>[ 0.797770] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>>>> <3>[ 0.797783] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>>>> commit error, ret = -5 >>>>> <3>[ 0.797823] rockchip-dp ff970000.dp: failed to set bridge, retry: 0 >>>>> <4>[ 0.797937] panel-edp edp-panel: Skipping disable of already >>>>> disabled panel >>>>> <3>[ 0.808097] rockchip-dp ff970000.dp: EQ Max loop >>>>> <3>[ 0.809284] rockchip-dp ff970000.dp: LT EQ failed! >>>>> <3>[ 0.809299] rockchip-dp ff970000.dp: eDP link training failed (-5) >>>>> <3>[ 0.809314] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>>>> <3>[ 0.809326] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>>>> commit error, ret = -5 >>>>> <3>[ 0.809353] rockchip-dp ff970000.dp: failed to set bridge, retry: 1 >>>>> <4>[ 0.809463] panel-edp edp-panel: Skipping disable of already >>>>> disabled panel >>>>> <3>[ 0.819481] rockchip-dp ff970000.dp: EQ Max loop >>>>> <3>[ 0.820745] rockchip-dp ff970000.dp: LT EQ failed! >>>>> <3>[ 0.820758] rockchip-dp ff970000.dp: eDP link training failed (-5) >>>>> <3>[ 0.820772] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>>>> <3>[ 0.820781] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>>>> commit error, ret = -5 >>>>> <3>[ 0.820806] rockchip-dp ff970000.dp: failed to set bridge, retry: 2 >>>>> <4>[ 0.820919] panel-edp edp-panel: Skipping disable of already >>>>> disabled panel >>>>> <3>[ 0.831075] rockchip-dp ff970000.dp: EQ Max loop >>>>> <3>[ 0.832336] rockchip-dp ff970000.dp: LT EQ failed! >>>>> <3>[ 0.832346] rockchip-dp ff970000.dp: eDP link training failed (-5) >>>>> <3>[ 0.832356] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>>>> <3>[ 0.832367] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>>>> commit error, ret = -5 >>>>> <3>[ 0.832388] rockchip-dp ff970000.dp: failed to set bridge, retry: 3 >>>>> <4>[ 0.832496] panel-edp edp-panel: Skipping disable of already >>>>> disabled panel >>>>> <3>[ 0.842613] rockchip-dp ff970000.dp: EQ Max loop >>>>> <3>[ 0.843754] rockchip-dp ff970000.dp: LT EQ failed! >>>>> <3>[ 0.843765] rockchip-dp ff970000.dp: eDP link training failed (-5) >>>>> <3>[ 0.843778] rockchip-dp ff970000.dp: unable to do link train, ret=-5 >>>>> <3>[ 0.843791] [drm:analogix_dp_bridge_atomic_enable] *ERROR* dp >>>>> commit error, ret = -5 >>>>> <3>[ 0.843815] rockchip-dp ff970000.dp: failed to set bridge, retry: 4 >>>>> <3>[ 0.843857] rockchip-dp ff970000.dp: too many times retry set >>>>> bridge, give it up >>>>> <6>[ 0.854625] Console: switching to colour frame buffer device 300x100 >>>>> <6>[ 0.887526] rockchip-drm display-subsystem: [drm] fb0: >>>>> rockchipdrmfb frame buffer device >>>>> >>>>> >>>> >>>> I have tested RK3399 IND EVB locally based on kernel v7.1, and eDP >>>> training completes successfully with normal display output with patch >>>> 0001-arm64-dts-rockchip-Enable-eDP-display-for-RK3399-IND.patch applied. >>>> >>>> From your logs, the failure occurs during the EQ stage of eDP training. >>>> Please apply the additional patch >>>> 0002-drm-bridge-analogix_dp-Read-CR-EQ-delay-from-DPCD-in.patch without >>>> reverting the two commits mentioned above (51eb548a and d84b087c), then >>>> retest to check if the issue gets improved. >>>> (BTW: This is a test-only temporary patch with minor style flaws, but >>>> the patch needs upstreaming. I'll rework and send a formal version soon.) >>> >>> Hi Damon, >>> applying patch 0001 and 0002 does not fix the issue. >>> The logs are mostly the same. >>> >>>> If the problem persists, try adding a small delay at the location >>>> mentioned below for further verification: >>> >>> applying the extra delay results are the same, just small noise in the >>> dmesg timestamps. >>> >>> Besides this, i've done another test: >>> i have reverted 51eb548a while keeping d84b087c, which i had to rebase. >>> The result is again the same: black screen and the logs are again equivalent. >>> That proves that both patches 51eb548a and d84b087c each introduce a regression. >>> >> >> Thanks a lot for all these thorough tests, your results give me much >> clearer clues. >> >> I suspect the root cause is not the EQ training delay, but incorrect PE >> (pre-emphasis) and VS (voltage swing) register configuration. >> >> Please do not revert any of the two commits mentioned above. Instead, >> apply the following patch which may properly resolve the black screen >> issue you are seeing: >> >> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> index a5dc645d7005..30ad952c5c12 100644 >> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> @@ -306,7 +306,9 @@ static void >> analogix_dp_get_adjust_training_lane(struct analogix_dp_device *dp, >> lane_count = dp->link_train.lane_count; >> for (lane = 0; lane < lane_count; lane++) { >> voltage_swing = >> drm_dp_get_adjust_request_voltage(link_status, lane); >> + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; >> pre_emphasis = >> drm_dp_get_adjust_request_pre_emphasis(link_status, lane); >> + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; >> training_lane = DPCD_VOLTAGE_SWING_SET(voltage_swing) | >> DPCD_PRE_EMPHASIS_SET(pre_emphasis); >> >> @@ -352,7 +354,9 @@ static int analogix_dp_process_clock_recovery(struct >> analogix_dp_device *dp) >> for (lane = 0; lane < lane_count; lane++) { >> training_lane = analogix_dp_get_lane_link_training(dp, >> lane); >> voltage_swing = >> drm_dp_get_adjust_request_voltage(link_status, lane); >> + voltage_swing >>= DP_TRAIN_VOLTAGE_SWING_SHIFT; >> pre_emphasis = >> drm_dp_get_adjust_request_pre_emphasis(link_status, lane); >> + pre_emphasis >>= DP_TRAIN_PRE_EMPHASIS_SHIFT; >> >> if (DPCD_VOLTAGE_SWING_GET(training_lane) == >> voltage_swing && >> DPCD_PRE_EMPHASIS_GET(training_lane) == pre_emphasis) >> >> >> Without this fix, there is no obvious error when pre-emphasis equals 0, >> but wrong register values will be programmed once PE is non-zero. > > You found it! > Applying the shifts makes it work. > Great to hear the shift logic resolves the issue! I've submitted the finalized patches to drm-misc branch. If the patches resolve the issue on your hardware, I'd appreciate a Reviewed-by or Tested-by tag. Best regards, Damon _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-06-24 4:00 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-16 23:05 [REGRESSION][BISECTED] No display on rk3399-gru-kevin Vicente Bergas 2026-06-17 7:30 ` Damon Ding 2026-06-17 8:45 ` Heiko Stübner 2026-06-17 23:15 ` Vicente Bergas 2026-06-18 3:49 ` Damon Ding 2026-06-18 23:51 ` Vicente Bergas 2026-06-22 2:02 ` Damon Ding 2026-06-22 17:08 ` Vicente Bergas 2026-06-24 4:00 ` Damon Ding
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.