On Wednesday, 19 January 2022 07:40:22 CET H. Nikolaus Schaller wrote:
Hi Paul,
Am 18.01.2022 um 23:59 schrieb Paul Boddie paul@boddie.org.uk:
On Tuesday, 18 January 2022 17:58:58 CET Paul Cercueil wrote:
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?
The descriptors will cause it to be set when the peripheral is enabled, as far as I can tell.
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.
It may be set in various versions of the Linux driver, but my observation was that in a non-Linux environment where nothing else is setting anything in the register concerned, initialising the descriptors seems to enable OSD and the OSD alpha enable bit.
Yesterday, I did consider what might be done to avoid the alpha bit being set, but I didn't immediately see anything in the descriptor fields that would offer such an alternative. The bit in question seems to be a global alpha enable setting, and so choosing per-pixel alpha would probably also result in it being set, although I didn't fire up the CI20 to check.
Paul