I’ve attached three patches for consideration in the Robert Nelson’s 3.8.13-bone5x update, all of which are independent of each other (i.e., you can patch your kernel with any one of them, separate from the others):
Detect AM335x-specific features and CPU version. Doesn’t do anything significant, other than accurately report the CPU and SGX, L2 cache presence in the bootup dmesg output.
Add Element14’s “BB-VIEW” LCD cape device trees to firmware/capes.
Create a workaround to the TI Sitara red/blue swap erratum through device tree properties, ‘bgrx_16bpp’ and ‘bgrx_24bpp’. The ‘bgrx_16bpp’ property swaps red and blue if 16bpp color depth is used and the LCD cape itself swaps red and blue at higher color depths (i.e., the cape designer “fixed” the problem by swapping signals). The ‘bgrx_24bpp’ property swaps red and blue at the 24bpp color depth, which addresses TI’s erratum.
Also, the tilcdc LCD driver queries the panel’s panel-info/bpp device tree property to find the preferred BPP when initializing the console framebuffer. This was originally hardcoded into the driver at 16bpp. If the panel says that it wants 32bpp, the framebuffer initializes to a preferred 32bpp.
I’ve been testing these changes relative to Robert’s linux-dev 3.8.15-bone53 tag. They may apply cleanly against earlier tags, but I can’t guarantee they will.
I’m sure I have canonical kernel source formatting issues; comments, testing and suggestions are welcome (and advocacy for inclusion in Robert’s linux-dev git repo also helpful.)
0001-am335x-features.patch (3.31 KB)
0002-element14-bb-view-lcd-capes.patch (17.6 KB)
0003-sitara_rb_swap_workaround.patch (26.3 KB)