After a lot of peek and poke at /dev/graphics/fb0, this is what I have learned:

While the bpp is supposed to be 16 bits, only 8 bits out of each 16 bits of the 
DRAM frambebuffer are being written to the LCD module memory. Each alternate 
byte is being skipped. So if the first two pixels in the FB memory are 0x12 
0x34 0x56 0x78, the LCD only is only seeing 0x12 0x56. This directly causes the 
horizontal halving. It also means that the the left half displays the odd lines 
and the right half displays the even lines. Thats why the display is only 
filled in half.

So now I am trying to figure out what can cause this:

1. The DMA engine is wrongly configured to read 16 bits but writes only 8 bits? 
I can't seem to find where the DMA engine _is_! Where in the code are the 
pixels being actually sent on the LCM bus? Can anybody direct me?

2. THe LCD is only connected on an 8 bit bus but the driver thinks its on a 16 
bit bus? The LCD manual doesn't seem so have such a mode, but I can't be sure.

Any ideas? And is this the right place at all for kernel level discussion?

_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to