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:
parent
54493c1006
commit
884c3d7510
2 changed files with 7 additions and 29 deletions
|
@ -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.
|
||||||
|
|
|
@ -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) \
|
||||||
|
|
Loading…
Reference in a new issue