@@ -69,7 +69,7 @@ config FB_CFB_REV_PIXELS_IN_BYTE
bool
depends on FB_CORE
help
- Allow generic frame-buffer functions to work on displays with 1, 2
+ Allow I/O memory frame-buffer functions to work on displays with 1, 2
and 4 bits per pixel depths which has opposite order of pixels in
byte order to bytes in long order.
@@ -97,6 +97,14 @@ config FB_SYS_IMAGEBLIT
blitting. This is used by drivers that don't provide their own
(accelerated) version and the framebuffer is in system RAM.
+config FB_SYS_REV_PIXELS_IN_BYTE
+ bool
+ depends on FB_CORE
+ help
+ Allow SYS memory frame-buffer functions to work on displays with 1, 2
+ and 4 bits per pixel depths which has opposite order of pixels in
+ byte order to bytes in long order.
+
config FB_PROVIDE_GET_FB_UNMAPPED_AREA
bool
depends on FB
@@ -25,6 +25,7 @@
#define FB_SPACE 0
#define FB_SPACE_NAME "I/O"
#define FB_SCREEN_BASE(a) ((a)->screen_base)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_CFB_REV_PIXELS_IN_BYTE
#include "fb_copyarea.h"
EXPORT_SYMBOL(cfb_copyarea);
@@ -25,6 +25,7 @@
#define FB_SPACE 0
#define FB_SPACE_NAME "I/O"
#define FB_SCREEN_BASE(a) ((a)->screen_base)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_CFB_REV_PIXELS_IN_BYTE
#include "fb_fillrect.h"
EXPORT_SYMBOL(cfb_fillrect);
@@ -19,6 +19,7 @@
#define FB_SPACE 0
#define FB_SPACE_NAME "I/O"
#define FB_SCREEN_BASE(a) ((a)->screen_base)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_CFB_REV_PIXELS_IN_BYTE
#include "fb_imageblit.h"
EXPORT_SYMBOL(cfb_imageblit);
@@ -75,7 +75,7 @@ pixel_to_pat( u32 bpp, u32 pixel)
}
#endif
-#ifdef CONFIG_FB_CFB_REV_PIXELS_IN_BYTE
+#ifdef FB_REV_PIXELS_IN_BYTE
#if BITS_PER_LONG == 64
#define REV_PIXELS_MASK1 0x5555555555555555ul
#define REV_PIXELS_MASK2 0x3333333333333333ul
@@ -157,7 +157,7 @@ static inline u32 fb_compute_bswapmask(struct fb_info *info)
return bswapmask;
}
-#else /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */
+#else /* FB_REV_PIXELS_IN_BYTE */
static inline unsigned long fb_rev_pixels_in_long(unsigned long val,
u32 bswapmask)
@@ -169,7 +169,7 @@ static inline unsigned long fb_rev_pixels_in_long(unsigned long val,
#define fb_shifted_pixels_mask_long(p, i, b) FB_SHIFT_HIGH((p), ~0UL, (i))
#define fb_compute_bswapmask(...) 0
-#endif /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */
+#endif /* FB_REV_PIXELS_IN_BYTE */
#define cpu_to_le_long _cpu_to_le_long(BITS_PER_LONG)
#define _cpu_to_le_long(x) __cpu_to_le_long(x)
@@ -23,6 +23,7 @@
#define FB_SPACE FBINFO_VIRTFB
#define FB_SPACE_NAME "virtual"
#define FB_SCREEN_BASE(a) ((a)->screen_buffer)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_SYS_REV_PIXELS_IN_BYTE
#include "fb_copyarea.h"
EXPORT_SYMBOL(sys_copyarea);
@@ -23,6 +23,7 @@
#define FB_SPACE FBINFO_VIRTFB
#define FB_SPACE_NAME "virtual"
#define FB_SCREEN_BASE(a) ((a)->screen_buffer)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_SYS_REV_PIXELS_IN_BYTE
#include "fb_fillrect.h"
EXPORT_SYMBOL(sys_fillrect);
@@ -21,6 +21,7 @@
#define FB_SPACE FBINFO_VIRTFB
#define FB_SPACE_NAME "virtual"
#define FB_SCREEN_BASE(a) ((a)->screen_buffer)
+#define FB_REV_PIXELS_IN_BYTE CONFIG_FB_SYS_REV_PIXELS_IN_BYTE
#include "fb_imageblit.h"
EXPORT_SYMBOL(sys_imageblit);
Signed-off-by: Zsolt Kajtar <soci@c64.rulez.org> --- drivers/video/fbdev/core/Kconfig | 10 +++++++++- drivers/video/fbdev/core/cfbcopyarea.c | 1 + drivers/video/fbdev/core/cfbfillrect.c | 1 + drivers/video/fbdev/core/cfbimgblt.c | 1 + drivers/video/fbdev/core/fb_draw.h | 6 +++--- drivers/video/fbdev/core/syscopyarea.c | 1 + drivers/video/fbdev/core/sysfillrect.c | 1 + drivers/video/fbdev/core/sysimgblt.c | 1 + 8 files changed, 18 insertions(+), 4 deletions(-)