diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
--- linux.old/drivers/net/b44.c 2006-01-16 20:35:09.203794500 +0100
-+++ linux.dev/drivers/net/b44.c 2006-01-16 20:40:29.023782000 +0100
++++ linux.dev/drivers/net/b44.c 2006-01-16 22:20:45.631180500 +0100
@@ -1,7 +1,9 @@
-/* b44.c: Broadcom 4400 device driver.
+/* b44.c: Broadcom 4400/47xx device driver.
out:
return err;
}
-@@ -1865,22 +2243,54 @@
+@@ -1865,22 +2243,55 @@
static int __devinit b44_get_invariants(struct b44 *bp)
{
u8 eeprom[128];
- bp->dev->dev_addr[4] = eeprom[83];
- bp->dev->dev_addr[5] = eeprom[82];
- memcpy(bp->dev->perm_addr, bp->dev->dev_addr, bp->dev->addr_len);
+-
+- bp->phy_addr = eeprom[90] & 0x1f;
+ u8 buf[32];
+ int err = 0;
-
-- bp->phy_addr = eeprom[90] & 0x1f;
++ unsigned long flags;
++
+#ifdef CONFIG_BCM947XX
+ if (bp->pdev->device == PCI_DEVICE_ID_BCM4713) {
+ /*
/* With this, plus the rx_header prepended to the data by the
* hardware, we'll land the ethernet header on a 2-byte boundary.
*/
-@@ -1889,11 +2299,7 @@
+@@ -1889,11 +2300,7 @@
bp->imask = IMASK_DEF;
bp->core_unit = ssb_core_unit(bp);
out:
return err;
}
-@@ -2032,11 +2438,17 @@
+@@ -2032,11 +2439,17 @@
pci_save_state(bp->pdev);