Commit 0a858857 authored by Akinobu Mita's avatar Akinobu Mita Committed by Linus Torvalds

[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: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 60e657e3
...@@ -242,6 +242,7 @@ config ATM_IDT77252_USE_SUNI ...@@ -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 @@ ...@@ -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) { ...@@ -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) { ...@@ -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]);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment