diff options
Diffstat (limited to 'drivers/video/cfbimgblt.c')
-rw-r--r-- | drivers/video/cfbimgblt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c index da664cea7eca..a7770c4f17d0 100644 --- a/drivers/video/cfbimgblt.c +++ b/drivers/video/cfbimgblt.c | |||
@@ -80,10 +80,12 @@ static u32 cfb_tab32[] = { | |||
80 | #define LEFT_POS(bpp) (32 - bpp) | 80 | #define LEFT_POS(bpp) (32 - bpp) |
81 | #define SHIFT_HIGH(val, bits) ((val) >> (bits)) | 81 | #define SHIFT_HIGH(val, bits) ((val) >> (bits)) |
82 | #define SHIFT_LOW(val, bits) ((val) << (bits)) | 82 | #define SHIFT_LOW(val, bits) ((val) << (bits)) |
83 | #define BIT_NR(b) (7 - (b)) | ||
83 | #else | 84 | #else |
84 | #define LEFT_POS(bpp) (0) | 85 | #define LEFT_POS(bpp) (0) |
85 | #define SHIFT_HIGH(val, bits) ((val) << (bits)) | 86 | #define SHIFT_HIGH(val, bits) ((val) << (bits)) |
86 | #define SHIFT_LOW(val, bits) ((val) >> (bits)) | 87 | #define SHIFT_LOW(val, bits) ((val) >> (bits)) |
88 | #define BIT_NR(b) (b) | ||
87 | #endif | 89 | #endif |
88 | 90 | ||
89 | static inline void color_imageblit(const struct fb_image *image, | 91 | static inline void color_imageblit(const struct fb_image *image, |
@@ -177,7 +179,7 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info * | |||
177 | 179 | ||
178 | while (j--) { | 180 | while (j--) { |
179 | l--; | 181 | l--; |
180 | color = (*s & (1 << l)) ? fgcolor : bgcolor; | 182 | color = (*s & 1 << (BIT_NR(l))) ? fgcolor : bgcolor; |
181 | color <<= LEFT_POS(bpp); | 183 | color <<= LEFT_POS(bpp); |
182 | val |= SHIFT_HIGH(color, shift); | 184 | val |= SHIFT_HIGH(color, shift); |
183 | 185 | ||