diff options
Diffstat (limited to 'drivers/video/fb_draw.h')
-rw-r--r-- | drivers/video/fb_draw.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/video/fb_draw.h b/drivers/video/fb_draw.h index 816843f06bb7..cdafbe14ef1f 100644 --- a/drivers/video/fb_draw.h +++ b/drivers/video/fb_draw.h | |||
@@ -72,6 +72,26 @@ pixel_to_pat( u32 bpp, u32 pixel) | |||
72 | #endif | 72 | #endif |
73 | 73 | ||
74 | #ifdef CONFIG_FB_CFB_REV_PIXELS_IN_BYTE | 74 | #ifdef CONFIG_FB_CFB_REV_PIXELS_IN_BYTE |
75 | #if BITS_PER_LONG == 64 | ||
76 | #define REV_PIXELS_MASK1 0x5555555555555555ul | ||
77 | #define REV_PIXELS_MASK2 0x3333333333333333ul | ||
78 | #define REV_PIXELS_MASK4 0x0f0f0f0f0f0f0f0ful | ||
79 | #else | ||
80 | #define REV_PIXELS_MASK1 0x55555555ul | ||
81 | #define REV_PIXELS_MASK2 0x33333333ul | ||
82 | #define REV_PIXELS_MASK4 0x0f0f0f0ful | ||
83 | #endif | ||
84 | |||
85 | static inline unsigned long fb_rev_pixels_in_long(unsigned long val, | ||
86 | u32 bswapmask) | ||
87 | { | ||
88 | if (bswapmask & 1) | ||
89 | val = comp(val >> 1, val << 1, REV_PIXELS_MASK1); | ||
90 | if (bswapmask & 2) | ||
91 | val = comp(val >> 2, val << 2, REV_PIXELS_MASK2); | ||
92 | if (bswapmask & 3) | ||
93 | val = comp(val >> 4, val << 4, REV_PIXELS_MASK4); | ||
94 | } | ||
75 | 95 | ||
76 | static inline u32 fb_shifted_pixels_mask_u32(u32 index, u32 bswapmask) | 96 | static inline u32 fb_shifted_pixels_mask_u32(u32 index, u32 bswapmask) |
77 | { | 97 | { |
@@ -131,6 +151,12 @@ static inline u32 fb_compute_bswapmask(struct fb_info *info) | |||
131 | 151 | ||
132 | #else /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */ | 152 | #else /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */ |
133 | 153 | ||
154 | static inline unsigned long fb_rev_pixels_in_long(unsigned long val, | ||
155 | u32 bswapmask) | ||
156 | { | ||
157 | return val; | ||
158 | } | ||
159 | |||
134 | #define fb_shifted_pixels_mask_u32(i, b) FB_SHIFT_HIGH(~(u32)0, (i)) | 160 | #define fb_shifted_pixels_mask_u32(i, b) FB_SHIFT_HIGH(~(u32)0, (i)) |
135 | #define fb_shifted_pixels_mask_long(i, b) FB_SHIFT_HIGH(~0UL, (i)) | 161 | #define fb_shifted_pixels_mask_long(i, b) FB_SHIFT_HIGH(~0UL, (i)) |
136 | #define fb_compute_bswapmask(...) 0 | 162 | #define fb_compute_bswapmask(...) 0 |