* [U-Boot] [PATCH] video: cfb_console: fix 32-bit display on 64-bit architectures
@ 2017-03-06 1:13 Andre Przywara
2017-03-07 20:25 ` Anatolij Gustschin
0 siblings, 1 reply; 2+ messages in thread
From: Andre Przywara @ 2017-03-06 1:13 UTC (permalink / raw)
To: u-boot
"unsigned long" is a lousy data type when it comes to match peripheral
hardware registers with a fixed size.
Just do the obvious and match a 32-bit display format with an "u32"
data type for casting.
This fixes the logo display on 64-bit architectures, which produced
a black line on the right side of the logo with non-black backgrounds.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
drivers/video/cfb_console.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index 3c0696e..d75abb6 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -1079,8 +1079,8 @@ __weak void video_set_lut(unsigned int index, unsigned char r,
}
#define FILL_32BIT_X888RGB(r,g,b) { \
- *(unsigned long *)fb = \
- SWAP32((unsigned long)(((r<<16) | \
+ *(u32 *)fb = \
+ SWAP32((unsigned int)(((r<<16) | \
(g<<8) | \
b))); \
fb += 4; \
@@ -1161,7 +1161,7 @@ static void draw_bitmap(uchar **fb, uchar *bm, struct palette *p,
break;
case GDF_32BIT_X888RGB:
for (i = 0; i < cnt; i++) {
- *(unsigned long *) addr = p[bm[*off]].ce.dw;
+ *(u32 *) addr = p[bm[*off]].ce.dw;
addr += 4;
}
break;
@@ -1825,8 +1825,8 @@ static void plot_logo_or_black(void *screen, int x, int y, int black)
(b >> 3)));
break;
case GDF_32BIT_X888RGB:
- *(unsigned long *) dest =
- SWAP32((unsigned long) (
+ *(u32 *) dest =
+ SWAP32((u32) (
(r << 16) |
(g << 8) |
b));
--
2.8.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH] video: cfb_console: fix 32-bit display on 64-bit architectures
2017-03-06 1:13 [U-Boot] [PATCH] video: cfb_console: fix 32-bit display on 64-bit architectures Andre Przywara
@ 2017-03-07 20:25 ` Anatolij Gustschin
0 siblings, 0 replies; 2+ messages in thread
From: Anatolij Gustschin @ 2017-03-07 20:25 UTC (permalink / raw)
To: u-boot
On Mon, 6 Mar 2017 01:13:38 +0000
Andre Przywara andre.przywara at arm.com wrote:
> "unsigned long" is a lousy data type when it comes to match peripheral
> hardware registers with a fixed size.
> Just do the obvious and match a 32-bit display format with an "u32"
> data type for casting.
> This fixes the logo display on 64-bit architectures, which produced
> a black line on the right side of the logo with non-black backgrounds.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
> drivers/video/cfb_console.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
applied to u-boot-video/master. Thanks!
--
Anatolij
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-03-07 20:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-06 1:13 [U-Boot] [PATCH] video: cfb_console: fix 32-bit display on 64-bit architectures Andre Przywara
2017-03-07 20:25 ` Anatolij Gustschin
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.