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) | |
download | op-kernel-dev-5c5131297db57b501f371ab53c40343eac6f2af7.zip op-kernel-dev-5c5131297db57b501f371ab53c40343eac6f2af7.tar.gz |
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 c3267e4..2eab2a8 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, 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], |