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. Paul