Hi Daniel, On Mi, 2019-08-14 at 12:44 +0100, Daniel Stone wrote: > Hi Robert, > > On Wed, 14 Aug 2019 at 11:49, Robert Chiras <robert.chiras@xxxxxxx> > wrote: > > > > + case DRM_FORMAT_BGR565: /* BG16 */ > > + if (mxsfb->devdata->ipversion < 4) > > + goto err; > > + writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_BG > > R) | > > + CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_ > > BGR), > > + mxsfb->base + LCDC_V4_CTRL2 + REG_SET); > > + /* Fall through */ > > + case DRM_FORMAT_RGB565: /* RG16 */ > > + ctrl |= CTRL_SET_WORD_LENGTH(0); > > + ctrl &= ~CTRL_DF16; > > + ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0xf); > > + break; > For non-BGR formats, do you need to write RGB line-pattern back to > the > CTRL2 register? Otherwise, if you start with BGR565 then switch back > to RGB565, presumably CTRL2 would still be programmed for BGR so you > would display inverted channels. The LINE_PATTERN from LCDC_V4_CTRL2 register is cleared above, with this code: + if (mxsfb->devdata->ipversion >= 4) + writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_CLR) | + CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_CLR), + mxsfb->base + LCDC_V4_CTRL2 + REG_CLR); > > Same goes for all the other BGR/RGB format pairs below. > > Cheers, > Daniel Thanks, Robert _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel