aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/tg3.c84
-rw-r--r--drivers/net/tg3.h34
2 files changed, 88 insertions, 30 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 3a62cc50c210..b545ea7e0ad6 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -12112,45 +12112,71 @@ struct subsys_tbl_ent {
12112 u32 phy_id; 12112 u32 phy_id;
12113}; 12113};
12114 12114
12115static struct subsys_tbl_ent subsys_id_to_phy_id[] = { 12115static struct subsys_tbl_ent subsys_id_to_phy_id[] __devinitdata = {
12116 /* Broadcom boards. */ 12116 /* Broadcom boards. */
12117 { PCI_VENDOR_ID_BROADCOM, 0x1644, PHY_ID_BCM5401 }, /* BCM95700A6 */ 12117 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12118 { PCI_VENDOR_ID_BROADCOM, 0x0001, PHY_ID_BCM5701 }, /* BCM95701A5 */ 12118 TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6, PHY_ID_BCM5401 },
12119 { PCI_VENDOR_ID_BROADCOM, 0x0002, PHY_ID_BCM8002 }, /* BCM95700T6 */ 12119 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12120 { PCI_VENDOR_ID_BROADCOM, 0x0003, 0 }, /* BCM95700A9 */ 12120 TG3PCI_SUBDEVICE_ID_BROADCOM_95701A5, PHY_ID_BCM5701 },
12121 { PCI_VENDOR_ID_BROADCOM, 0x0005, PHY_ID_BCM5701 }, /* BCM95701T1 */ 12121 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12122 { PCI_VENDOR_ID_BROADCOM, 0x0006, PHY_ID_BCM5701 }, /* BCM95701T8 */ 12122 TG3PCI_SUBDEVICE_ID_BROADCOM_95700T6, PHY_ID_BCM8002 },
12123 { PCI_VENDOR_ID_BROADCOM, 0x0007, 0 }, /* BCM95701A7 */ 12123 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12124 { PCI_VENDOR_ID_BROADCOM, 0x0008, PHY_ID_BCM5701 }, /* BCM95701A10 */ 12124 TG3PCI_SUBDEVICE_ID_BROADCOM_95700A9, 0 },
12125 { PCI_VENDOR_ID_BROADCOM, 0x8008, PHY_ID_BCM5701 }, /* BCM95701A12 */ 12125 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12126 { PCI_VENDOR_ID_BROADCOM, 0x0009, PHY_ID_BCM5703 }, /* BCM95703Ax1 */ 12126 TG3PCI_SUBDEVICE_ID_BROADCOM_95701T1, PHY_ID_BCM5701 },
12127 { PCI_VENDOR_ID_BROADCOM, 0x8009, PHY_ID_BCM5703 }, /* BCM95703Ax2 */ 12127 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12128 TG3PCI_SUBDEVICE_ID_BROADCOM_95701T8, PHY_ID_BCM5701 },
12129 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12130 TG3PCI_SUBDEVICE_ID_BROADCOM_95701A7, 0 },
12131 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12132 TG3PCI_SUBDEVICE_ID_BROADCOM_95701A10, PHY_ID_BCM5701 },
12133 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12134 TG3PCI_SUBDEVICE_ID_BROADCOM_95701A12, PHY_ID_BCM5701 },
12135 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12136 TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX1, PHY_ID_BCM5703 },
12137 { TG3PCI_SUBVENDOR_ID_BROADCOM,
12138 TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX2, PHY_ID_BCM5703 },
12128 12139
12129 /* 3com boards. */ 12140 /* 3com boards. */
12130 { PCI_VENDOR_ID_3COM, 0x1000, PHY_ID_BCM5401 }, /* 3C996T */ 12141 { TG3PCI_SUBVENDOR_ID_3COM,
12131 { PCI_VENDOR_ID_3COM, 0x1006, PHY_ID_BCM5701 }, /* 3C996BT */ 12142 TG3PCI_SUBDEVICE_ID_3COM_3C996T, PHY_ID_BCM5401 },
12132 { PCI_VENDOR_ID_3COM, 0x1004, 0 }, /* 3C996SX */ 12143 { TG3PCI_SUBVENDOR_ID_3COM,
12133 { PCI_VENDOR_ID_3COM, 0x1007, PHY_ID_BCM5701 }, /* 3C1000T */ 12144 TG3PCI_SUBDEVICE_ID_3COM_3C996BT, PHY_ID_BCM5701 },
12134 { PCI_VENDOR_ID_3COM, 0x1008, PHY_ID_BCM5701 }, /* 3C940BR01 */ 12145 { TG3PCI_SUBVENDOR_ID_3COM,
12146 TG3PCI_SUBDEVICE_ID_3COM_3C996SX, 0 },
12147 { TG3PCI_SUBVENDOR_ID_3COM,
12148 TG3PCI_SUBDEVICE_ID_3COM_3C1000T, PHY_ID_BCM5701 },
12149 { TG3PCI_SUBVENDOR_ID_3COM,
12150 TG3PCI_SUBDEVICE_ID_3COM_3C940BR01, PHY_ID_BCM5701 },
12135 12151
12136 /* DELL boards. */ 12152 /* DELL boards. */
12137 { PCI_VENDOR_ID_DELL, 0x00d1, PHY_ID_BCM5401 }, /* VIPER */ 12153 { TG3PCI_SUBVENDOR_ID_DELL,
12138 { PCI_VENDOR_ID_DELL, 0x0106, PHY_ID_BCM5401 }, /* JAGUAR */ 12154 TG3PCI_SUBDEVICE_ID_DELL_VIPER, PHY_ID_BCM5401 },
12139 { PCI_VENDOR_ID_DELL, 0x0109, PHY_ID_BCM5411 }, /* MERLOT */ 12155 { TG3PCI_SUBVENDOR_ID_DELL,
12140 { PCI_VENDOR_ID_DELL, 0x010a, PHY_ID_BCM5411 }, /* SLIM_MERLOT */ 12156 TG3PCI_SUBDEVICE_ID_DELL_JAGUAR, PHY_ID_BCM5401 },
12157 { TG3PCI_SUBVENDOR_ID_DELL,
12158 TG3PCI_SUBDEVICE_ID_DELL_MERLOT, PHY_ID_BCM5411 },
12159 { TG3PCI_SUBVENDOR_ID_DELL,
12160 TG3PCI_SUBDEVICE_ID_DELL_SLIM_MERLOT, PHY_ID_BCM5411 },
12141 12161
12142 /* Compaq boards. */ 12162 /* Compaq boards. */
12143 { PCI_VENDOR_ID_COMPAQ, 0x007c, PHY_ID_BCM5701 }, /* BANSHEE */ 12163 { TG3PCI_SUBVENDOR_ID_COMPAQ,
12144 { PCI_VENDOR_ID_COMPAQ, 0x009a, PHY_ID_BCM5701 }, /* BANSHEE_2 */ 12164 TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE, PHY_ID_BCM5701 },
12145 { PCI_VENDOR_ID_COMPAQ, 0x007d, 0 }, /* CHANGELING */ 12165 { TG3PCI_SUBVENDOR_ID_COMPAQ,
12146 { PCI_VENDOR_ID_COMPAQ, 0x0085, PHY_ID_BCM5701 }, /* NC7780 */ 12166 TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE_2, PHY_ID_BCM5701 },
12147 { PCI_VENDOR_ID_COMPAQ, 0x0099, PHY_ID_BCM5701 }, /* NC7780_2 */ 12167 { TG3PCI_SUBVENDOR_ID_COMPAQ,
12168 TG3PCI_SUBDEVICE_ID_COMPAQ_CHANGELING, 0 },
12169 { TG3PCI_SUBVENDOR_ID_COMPAQ,
12170 TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780, PHY_ID_BCM5701 },
12171 { TG3PCI_SUBVENDOR_ID_COMPAQ,
12172 TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780_2, PHY_ID_BCM5701 },
12148 12173
12149 /* IBM boards. */ 12174 /* IBM boards. */
12150 { PCI_VENDOR_ID_IBM, 0x0281, 0 } /* IBM??? */ 12175 { TG3PCI_SUBVENDOR_ID_IBM,
12176 TG3PCI_SUBDEVICE_ID_IBM_5703SAX2, 0 }
12151}; 12177};
12152 12178
12153static inline struct subsys_tbl_ent *lookup_by_subsys(struct tg3 *tp) 12179static struct subsys_tbl_ent * __devinit tg3_lookup_by_subsys(struct tg3 *tp)
12154{ 12180{
12155 int i; 12181 int i;
12156 12182
@@ -12476,7 +12502,7 @@ static int __devinit tg3_phy_probe(struct tg3 *tp)
12476 /* No eeprom signature? Try the hardcoded 12502 /* No eeprom signature? Try the hardcoded
12477 * subsys device table. 12503 * subsys device table.
12478 */ 12504 */
12479 p = lookup_by_subsys(tp); 12505 p = tg3_lookup_by_subsys(tp);
12480 if (!p) 12506 if (!p)
12481 return -ENODEV; 12507 return -ENODEV;
12482 12508
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
index d2712c5b78ec..12ce22644ac8 100644
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
@@ -56,7 +56,39 @@
56#define TG3PCI_DEVICE_TIGON3_57765 0x16b4 56#define TG3PCI_DEVICE_TIGON3_57765 0x16b4
57#define TG3PCI_DEVICE_TIGON3_57791 0x16b2 57#define TG3PCI_DEVICE_TIGON3_57791 0x16b2
58#define TG3PCI_DEVICE_TIGON3_57795 0x16b6 58#define TG3PCI_DEVICE_TIGON3_57795 0x16b6
59/* 0x04 --> 0x64 unused */ 59/* 0x04 --> 0x2c unused */
60#define TG3PCI_SUBVENDOR_ID_BROADCOM PCI_VENDOR_ID_BROADCOM
61#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6 0x1644
62#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A5 0x0001
63#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700T6 0x0002
64#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A9 0x0003
65#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701T1 0x0005
66#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701T8 0x0006
67#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A7 0x0007
68#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A10 0x0008
69#define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A12 0x8008
70#define TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX1 0x0009
71#define TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX2 0x8009
72#define TG3PCI_SUBVENDOR_ID_3COM PCI_VENDOR_ID_3COM
73#define TG3PCI_SUBDEVICE_ID_3COM_3C996T 0x1000
74#define TG3PCI_SUBDEVICE_ID_3COM_3C996BT 0x1006
75#define TG3PCI_SUBDEVICE_ID_3COM_3C996SX 0x1004
76#define TG3PCI_SUBDEVICE_ID_3COM_3C1000T 0x1007
77#define TG3PCI_SUBDEVICE_ID_3COM_3C940BR01 0x1008
78#define TG3PCI_SUBVENDOR_ID_DELL PCI_VENDOR_ID_DELL
79#define TG3PCI_SUBDEVICE_ID_DELL_VIPER 0x00d1
80#define TG3PCI_SUBDEVICE_ID_DELL_JAGUAR 0x0106
81#define TG3PCI_SUBDEVICE_ID_DELL_MERLOT 0x0109
82#define TG3PCI_SUBDEVICE_ID_DELL_SLIM_MERLOT 0x010a
83#define TG3PCI_SUBVENDOR_ID_COMPAQ PCI_VENDOR_ID_COMPAQ
84#define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE 0x007c
85#define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE_2 0x009a
86#define TG3PCI_SUBDEVICE_ID_COMPAQ_CHANGELING 0x007d
87#define TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780 0x0085
88#define TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780_2 0x0099
89#define TG3PCI_SUBVENDOR_ID_IBM PCI_VENDOR_ID_IBM
90#define TG3PCI_SUBDEVICE_ID_IBM_5703SAX2 0x0281
91/* 0x30 --> 0x64 unused */
60#define TG3PCI_MSI_DATA 0x00000064 92#define TG3PCI_MSI_DATA 0x00000064
61/* 0x66 --> 0x68 unused */ 93/* 0x66 --> 0x68 unused */
62#define TG3PCI_MISC_HOST_CTRL 0x00000068 94#define TG3PCI_MISC_HOST_CTRL 0x00000068