Re: drm/msm: DisplayPort regressions in 6.8-rc1

From: Abhinav Kumar
Date: Tue Feb 13 2024 - 13:02:32 EST


Hi Johan

Thanks for the report.

I do agree that pm runtime eDP driver got merged that time but I think the issue is either a combination of that along with DRM aux bridge https://patchwork.freedesktop.org/series/122584/ OR just the latter as even that went in around the same time.

Thats why perhaps this issue was not seen with the chromebooks we tested on as they do not use pmic_glink (aux bridge).

So we will need to debug this on sc8280xp specifically or an equivalent device which uses aux bridge.

Thanks

Abhinav

On 2/13/2024 3:42 AM, Johan Hovold wrote:
Hi,

Since 6.8-rc1 the internal eDP display on the Lenovo ThinkPad X13s does
not always show up on boot.

The logs indicate problems with the runtime PM and eDP rework that went
into 6.8-rc1:

[ 6.006236] Console: switching to colour dummy device 80x25
[ 6.007542] [drm:dpu_kms_hw_init:1048] dpu hardware revision:0x80000000
[ 6.007872] [drm:drm_bridge_attach [drm]] *ERROR* failed to attach bridge /soc@0/phy@88eb000 to encoder TMDS-31: -16
[ 6.007934] [drm:dp_bridge_init [msm]] *ERROR* failed to attach panel bridge: -16
[ 6.007983] msm_dpu ae01000.display-controller: [drm:msm_dp_modeset_init [msm]] *ERROR* failed to create dp bridge: -16
[ 6.008030] [drm:_dpu_kms_initialize_displayport:588] [dpu error]modeset_init failed for DP, rc = -16
[ 6.008050] [drm:_dpu_kms_setup_displays:681] [dpu error]initialize_DP failed, rc = -16
[ 6.008068] [drm:dpu_kms_hw_init:1153] [dpu error]modeset init failed: -16
[ 6.008388] msm_dpu ae01000.display-controller: [drm:msm_drm_kms_init [msm]] *ERROR* kms hw init failed: -16

and this can also manifest itself as a NULL-pointer dereference:

[ 7.339447] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000

[ 7.643705] pc : drm_bridge_attach+0x70/0x1a8 [drm]
[ 7.686415] lr : drm_aux_bridge_attach+0x24/0x38 [aux_bridge]

[ 7.769039] Call trace:
[ 7.771564] drm_bridge_attach+0x70/0x1a8 [drm]
[ 7.776234] drm_aux_bridge_attach+0x24/0x38 [aux_bridge]
[ 7.781782] drm_bridge_attach+0x80/0x1a8 [drm]
[ 7.786454] dp_bridge_init+0xa8/0x15c [msm]
[ 7.790856] msm_dp_modeset_init+0x28/0xc4 [msm]
[ 7.795617] _dpu_kms_drm_obj_init+0x19c/0x680 [msm]
[ 7.800731] dpu_kms_hw_init+0x348/0x4c4 [msm]
[ 7.805306] msm_drm_kms_init+0x84/0x324 [msm]
[ 7.809891] msm_drm_bind+0x1d8/0x3a8 [msm]
[ 7.814196] try_to_bring_up_aggregate_device+0x1f0/0x2f8
[ 7.819747] __component_add+0xa4/0x18c
[ 7.823703] component_add+0x14/0x20
[ 7.827389] dp_display_probe+0x47c/0x568 [msm]
[ 7.832052] platform_probe+0x68/0xd8

Users have also reported random crashes at boot since 6.8-rc1, and I've
been able to trigger hard crashes twice when testing an external display
(USB-C/DP), which may also be related to the DP regressions.

I've opened an issue here:

https://gitlab.freedesktop.org/drm/msm/-/issues/51

but I also want Thorsten's help to track this so that it gets fixed
before 6.8 is released.

#regzbot introduced: v6.7..v6.8-rc1

The following series is likely the culprit:

https://lore.kernel.org/all/1701472789-25951-1-git-send-email-quic_khsieh@xxxxxxxxxxx/

Johan