diff options
author | Gary Zambrano <zambrano@broadcom.com> | 2006-03-29 17:12:05 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-29 17:12:05 -0500 |
commit | 5c5131297db57b501f371ab53c40343eac6f2af7 (patch) | |
tree | fa0ad95f0324720c5a18f7138e84d7ef4dd83525 | |
parent | f3cab8a0b1a772dc8b055b7affa567a366627c9e (diff) |
b44: fix force mac address before ifconfig up
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>
-rw-r--r-- | drivers/net/b44.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/b44.c b/drivers/net/b44.c index c3267e4e1bb0..2eab2a88c7bf 100644 --- a/drivers/net/b44.c +++ b/drivers/net/b44.c | |||
@@ -2033,6 +2033,11 @@ static int __devinit b44_init_one(struct pci_dev *pdev, | |||
2033 | 2033 | ||
2034 | pci_save_state(bp->pdev); | 2034 | pci_save_state(bp->pdev); |
2035 | 2035 | ||
2036 | /* Chip reset provides power to the b44 MAC & PCI cores, which | ||
2037 | * is necessary for MAC register access. | ||
2038 | */ | ||
2039 | b44_chip_reset(bp); | ||
2040 | |||
2036 | printk(KERN_INFO "%s: Broadcom 4400 10/100BaseT Ethernet ", dev->name); | 2041 | printk(KERN_INFO "%s: Broadcom 4400 10/100BaseT Ethernet ", dev->name); |
2037 | for (i = 0; i < 6; i++) | 2042 | for (i = 0; i < 6; i++) |
2038 | printk("%2.2x%c", dev->dev_addr[i], | 2043 | printk("%2.2x%c", dev->dev_addr[i], |