[PATCH] atm/ambassador: use bitrev8
Use bitrev8 for ambassador driver. Cc: Chas Williams <linux-atm-general@lists.sourceforge.net> Cc: Giuliano Procida at Madge Networks <gprocida@madge.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
60e657e377
commit
0a85885785
@@ -242,6 +242,7 @@ config ATM_IDT77252_USE_SUNI
|
|||||||
config ATM_AMBASSADOR
|
config ATM_AMBASSADOR
|
||||||
tristate "Madge Ambassador (Collage PCI 155 Server)"
|
tristate "Madge Ambassador (Collage PCI 155 Server)"
|
||||||
depends on PCI && ATM
|
depends on PCI && ATM
|
||||||
|
select BITREVERSE
|
||||||
help
|
help
|
||||||
This is a driver for ATMizer based ATM card produced by Madge
|
This is a driver for ATMizer based ATM card produced by Madge
|
||||||
Networks Ltd. Say Y (or M to compile as a module named ambassador)
|
Networks Ltd. Say Y (or M to compile as a module named ambassador)
|
||||||
|
@@ -32,6 +32,7 @@
|
|||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/poison.h>
|
#include <linux/poison.h>
|
||||||
|
#include <linux/bitrev.h>
|
||||||
|
|
||||||
#include <asm/atomic.h>
|
#include <asm/atomic.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
@@ -2068,18 +2069,6 @@ static void __devinit amb_ucode_version (amb_dev * dev) {
|
|||||||
PRINTK (KERN_INFO, "microcode version is %u.%u", major, minor);
|
PRINTK (KERN_INFO, "microcode version is %u.%u", major, minor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// swap bits within byte to get Ethernet ordering
|
|
||||||
static u8 bit_swap (u8 byte)
|
|
||||||
{
|
|
||||||
const u8 swap[] = {
|
|
||||||
0x0, 0x8, 0x4, 0xc,
|
|
||||||
0x2, 0xa, 0x6, 0xe,
|
|
||||||
0x1, 0x9, 0x5, 0xd,
|
|
||||||
0x3, 0xb, 0x7, 0xf
|
|
||||||
};
|
|
||||||
return ((swap[byte & 0xf]<<4) | swap[byte>>4]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// get end station address
|
// get end station address
|
||||||
static void __devinit amb_esi (amb_dev * dev, u8 * esi) {
|
static void __devinit amb_esi (amb_dev * dev, u8 * esi) {
|
||||||
u32 lower4;
|
u32 lower4;
|
||||||
@@ -2101,9 +2090,9 @@ static void __devinit amb_esi (amb_dev * dev, u8 * esi) {
|
|||||||
PRINTDB (DBG_INIT, "ESI:");
|
PRINTDB (DBG_INIT, "ESI:");
|
||||||
for (i = 0; i < ESI_LEN; ++i) {
|
for (i = 0; i < ESI_LEN; ++i) {
|
||||||
if (i < 4)
|
if (i < 4)
|
||||||
esi[i] = bit_swap (lower4>>(8*i));
|
esi[i] = bitrev8(lower4>>(8*i));
|
||||||
else
|
else
|
||||||
esi[i] = bit_swap (upper2>>(8*(i-4)));
|
esi[i] = bitrev8(upper2>>(8*(i-4)));
|
||||||
PRINTDM (DBG_INIT, " %02x", esi[i]);
|
PRINTDM (DBG_INIT, " %02x", esi[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user