brcm47xx: 2.6.28 was accidentally committed with the old (and conceptually broken...
[openwrt/staging/florian.git] / target / linux / brcm47xx / patches-2.6.28 / 210-b44_phy_fix.patch
1 --- a/drivers/net/b44.c
2 +++ b/drivers/net/b44.c
3 @@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp)
4 }
5 }
6
7 - return 0;
8 + return err;
9 }
10
11 static void __b44_set_flow_ctrl(struct b44 *bp, u32 pause_flags)
12 @@ -384,7 +384,7 @@ static void b44_set_flow_ctrl(struct b44
13 __b44_set_flow_ctrl(bp, pause_enab);
14 }
15
16 -#ifdef SSB_DRIVER_MIPS
17 +#ifdef CONFIG_SSB_DRIVER_MIPS
18 extern char *nvram_get(char *name);
19 static void b44_wap54g10_workaround(struct b44 *bp)
20 {
21 @@ -2213,6 +2213,10 @@ static int __devinit b44_init_one(struct
22 */
23 b44_chip_reset(bp, B44_CHIP_RESET_FULL);
24
25 + /* do a phy reset to test if there is an active phy */
26 + if (b44_phy_reset(bp) < 0)
27 + bp->phy_addr = B44_PHY_ADDR_NO_PHY;
28 +
29 printk(KERN_INFO "%s: Broadcom 44xx/47xx 10/100BaseT Ethernet %s\n",
30 dev->name, print_mac(mac, dev->dev_addr));
31