Thanks for the information. Today I freshly installed a Raspbery Pi OS Bullseye with desktop and looked at the topic using "dtoverlay=vc4-kms-dsi-7inch". Basically it works better here, but only as long as you don't rotate the display in the software (cmdline.txt and config.txt). As soon as you rotate the display, there is still a similar fade effect, but not as noticeable as with my previous setup, consisting of FKMS and legacy options.If your issue with KMS is the flash of white during boot, then we can look at it, but it is hardly the highest priority.However, the display freezes still exist. Since the brightness should be adjustable, the option "disable_touchscreen=1" in config.txt cannot be used. For this reason, I conclude that only operating in legacy mode seems sensible since 3D hardware acceleration is not needed. In addition, the current constellation with FKMS does not work in conjunction with the RTC on I2C6. KMS also seems impractical as it results in a white screen when booting, which is unacceptable in the kiosk application (like in this video: https://www.youtube.com/watch?v=y_dFRmL-2XE). Or is there a solution for the white screen while loading the KMS driver at boot?
It'll be down to the exact sequencing of enabling the display power, turning on the backlight, initialising the bridge chip, and starting sending video. There is only a relatively small number of hooks for each device, so we haven't got a full range of options. Worst case is to add in a workqueue to delay turning on the backlight by a few 10's of ms so that the display has valid video data by that point.
Your initial step should be to remove all dt-blob.bin files, and just rely on the "dtoverlay=vc4-kms-dsi-7inch" to initialise the display. The flash is likely to be made worse by the backlight having been on under the firmware control, and then everything being reset by the kernel.
If you're fussed over the display being initialised slightly later in the boot sequence, then look at building your own kernel with the relevant modules built in. Then again, with Bookworm having an initramfs containing all the kernel modules, that is less critical these days.
Building my own kernel is currently out of the question for me. However, a delayed switching on of the backlight would be acceptable for me. How would you implement something like that? The display should remain off from the start and only be turned on when everything is properly loaded.
Statistics: Posted by tonysbk — Fri Mar 01, 2024 2:27 pm