From: Francesco Dolcini <[email protected]> The LCDIF data bus format describes how color component bits are assigned to the physical LCD_DATA pins. This is a property of the LCDIF-to-display wiring and can differ from the input format advertised by the downstream panel or bridge.
Such a distinction is required when a narrower LCDIF bus is connected to a wider display interface. For example, an 18-bit or 16-bit LCDIF bus can drive a 24-bit display by wiring the available color bits to the appropriate display inputs. Configuring LCDIF from the display's 24-bit format in this case selects the wrong LCD_DATABUS_WIDTH mode, changing the color-bit assignment on the LCD_DATA pins and resulting in incorrect colors. Add the optional interface-pix-fmt property to the LCDIF binding and make the mxsfb driver use it in preference to the format reported by the downstream display. When the property is absent, the existing behavior is preserved. This follows the approach already used by the i.MX IPUv3 parallel display driver in drivers/gpu/drm/imx/ipuv3/parallel-display.c. Set the interface format for the Colibri iMX6ULL and Colibri iMX7 boards, which route an 18-bit LCD interface. Francesco Dolcini (4): dt-bindings: lcdif: Add interface pixel format drm: mxsfb: Allow optional LCDIF interface format override ARM: dts: imx6ull-colibri: Set LCDIF format ARM: dts: imx7-colibri: Set LCDIF format .../devicetree/bindings/display/fsl,lcdif.yaml | 7 +++++++ arch/arm/boot/dts/nxp/imx/imx6ull-colibri.dtsi | 1 + arch/arm/boot/dts/nxp/imx/imx7-colibri.dtsi | 1 + drivers/gpu/drm/mxsfb/mxsfb_drv.c | 16 ++++++++++++++++ drivers/gpu/drm/mxsfb/mxsfb_drv.h | 2 ++ drivers/gpu/drm/mxsfb/mxsfb_kms.c | 8 ++++++++ 6 files changed, 35 insertions(+) -- 2.47.3
