video: use bitrev8
PATCH 3/6 video: use bitrev8
Use bitrev8 for nvidiafb, rivafb, and tgafb drivers
drivers/video/Kconfig | 3 ++ drivers/video/nvidia/nv_accel.c | 35 ------------------------- drivers/video/nvidia/nv_local.h | 11 +++++-- drivers/video/nvidia/nv_proto.h | 1 drivers/video/riva/fbdev.c | 44 +++---------------------------- drivers/video/tgafb.c | 56 +++++++--------------------------------- 6 files changed, 26 insertions(+), 124 deletions(-)
drivers/video/riva/fbdev.c +5 -39
@@ -40,6 +40,7 @@#include <linux/init.h> #include <linux/pci.h> #include <linux/backlight.h> +#include <linux/bitrev.h> #ifdef CONFIG_MTRR #include <asm/mtrr.h> #endif
@@ -521,48 +522,13 @@ static inline unsigned char MISCin(strucreturn (VGA_RD08 (par->riva.PVIO,0x3cc )); } -static u8 byte_rev[256 ] = { -0x00 ,0x80 ,0x40 ,0xc0 ,0x20 ,0xa0 ,0x60 ,0xe0 , -0x10 ,0x90 ,0x50 ,0xd0 ,0x30 ,0xb0 ,0x70 ,0xf0 , -0x08 ,0x88 ,0x48 ,0xc8 ,0x28 ,0xa8 ,0x68 ,0xe8 , -0x18 ,0x98 ,0x58 ,0xd8 ,0x38 ,0xb8 ,0x78 ,0xf8 , -0x04 ,0x84 ,0x44 ,0xc4 ,0x24 ,0xa4 ,0x64 ,0xe4 , -0x14 ,0x94 ,0x54 ,0xd4 ,0x34 ,0xb4 ,0x74 ,0xf4 , -0x0c ,0x8c ,0x4c ,0xcc ,0x2c ,0xac ,0x6c ,0xec , -0x1c ,0x9c ,0x5c ,0xdc ,0x3c ,0xbc ,0x7c ,0xfc , -0x02 ,0x82 ,0x42 ,0xc2 ,0x22 ,0xa2 ,0x62 ,0xe2 , -0x12 ,0x92 ,0x52 ,0xd2 ,0x32 ,0xb2 ,0x72 ,0xf2 , -0x0a ,0x8a ,0x4a ,0xca ,0x2a ,0xaa ,0x6a ,0xea , -0x1a ,0x9a ,0x5a ,0xda ,0x3a ,0xba ,0x7a ,0xfa , -0x06 ,0x86 ,0x46 ,0xc6 ,0x26 ,0xa6 ,0x66 ,0xe6 , -0x16 ,0x96 ,0x56 ,0xd6 ,0x36 ,0xb6 ,0x76 ,0xf6 , -0x0e ,0x8e ,0x4e ,0xce ,0x2e ,0xae ,0x6e ,0xee , -0x1e ,0x9e ,0x5e ,0xde ,0x3e ,0xbe ,0x7e ,0xfe , -0x01 ,0x81 ,0x41 ,0xc1 ,0x21 ,0xa1 ,0x61 ,0xe1 , -0x11 ,0x91 ,0x51 ,0xd1 ,0x31 ,0xb1 ,0x71 ,0xf1 , -0x09 ,0x89 ,0x49 ,0xc9 ,0x29 ,0xa9 ,0x69 ,0xe9 , -0x19 ,0x99 ,0x59 ,0xd9 ,0x39 ,0xb9 ,0x79 ,0xf9 , -0x05 ,0x85 ,0x45 ,0xc5 ,0x25 ,0xa5 ,0x65 ,0xe5 , -0x15 ,0x95 ,0x55 ,0xd5 ,0x35 ,0xb5 ,0x75 ,0xf5 , -0x0d ,0x8d ,0x4d ,0xcd ,0x2d ,0xad ,0x6d ,0xed , -0x1d ,0x9d ,0x5d ,0xdd ,0x3d ,0xbd ,0x7d ,0xfd , -0x03 ,0x83 ,0x43 ,0xc3 ,0x23 ,0xa3 ,0x63 ,0xe3 , -0x13 ,0x93 ,0x53 ,0xd3 ,0x33 ,0xb3 ,0x73 ,0xf3 , -0x0b ,0x8b ,0x4b ,0xcb ,0x2b ,0xab ,0x6b ,0xeb , -0x1b ,0x9b ,0x5b ,0xdb ,0x3b ,0xbb ,0x7b ,0xfb , -0x07 ,0x87 ,0x47 ,0xc7 ,0x27 ,0xa7 ,0x67 ,0xe7 , -0x17 ,0x97 ,0x57 ,0xd7 ,0x37 ,0xb7 ,0x77 ,0xf7 , -0x0f ,0x8f ,0x4f ,0xcf ,0x2f ,0xaf ,0x6f ,0xef , -0x1f ,0x9f ,0x5f ,0xdf ,0x3f ,0xbf ,0x7f ,0xff , -}; -static inline void reverse_order (u32 *l) {u8 *a = (u8 *)l; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++; - *a = byte_rev[*a]; + a[0 ] =bitrev8 (a[0 ]); + a[1 ] =bitrev8 (a[1 ]); + a[2 ] =bitrev8 (a[2 ]); + a[3 ] =bitrev8 (a[3 ]); }/* ------------------------------------------------------------------------- *
drivers/video/nvidia/nv_local.h +7 -4
@@ -96,13 +96,16 @@#define READ_GET (par) (NV_RD32(&(par)->FIFO[0x0011], 0) >> 2)#ifdef __LITTLE_ENDIAN + +#include <linux/bitrev.h> +#define reverse_order (l) \ do { \ u8 *a = (u8 *)(l); \ - *a = byte_rev[*a], a++; \ - *a = byte_rev[*a], a++; \ - *a = byte_rev[*a], a++; \ - *a = byte_rev[*a]; \ + a[0] = bitrev8(a[0]); \ + a[1] = bitrev8(a[1]); \ + a[2] = bitrev8(a[2]); \ + a[3] = bitrev8(a[3]); \ } while(0)#else #define reverse_order (l) do { } while(0)
drivers/video/Kconfig +3 -0
@@ -541,6 +541,7 @@ config FB_TGA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT + select BITREVERSE help This is the frame buffer device driver for generic TGA graphic cards. Say Y if you have one of those.
@@ -705,6 +706,7 @@ config FB_NVIDIA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT + select BITREVERSE help This driver supports graphics boards with the nVidia chips, TNT and newer. For very old chipsets, such as the RIVA128, then use
@@ -744,6 +746,7 @@ config FB_RIVA select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT + select BITREVERSE help This driver supports graphics boards with the nVidia Riva/Geforce chips.
drivers/video/nvidia/nv_accel.c +0 -35
@@ -261,41 +261,6 @@ void NVResetGraphics(struct fb_info *infNVDmaKickoff (par); } -u8 byte_rev[256 ] = { -0x00 ,0x80 ,0x40 ,0xc0 ,0x20 ,0xa0 ,0x60 ,0xe0 , -0x10 ,0x90 ,0x50 ,0xd0 ,0x30 ,0xb0 ,0x70 ,0xf0 , -0x08 ,0x88 ,0x48 ,0xc8 ,0x28 ,0xa8 ,0x68 ,0xe8 , -0x18 ,0x98 ,0x58 ,0xd8 ,0x38 ,0xb8 ,0x78 ,0xf8 , -0x04 ,0x84 ,0x44 ,0xc4 ,0x24 ,0xa4 ,0x64 ,0xe4 , -0x14 ,0x94 ,0x54 ,0xd4 ,0x34 ,0xb4 ,0x74 ,0xf4 , -0x0c ,0x8c ,0x4c ,0xcc ,0x2c ,0xac ,0x6c ,0xec , -0x1c ,0x9c ,0x5c ,0xdc ,0x3c ,0xbc ,0x7c ,0xfc , -0x02 ,0x82 ,0x42 ,0xc2 ,0x22 ,0xa2 ,0x62 ,0xe2 , -0x12 ,0x92 ,0x52 ,0xd2 ,0x32 ,0xb2 ,0x72 ,0xf2 , -0x0a ,0x8a ,0x4a ,0xca ,0x2a ,0xaa ,0x6a ,0xea , -0x1a ,0x9a ,0x5a ,0xda ,0x3a ,0xba ,0x7a ,0xfa , -0x06 ,0x86 ,0x46 ,0xc6 ,0x26 ,0xa6 ,0x66 ,0xe6 , -0x16 ,0x96 ,0x56 ,0xd6 ,0x36 ,0xb6 ,0x76 ,0xf6 , -0x0e ,0x8e ,0x4e ,0xce ,0x2e ,0xae ,0x6e ,0xee , -0x1e ,0x9e ,0x5e ,0xde ,0x3e ,0xbe ,0x7e ,0xfe , -0x01 ,0x81 ,0x41 ,0xc1 ,0x21 ,0xa1 ,0x61 ,0xe1 , -0x11 ,0x91 ,0x51 ,0xd1 ,0x31 ,0xb1 ,0x71 ,0xf1 , -0x09 ,0x89 ,0x49 ,0xc9 ,0x29 ,0xa9 ,0x69 ,0xe9 , -0x19 ,0x99 ,0x59 ,0xd9 ,0x39 ,0xb9 ,0x79 ,0xf9 , -0x05 ,0x85 ,0x45 ,0xc5 ,0x25 ,0xa5 ,0x65 ,0xe5 , -0x15 ,0x95 ,0x55 ,0xd5 ,0x35 ,0xb5 ,0x75 ,0xf5 , -0x0d ,0x8d ,0x4d ,0xcd ,0x2d ,0xad ,0x6d ,0xed , -0x1d ,0x9d ,0x5d ,0xdd ,0x3d ,0xbd ,0x7d ,0xfd , -0x03 ,0x83 ,0x43 ,0xc3 ,0x23 ,0xa3 ,0x63 ,0xe3 , -0x13 ,0x93 ,0x53 ,0xd3 ,0x33 ,0xb3 ,0x73 ,0xf3 , -0x0b ,0x8b ,0x4b ,0xcb ,0x2b ,0xab ,0x6b ,0xeb , -0x1b ,0x9b ,0x5b ,0xdb ,0x3b ,0xbb ,0x7b ,0xfb , -0x07 ,0x87 ,0x47 ,0xc7 ,0x27 ,0xa7 ,0x67 ,0xe7 , -0x17 ,0x97 ,0x57 ,0xd7 ,0x37 ,0xb7 ,0x77 ,0xf7 , -0x0f ,0x8f ,0x4f ,0xcf ,0x2f ,0xaf ,0x6f ,0xef , -0x1f ,0x9f ,0x5f ,0xdf ,0x3f ,0xbf ,0x7f ,0xff , -}; -int nvidiafb_sync (struct fb_info *info) {struct nvidia_par *par = info->par;
drivers/video/nvidia/nv_proto.h +0 -1
@@ -62,7 +62,6 @@ extern void nvidiafb_fillrect(struct fb_extern void nvidiafb_imageblit (struct fb_info *info,const struct fb_image *image);extern int nvidiafb_sync (struct fb_info *info); -extern u8 byte_rev[256 ];/* in nv_backlight.h */ #ifdef CONFIG_FB_NVIDIA_BACKLIGHT
drivers/video/tgafb.c +11 -45
99 lines not on this page · raw message
drivers/video/riva/fbdev.c
Quoted 17 lines · Akinobu Mita
Use bitrev8 for nvidiafb, rivafb, and tgafb drivers
Cc Antonino Daplas <[email protected]>Signed-off-by Akinobu Mita <[email protected]>drivers/video/Kconfig | 3 ++ drivers/video/nvidia/nv_accel.c | 35 ------------------------- drivers/video/nvidia/nv_local.h | 11 +++++-- drivers/video/nvidia/nv_proto.h | 1 drivers/video/riva/fbdev.c | 44 +++---------------------------- drivers/video/tgafb.c | 56 +++++++--------------------------------- 6 files changed, 26 insertions(+), 124 deletions(-)Index:
work-fault-inject/drivers/video/riva/fbdev.c
===================================================================drivers/video/riva/fbdev.c +0
-0
[]
drivers/video/riva/fbdev.c static inline unsigned char MISCin(struc · line 532
Quoted 12 lines
static inline void
reverse_order(u32 *l)
{drivers/video/riva/fbdev.c +4
-4u8 *a = (u8 *)l; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++; - *a = byte_rev[*a]; + a[0 ] =bitrev8 (a[0 ]); + a[1 ] =bitrev8 (a[1 ]); + a[2 ] =bitrev8 (a[2 ]); + a[3 ] =bitrev8 (a[3 ]); }
This looks like a good candidate for a common helper function, too.
/mjt
Quoted 6 lines · Michael Tokarev
Quoted 6 lines
static inline void
reverse_order(u32 *l)
{drivers/video/riva/fbdev.c +0
-3u8 *a = (u8 *)l; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++; - *a = byte_rev[*a], a++;
Quoted 8 lines
drivers/video/riva/fbdev.c static inline unsigned char MISCin(struc · line 532
Quoted 6 lines
drivers/video/riva/fbdev.c +4
-1- *a = byte_rev[*a]; + a[0 ] =bitrev8 (a[0 ]); + a[1 ] =bitrev8 (a[1 ]); + a[2 ] =bitrev8 (a[2 ]); + a[3 ] =bitrev8 (a[3 ]); }This looks like a good candidate for a common helper function, too.
I thought that and we already have static function bytereverse() in lib/crc32. But I could not find where I could replace except here. So I didn't put bytereverse() into bitrev.h