b44: fix force mac address before ifconfig up
authorGary Zambrano <zambrano@broadcom.com>
Wed, 29 Mar 2006 22:12:05 +0000 (17:12 -0500)
committerJeff Garzik <jeff@garzik.org>
Wed, 29 Mar 2006 22:12:05 +0000 (17:12 -0500)
Initializing the b44 MAC & PCI functional blocks in the controller must
occur inside init_one(). This will allow access to the MAC registers.
The controller was being powered up in b44_open() which would not allow
access to the registers before ifconfig was up.
Philip Kohlbecher found this bug.

Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
drivers/net/b44.c

index c3267e4e1bb02d6c7bf552b1fc818aa4308fa0c2..2eab2a88c7bf9d0b3966a96bfeae7c6eb7538095 100644 (file)
@@ -2033,6 +2033,11 @@ static int __devinit b44_init_one(struct pci_dev *pdev,
 
        pci_save_state(bp->pdev);
 
+       /* Chip reset provides power to the b44 MAC & PCI cores, which 
+        * is necessary for MAC register access.
+        */ 
+       b44_chip_reset(bp);
+
        printk(KERN_INFO "%s: Broadcom 4400 10/100BaseT Ethernet ", dev->name);
        for (i = 0; i < 6; i++)
                printk("%2.2x%c", dev->dev_addr[i],