]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.39/patches.drivers/tg3_libphy_workaround
Fix oinkmaster patch.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / tg3_libphy_workaround
1 From: Matt Carlson <Matt.Carlson@broadcom.net>
2 Subject: tg3 libphy workaround
3 Reference: bnc#68725
4 Acked-by: Karsten Keil <kkeil@novell.com>
5
6 Hi Philip. Below is the SLES 11 patch that disables 5785 support and
7 forces the 57780 to use the in-driver phy code rather than the phylib
8 code.
9
10 While I have your attention, are there any outstanding bootloader
11 install bugs? On my lab machine, I install SLES 11 onto partition 12
12 and tell the installer to install the bootloader (GRUB) into the MBR
13 of that partition. I then reboot the machine and instruct the existing
14 bootloader in partition 1 (GRUB again) to chainload to partition 12.
15
16 It seems the SLES 11 installer somehow corrupts the MBR of the disk so
17 that it no longer boots. I've installed SLES 11 twice now and on the
18 2nd install, I carefully navigated through the bootloader configuration
19 portion. I don't think I'm doing anything wrong. Anyways, just an FYI...
20
21
22
23 diff -Nrup 1/drivers/net/tg3.c 2/drivers/net/tg3.c
24 --- 1/drivers/net/tg3.c 2009-01-14 15:19:32.000000000 -0800
25 +++ 2/drivers/net/tg3.c 2009-01-23 07:06:53.000000000 -0800
26 @@ -205,7 +205,6 @@ static struct pci_device_id tg3_pci_tbl[
27 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5723)},
28 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5761)},
29 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5761E)},
30 - {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5785)},
31 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57780)},
32 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57760)},
33 {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57790)},
34 @@ -12428,8 +12427,7 @@ static int __devinit tg3_get_invariants(
35 GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_BX)
36 tp->coalesce_mode |= HOSTCC_MODE_32BYTE;
37
38 - if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
39 - GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780)
40 + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785)
41 tp->tg3_flags3 |= TG3_FLG3_USE_PHYLIB;
42
43 err = tg3_mdio_init(tp);
44 @@ -13192,6 +13190,7 @@ static char * __devinit tg3_phy_string(s
45 case PHY_ID_BCM5756: return "5722/5756";
46 case PHY_ID_BCM5906: return "5906";
47 case PHY_ID_BCM5761: return "5761";
48 + case PHY_ID_BCM57780: return "57780";
49 case PHY_ID_BCM8002: return "8002/serdes";
50 case 0: return "serdes";
51 default: return "unknown";
52 diff -Nrup 1/drivers/net/tg3.h 2/drivers/net/tg3.h
53 --- 1/drivers/net/tg3.h 2009-01-14 15:19:30.000000000 -0800
54 +++ 2/drivers/net/tg3.h 2009-01-23 07:04:58.000000000 -0800
55 @@ -2586,6 +2586,7 @@ struct tg3 {
56 #define PHY_ID_BCM5761 0xbc050fd0
57 #define PHY_ID_BCM5906 0xdc00ac40
58 #define PHY_ID_BCM8002 0x60010140
59 +#define PHY_ID_BCM57780 0x5c0d8990
60 #define PHY_ID_INVALID 0xffffffff
61 #define PHY_ID_REV_MASK 0x0000000f
62 #define PHY_REV_BCM5401_B0 0x1