staging: udlfb: fix big endian rendering error
authorBernie Thompson <bernie@plugable.com>
Sun, 5 Sep 2010 23:35:27 +0000 (16:35 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 5 Sep 2010 23:50:20 +0000 (16:50 -0700)
Fix big endian rendering bug (affects PowerPC)

Thanks to Christian Melki at Ericsson for finding and suggesting patch.

Signed-off-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/udlfb/udlfb.c

index 6977b71e8c3c83ebc15c3a56e7c6fcb84bd2ecb6..bcb4a1e9e713ea0258cb254777ff6cb44a7e82b4 100644 (file)
@@ -414,15 +414,14 @@ static void dlfb_compress_hline(
                uint8_t *cmd_pixels_count_byte = 0;
                const uint16_t *raw_pixel_start = 0;
                const uint16_t *cmd_pixel_start, *cmd_pixel_end = 0;
-               const uint32_t be_dev_addr = cpu_to_be32(dev_addr);
 
                prefetchw((void *) cmd); /* pull in one cache line at least */
 
                *cmd++ = 0xAF;
                *cmd++ = 0x6B;
-               *cmd++ = (uint8_t) ((be_dev_addr >> 8) & 0xFF);
-               *cmd++ = (uint8_t) ((be_dev_addr >> 16) & 0xFF);
-               *cmd++ = (uint8_t) ((be_dev_addr >> 24) & 0xFF);
+               *cmd++ = (uint8_t) ((dev_addr >> 16) & 0xFF);
+               *cmd++ = (uint8_t) ((dev_addr >> 8) & 0xFF);
+               *cmd++ = (uint8_t) ((dev_addr) & 0xFF);
 
                cmd_pixels_count_byte = cmd++; /*  we'll know this later */
                cmd_pixel_start = pixel;