Re: [PATCH v3 10/10] arm64: dts: renesas: gray-hawk-single: Add DisplayPort support

Tomi Valkeinen
2024-12-16T17:02:15Z

Hi,

On 16/12/2024 17:15, Tomi Valkeinen wrote:
> Hi,
>
> On 16/12/2024 15:33, Geert Uytterhoeven wrote:
>> Hi Tomi,
>>
>> On Fri, Dec 6, 2024 at 10:33 AM Tomi Valkeinen
>> <tomi.valkeinen@ideasonboard.com> wrote:
>>> From: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
>>>
>>> Add support for the mini DP output on the Gray Hawk board.
>>>
>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
>>> Reviewed-by: Laurent Pinchart
>>> <laurent.pinchart+renesas@ideasonboard.com>
>>> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
>>
>> Thanks for your patch, which is now commit b1000645dc29701f
>> ("arm64: dts: renesas: gray-hawk-single: Add DisplayPort support")
>> in renesas-devel/renesas-dts-for-v6.14.
>>
>> Apparently this patch breaks s2idle on Gray Hawk Single when "[PATCH
>> v3 06/10] drm/rcar-du: dsi: Add r8a779h0 support" is not present, or
>> when CONFIG_DRM_RCAR_USE_MIPI_DSI is not enabled. If the DSI driver
>> is not available, the ti_sn65dsi86.bridge part fails to probe with
>> -EPROBE_DEFER and "failed to attach dsi host".  Still, the sn65dsi86
>> driver must do something critical, as resuming from s2idle now hangs.
>> I haven't identified yet where exactly it hangs.
>> > As a result, s2idle is broken in current renesas-devel, which only
>> has the DTS changes.  Perhaps I should drop the DTS until the issue
>> is resolved?
>
> I'm fine with that. The DT bindings are still under work anyway.
>
>> However, I suspect White Hawk has the same issue (if
>> CONFIG_DRM_RCAR_USE_MIPI_DSI=n), but I cannot verify as my local White
>> Hawk is currently not available for kernel testing.
>
> I can reproduce on White Hawk. And I agree that it's probably related to
> sn65dsi86.
>
> I use modules, so I tried dropping modules to see when the issue goes
> away. And it's always sn65dsi86. So without the rcar DRM & DSI modules
> loaded, if I load or don't load sn65dsi86, I see or don't see the hang,
> respectively.
>
> Even if I drop the ti_sn65dsi86_pm_ops, it doesn't help. And looks like
> just doing the i2c_add_driver() part in ti_sn65dsi86_init() will cause
> the issue, so it's something that happens there.
>
> I'll continue the debug later.

I wrote a minimal kernel module that has an i2c driver that does
nothing, using ti,sn65dsi86 as the compatible string. I can still see
the hang with that driver (i.e. no DRM drivers loaded at all). So it's
not an issue in the driver.

I didn't really figure anything out, but I did notice that if I comment
the following lines from the dts, the problem goes away:

interrupt-parent = <&intc_ex>;
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;

enable-gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;

vccio-supply = <&reg_1p8v>;
vpll-supply = <&reg_1p8v>;
vcca-supply = <&reg_1p2v>;
vcc-supply = <&reg_1p2v>;

Tomi