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

From: Johan Hovold
Date: Wed Feb 14 2024 - 08:51:55 EST


On Tue, Feb 13, 2024 at 10:00:13AM -0800, Abhinav Kumar wrote:

> 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.

Yes, indeed there was a lot of changes that went into the MSM drm driver
in 6.8-rc1 and since I have not tried to debug this myself I can't say
for sure which change or changes that triggered this regression (or
possibly regressions).

The fact that the USB-C/DP PHY appears to be involved
(/soc@0/phy@88eb000) could indeed point to the series you mentioned.

> 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.

I've hit the NULL-pointer deference three times now in the last few days
on the sc8280xp CRD. But since it doesn't trigger on every boot it seems
you need to go back to the series that could potentially have caused
this regression and review them again. There's clearly something quite
broken here.

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

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

> > [ 6.007872] [drm:drm_bridge_attach [drm]] *ERROR* failed to attach bridge /soc@0/phy@88eb000 to encoder TMDS-31: -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.

Johan