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