Skip to contentSkip to conversation

video: mxsfb: fix color settings for 18bit data bus and 32bpp

PATCH RESEND In review Hector Palacios 2 participants 3 messages Jun 18, 2013 – Jul 12, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 video: mxsfb: fix color settings for 18bit data bus and 32bpp

For a combination of 18bit LCD data bus width and a color mode of 32bpp, the driver was setting the color mapping to rgb666, which is wrong, as the color in memory realy has an rgb888 layout.

This patch also removes the setting of flag CTRL_DF24 that makes the driver dimiss the upper 2 bits when handling 32/24bpp colors in a diplay with 18bit data bus width. This flag made true color images display wrong in such configurations.

Finally, the color mapping rgb666 has also been removed as nobody is using it and high level applications like Qt5 cannot work with it either.

Reference: https://lkml.org/lkml/2013/5/23/220

---
  drivers/video/mxsfb.c | 26 --------------------------
  1 file changed, 26 deletions(-)
drivers/video/mxsfb.c +0 -26
index 21223d4..d2c5105 100644
@@ -239,24 +239,6 @@ static const struct fb_bitfield def_rgb565[] = {
      }
  };
 
-static const struct fb_bitfield def_rgb666[] = {
-    [RED] = {
-        .offset = 16,
-        .length = 6,
-    },
-    [GREEN] = {
-        .offset = 8,
-        .length = 6,
-    },
-    [BLUE] = {
-        .offset = 0,
-        .length = 6,
-    },
-    [TRANSP] = {    /* no support for transparency */
-        .length = 0,
-    }
-};
-
  static const struct fb_bitfield def_rgb888[] = {
      [RED] = {
          .offset = 16,
@@ -309,9 +291,6 @@ static int mxsfb_check_var(struct fb_var_screeninfo *var,
              break;
          case STMLCDIF_16BIT:
          case STMLCDIF_18BIT:
-            /* 24 bit to 18 bit mapping */
-            rgb = def_rgb666;
-            break;
          case STMLCDIF_24BIT:
              /* real 24 bit */
              rgb = def_rgb888;
@@ -453,11 +432,6 @@ static int mxsfb_set_par(struct fb_info *fb_info)
              return -EINVAL;
          case STMLCDIF_16BIT:
          case STMLCDIF_18BIT:
-            /* 24 bit to 18 bit mapping */
-            ctrl |= CTRL_DF24; /* ignore the upper 2 bits in
-                        *  each colour component
-                        */
-            break;
          case STMLCDIF_24BIT:
              /* real 24 bit */
              break;
Signature · 1 line
1.8.3
#1 lore raw

Hi Jean-Christophe,

Quoted 10 lines · Hector Palacios

For a combination of 18bit LCD data bus width and a color mode of 32bpp, the driver was setting the color mapping to rgb666, which is wrong, as the color in memory realy has an rgb888 layout.

This patch also removes the setting of flag CTRL_DF24 that makes the driver dimiss the upper 2 bits when handling 32/24bpp colors in a diplay with 18bit data bus width. This flag made true color images display wrong in such configurations.

Quoted 8 lines

Finally, the color mapping rgb666 has also been removed as nobody is using it and high level applications like Qt5 cannot work with it either.

Reference: https://lkml.org/lkml/2013/5/23/220

I don't see this patch in your for-next branch.

It would be really great to have it for 3.11 if possible.

Could you take a look at this patch please?

Thanks,
Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130703/ea9b9965/attachment.sig>
#2 lore raw
Quoted 22 lines · maxime.ripard at free-electrons.com

Hi Jean-Christophe,

Quoted 10 lines · Hector Palacios

For a combination of 18bit LCD data bus width and a color mode of 32bpp, the driver was setting the color mapping to rgb666, which is wrong, as the color in memory realy has an rgb888 layout.

This patch also removes the setting of flag CTRL_DF24 that makes the driver dimiss the upper 2 bits when handling 32/24bpp colors in a diplay with 18bit data bus width. This flag made true color images display wrong in such configurations.

Quoted 8 lines

Finally, the color mapping rgb666 has also been removed as nobody is using it and high level applications like Qt5 cannot work with it either.

Reference: https://lkml.org/lkml/2013/5/23/220

Quoted 5 lines

I don't see this patch in your for-next branch.

It would be really great to have it for 3.11 if possible.

Could you take a look at this patch please?

Ping?

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130712/f181e374/attachment.sig>