Hi, for the first time I was able to read the values of a controller configuration register and the values match the default values described in the data sheet.
The trick was to use the new feature of the panel-mipi-debug driver to choose to send out “generic packets” if instructed.
And I did finally understand how the mapping of 16 bit SPI register numbers to two MIPI commands works.
This sequence:
echo gff128301 >dcs echo g0080 >dcs echo gff1283 >dcs echo g0080 >dcs echo gb0rrrrr >dcs
shows this result in dmesg:
[ 8268.330870] dsi: mipi_debug_read(g,b0, 00 01 00 30 04) -> 0
and the data sheet says that 00 01 00 30 04 are indeed the default values of the “MIPISET1 (B080h)” register.
And - maybe something I had tried wrongly - the video stream must be turned off while trying to access these registers.
So now I think I can translate the SPI command sequence we have received as C code into a shell script and we will see if the panel becomes better initialized and does no longer show the flicker effect.
Then it is quite simple to translate this into (different than the original) C code for implanting into our kernel driver.
BR, Nikolaus