Re: [PATCH v5 2/7] drm/ingenic: Add support for JZ4780 and HDMI output
From: H. Nikolaus Schaller
Date: Wed Jan 19 2022 - 01:42:03 EST
Hi Paul,
> Am 18.01.2022 um 23:59 schrieb Paul Boddie <paul@xxxxxxxxxxxxx>:
>
> On Tuesday, 18 January 2022 17:58:58 CET Paul Cercueil wrote:
>>
>> Not at all. If the clock is disabled, the LCD controller is disabled,
>> so all the registers read zero, this makes sense. You can only read the
>> registers when the clock is enabled. On some SoCs, reading disabled
>> registers can even cause a complete lockup.
>
> My concern was that something might be accessing the registers before the
> clock had been enabled. It seems unlikely, given that the clock is enabled in
> the bind function, and I would have thought that nothing would invoke the
> different driver operations ("funcs") until bind has been called, nor should
> anything called from within bind itself be accessing registers.
>
>> Why is this JZ_LCD_OSDC_ALPHAEN bit needed now? I remember it working
>> fine last time I tried, and now I indeed get a black screen unless this
>> bit is set. The PM doesn't make it obvious that the bit is required,
>> but that wouldn't be surprising.
>
> It isn't actually needed. If the DMA descriptors are set up appropriately, the
> OSD alpha bit seems to be set as a consequence. In my non-Linux testing
> environment I don't even set any OSD registers explicitly, but the OSD alpha
> and enable flags become set when the display is active.
Is it set by DMA descriptors or by explicit code?
We did have an explicit setting of JZ_LCD_OSDC_ALPHAEN
https://www.spinics.net/lists/devicetree/msg438447.html
but that was postponed for further discussion. And now if we
add it (from basic functionality) back, it is fine again.
BR,
Nikolaus