diff options
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/offb.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/video/offb.c b/drivers/video/offb.c index 43a0a52fc527..7d44d669d5b6 100644 --- a/drivers/video/offb.c +++ b/drivers/video/offb.c | |||
@@ -91,6 +91,15 @@ extern boot_infos_t *boot_infos; | |||
91 | #define AVIVO_DC_LUTB_WHITE_OFFSET_GREEN 0x6cd4 | 91 | #define AVIVO_DC_LUTB_WHITE_OFFSET_GREEN 0x6cd4 |
92 | #define AVIVO_DC_LUTB_WHITE_OFFSET_RED 0x6cd8 | 92 | #define AVIVO_DC_LUTB_WHITE_OFFSET_RED 0x6cd8 |
93 | 93 | ||
94 | #define FB_RIGHT_POS(p, bpp) (fb_be_math(p) ? 0 : (32 - (bpp))) | ||
95 | |||
96 | static inline u32 offb_cmap_byteswap(struct fb_info *info, u32 value) | ||
97 | { | ||
98 | u32 bpp = info->var.bits_per_pixel; | ||
99 | |||
100 | return cpu_to_be32(value) >> FB_RIGHT_POS(info, bpp); | ||
101 | } | ||
102 | |||
94 | /* | 103 | /* |
95 | * Set a single color register. The values supplied are already | 104 | * Set a single color register. The values supplied are already |
96 | * rounded down to the hardware's capabilities (according to the | 105 | * rounded down to the hardware's capabilities (according to the |
@@ -120,7 +129,7 @@ static int offb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, | |||
120 | mask <<= info->var.transp.offset; | 129 | mask <<= info->var.transp.offset; |
121 | value |= mask; | 130 | value |= mask; |
122 | } | 131 | } |
123 | pal[regno] = value; | 132 | pal[regno] = offb_cmap_byteswap(info, value); |
124 | return 0; | 133 | return 0; |
125 | } | 134 | } |
126 | 135 | ||