Re: [REGRESSION] omapdrm/N900 display broken

From: Tomi Valkeinen
Date: Tue Aug 04 2020 - 08:28:59 EST


On 28/07/2020 21:14, Aaro Koskinen wrote:
> Hi,
>
> Looks like N900 display support has broken after v5.6.
>
> When using v5.7, or the current mainline (v5.8-rc7), the boot hangs at:
>
> [ 6.269500] omapdss_dss 48050000.dss: 48050000.dss supply vdda_video not found, using dummy regulator
> [ 6.321685] DSS: OMAP DSS rev 2.0
> [ 6.328002] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops)
> [ 6.336364] omapdss_dss 48050000.dss: bound 48050c00.encoder (ops venc_component_ops)
> [ 6.345153] omapdrm omapdrm.0: DMM not available, disable DMM support
> [ 6.352447] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
>
> with a blank display.
>
> I tried to bisect this, and the first commit that breaks the display is:
>
> 2f004792adadcf017fde50339b432a26039fff0c is the first bad commit
> commit 2f004792adadcf017fde50339b432a26039fff0c
> Author: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Date: Wed Feb 26 13:24:57 2020 +0200
>
> drm/omap: venc: Register a drm_bridge
>
> This commit does not yet hang the kernel, but the display is blank and
> the probe fails:
>
> [ 6.290100] omapdss_dss 48050000.dss: 48050000.dss supply vdda_video not foun
> d, using dummy regulator
> [ 6.342346] DSS: OMAP DSS rev 2.0
> [ 6.348663] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops)
> [ 6.357025] omapdss_dss 48050000.dss: bound 48050c00.encoder (ops venc_component_ops)
> [ 6.365814] omapdrm omapdrm.0: DMM not available, disable DMM support
> [ 6.372863] omapdrm omapdrm.0: omap_modeset_init failed: ret=-22
> [ 6.414611] omapdrm: probe of omapdrm.0 failed with error -22

Afaics, this is caused by the patch doing

if (!venc->output.next_bridge)

instead of

if (venc->output.next_bridge)

Fixing that removes the error on beagle xm, but for some reason I don't see TV-out as a DRM output
(but HDMI output works).

> The hang seems to start with this commit:
>
> commit 8bef8a6d5da81b909a190822b96805a47348146f (HEAD -> master)
> Author: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Date: Wed Feb 26 13:25:10 2020 +0200
>
> drm/omap: sdi: Register a drm_bridge
>
> Confusingly, some of the commits between these two commits do provide a
> working display, e.g. 13d2d52f59c0c79398d9c9e2ea3d661a0e5b6bbc ("drm/omap:
> sdi: Sort includes alphabetically") works...

The venc issue is fixed in "Switch the HDMI and VENC outputs to drm_bridge", which is a few commits
after the "venc: Register a drm_bridge".

So I'm guessing SDI works until "sdi: Register a drm_bridge", but as omapdrm doesn't probe, you get
no displays.

Can you try to pinpoint a bit where the hang happens? Maybe add DRM/omapdrm debug prints, or perhaps
sysrq works and it shows a lock that's in deadlock.

Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki