cm4000_cs: use bitrev

Cleanup using bitrev8 in cm4000_cs driver.

Cc: Harald Welte <laforge@gnumonks.org>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Akinobu Mita 2007-05-09 02:33:32 -07:00 committed by Linus Torvalds
parent 54493c1006
commit 884c3d7510
2 changed files with 7 additions and 29 deletions

View file

@ -21,6 +21,7 @@ config SYNCLINK_CS
config CARDMAN_4000 config CARDMAN_4000
tristate "Omnikey Cardman 4000 support" tristate "Omnikey Cardman 4000 support"
depends on PCMCIA depends on PCMCIA
select BITREVERSE
help help
Enable support for the Omnikey Cardman 4000 PCMCIA Smartcard Enable support for the Omnikey Cardman 4000 PCMCIA Smartcard
reader. reader.

View file

@ -31,6 +31,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/bitrev.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/io.h> #include <asm/io.h>
@ -194,41 +195,17 @@ static inline unsigned char xinb(unsigned short port)
} }
#endif #endif
#define b_0000 15 static inline unsigned char invert_revert(unsigned char ch)
#define b_0001 14 {
#define b_0010 13 return bitrev8(~ch);
#define b_0011 12 }
#define b_0100 11
#define b_0101 10
#define b_0110 9
#define b_0111 8
#define b_1000 7
#define b_1001 6
#define b_1010 5
#define b_1011 4
#define b_1100 3
#define b_1101 2
#define b_1110 1
#define b_1111 0
static unsigned char irtab[16] = {
b_0000, b_1000, b_0100, b_1100,
b_0010, b_1010, b_0110, b_1110,
b_0001, b_1001, b_0101, b_1101,
b_0011, b_1011, b_0111, b_1111
};
static void str_invert_revert(unsigned char *b, int len) static void str_invert_revert(unsigned char *b, int len)
{ {
int i; int i;
for (i = 0; i < len; i++) for (i = 0; i < len; i++)
b[i] = (irtab[b[i] & 0x0f] << 4) | irtab[b[i] >> 4]; b[i] = invert_revert(b[i]);
}
static unsigned char invert_revert(unsigned char ch)
{
return (irtab[ch & 0x0f] << 4) | irtab[ch >> 4];
} }
#define ATRLENCK(dev,pos) \ #define ATRLENCK(dev,pos) \