From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: linux-kernel@vger.kernel.org, linux-fbdev-devel@lists.sourceforge.net
Cc: Andrew Morton <akpm@osdl.org>, adaplas@pol.net, gregkh@suse.de
Subject: [PATCH] fbcon: Re-fix little-endian bogosity in slow_imageblit()
Date: Fri, 03 Nov 2006 15:55:34 +0100 [thread overview]
Message-ID: <454B5866.6000207@innova-card.com> (raw)
From: Franck Bui-Huu <fbuihuu@gmail.com>
This bug has been introduced by commit:
a536093a2f07007aa572e922752b7491b9ea8ff2
This commit fixed the big-endian case but broke the little-endian one.
This patch revert the previous change and swap the definition of
FB_BIT_NR() macro between big and little endian. It should work for
both endianess now.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
This is the most obvious fix for me although it's a bit weird
that bit ordering depend on platform endianess. I don't know
fb code so I prefer submitting this trivial fix rather than
breaking every thing else ;)
drivers/video/cfbimgblt.c | 4 ++--
include/linux/fb.h | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c
index 51d3538..8f47bf4 100644
--- a/drivers/video/cfbimgblt.c
+++ b/drivers/video/cfbimgblt.c
@@ -168,7 +168,7 @@ static inline void slow_imageblit(const
while (j--) {
l--;
- color = (*s & (1 << l)) ? fgcolor : bgcolor;
+ color = (*s & (1 << FB_BIT_NR(l))) ? fgcolor : bgcolor;
val |= FB_SHIFT_HIGH(color, shift);
/* Did the bitshift spill bits to the next long? */
@@ -258,7 +258,7 @@ static inline void fast_imageblit(const
s += spitch;
}
}
-
+
void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
{
u32 fgcolor, bgcolor, start_index, bitstart, pitch_index = 0;
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 3e69241..6ca18b8 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -854,10 +854,12 @@ #define fb_memset memset
#endif
#if defined (__BIG_ENDIAN)
+#define FB_BIT_NR(b) (b)
#define FB_LEFT_POS(bpp) (32 - bpp)
#define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
#define FB_SHIFT_LOW(val, bits) ((val) << (bits))
#else
+#define FB_BIT_NR(b) (7 - (b))
#define FB_LEFT_POS(bpp) (0)
#define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
#define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
--
1.4.3.2
next reply other threads:[~2006-11-03 14:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-03 14:55 Franck Bui-Huu [this message]
2006-11-03 18:58 ` [PATCH] fbcon: Re-fix little-endian bogosity in slow_imageblit() Andrew Morton
2006-11-03 18:58 ` Andrew Morton
2006-11-04 9:22 ` Franck Bui-Huu
2006-11-06 9:28 ` [PATCH] fbcon: ReRe-fix " Franck Bui-Huu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=454B5866.6000207@innova-card.com \
--to=vagabon.xyz@gmail.com \
--cc=adaplas@pol.net \
--cc=akpm@osdl.org \
--cc=gregkh@suse.de \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.