Linksys EG1032 rev. 3 patch
Matthew N. Dodd
mdodd at FreeBSD.ORG
Sun Oct 2 15:58:54 PDT 2005
On Sun, 2 Oct 2005, Fredrik Lindberg wrote:
> I couldn't get a clean compile with this for some reason, maybe
> my buildspace were polluted.
Yea, I forget the diffs to rl(4).
Attached.
--
10 40 80 C0 00 FF FF FF FF C0 00 00 00 00 10 AA AA 03 00 00 00 08 00
-------------- next part --------------
Index: pci/if_sk.c
===================================================================
RCS file: /home/cvs/src/sys/pci/if_sk.c,v
retrieving revision 1.110
diff -u -u -r1.110 if_sk.c
--- pci/if_sk.c 16 Sep 2005 11:11:51 -0000 1.110
+++ pci/if_sk.c 2 Oct 2005 22:51:46 -0000
@@ -142,40 +142,45 @@
static struct sk_type sk_devs[] = {
{
VENDORID_SK,
- DEVICEID_SK_V1,
+ DEVICEID_SK_V1, -1,
"SysKonnect Gigabit Ethernet (V1.0)"
},
{
VENDORID_SK,
- DEVICEID_SK_V2,
+ DEVICEID_SK_V2, -1,
"SysKonnect Gigabit Ethernet (V2.0)"
},
{
VENDORID_MARVELL,
- DEVICEID_SK_V2,
+ DEVICEID_SK_V2, -1,
"Marvell Gigabit Ethernet"
},
{
VENDORID_MARVELL,
- DEVICEID_BELKIN_5005,
+ DEVICEID_BELKIN_5005, -1,
"Belkin F5D5005 Gigabit Ethernet"
},
{
VENDORID_3COM,
- DEVICEID_3COM_3C940,
+ DEVICEID_3COM_3C940, -1,
"3Com 3C940 Gigabit Ethernet"
},
{
VENDORID_LINKSYS,
- DEVICEID_LINKSYS_EG1032,
- "Linksys EG1032 Gigabit Ethernet"
+ DEVICEID_LINKSYS_EG1032, 0x0,
+ "Linksys EG1032 v1 Gigabit Ethernet"
+ },
+ {
+ VENDORID_LINKSYS,
+ DEVICEID_LINKSYS_EG1032, 0x1,
+ "Linksys EG1032 v2 Gigabit Ethernet"
},
{
VENDORID_DLINK,
- DEVICEID_DLINK_DGE530T,
+ DEVICEID_DLINK_DGE530T, -1,
"D-Link DGE-530T Gigabit Ethernet"
},
- { 0, 0, NULL }
+ { 0, 0, 0, NULL }
};
static int skc_probe(device_t);
@@ -1311,7 +1316,9 @@
while(t->sk_name != NULL) {
if ((pci_get_vendor(dev) == t->sk_vid) &&
- (pci_get_device(dev) == t->sk_did)) {
+ (pci_get_device(dev) == t->sk_did) &&
+ ((t->sk_rid == -1) ||
+ (pci_get_revid(dev) == t->sk_rid))) {
device_set_desc(dev, t->sk_name);
return (BUS_PROBE_DEFAULT);
}
Index: pci/if_skreg.h
===================================================================
RCS file: /home/cvs/src/sys/pci/if_skreg.h,v
retrieving revision 1.29
diff -u -u -r1.29 if_skreg.h
--- pci/if_skreg.h 10 Jun 2005 16:49:23 -0000 1.29
+++ pci/if_skreg.h 2 Oct 2005 17:45:25 -0000
@@ -1300,6 +1300,7 @@
struct sk_type {
u_int16_t sk_vid;
u_int16_t sk_did;
+ int sk_rid;
char *sk_name;
};
Index: pci/if_rl.c
===================================================================
RCS file: /home/cvs/src/sys/pci/if_rl.c,v
retrieving revision 1.158
diff -u -u -r1.158 if_rl.c
--- pci/if_rl.c 1 Oct 2005 18:56:19 -0000 1.158
+++ pci/if_rl.c 2 Oct 2005 22:56:03 -0000
@@ -136,41 +136,41 @@
* Various supported device vendors/types and their names.
*/
static struct rl_type rl_devs[] = {
- { RT_VENDORID, RT_DEVICEID_8129, RL_8129,
+ { RT_VENDORID, RT_DEVICEID_8129, -1, RL_8129,
"RealTek 8129 10/100BaseTX" },
- { RT_VENDORID, RT_DEVICEID_8139, RL_8139,
+ { RT_VENDORID, RT_DEVICEID_8139, -1, RL_8139,
"RealTek 8139 10/100BaseTX" },
- { RT_VENDORID, RT_DEVICEID_8138, RL_8139,
+ { RT_VENDORID, RT_DEVICEID_8138, -1, RL_8139,
"RealTek 8139 10/100BaseTX CardBus" },
- { RT_VENDORID, RT_DEVICEID_8100, RL_8139,
+ { RT_VENDORID, RT_DEVICEID_8100, -1, RL_8139,
"RealTek 8100 10/100BaseTX" },
- { ACCTON_VENDORID, ACCTON_DEVICEID_5030, RL_8139,
+ { ACCTON_VENDORID, ACCTON_DEVICEID_5030, -1, RL_8139,
"Accton MPX 5030/5038 10/100BaseTX" },
- { DELTA_VENDORID, DELTA_DEVICEID_8139, RL_8139,
+ { DELTA_VENDORID, DELTA_DEVICEID_8139, -1, RL_8139,
"Delta Electronics 8139 10/100BaseTX" },
- { ADDTRON_VENDORID, ADDTRON_DEVICEID_8139, RL_8139,
+ { ADDTRON_VENDORID, ADDTRON_DEVICEID_8139, -1, RL_8139,
"Addtron Technolgy 8139 10/100BaseTX" },
- { DLINK_VENDORID, DLINK_DEVICEID_530TXPLUS, RL_8139,
+ { DLINK_VENDORID, DLINK_DEVICEID_530TXPLUS, -1, RL_8139,
"D-Link DFE-530TX+ 10/100BaseTX" },
- { DLINK_VENDORID, DLINK_DEVICEID_690TXD, RL_8139,
+ { DLINK_VENDORID, DLINK_DEVICEID_690TXD, -1, RL_8139,
"D-Link DFE-690TXD 10/100BaseTX" },
- { NORTEL_VENDORID, ACCTON_DEVICEID_5030, RL_8139,
+ { NORTEL_VENDORID, ACCTON_DEVICEID_5030, -1, RL_8139,
"Nortel Networks 10/100BaseTX" },
- { COREGA_VENDORID, COREGA_DEVICEID_FETHERCBTXD, RL_8139,
+ { COREGA_VENDORID, COREGA_DEVICEID_FETHERCBTXD, -1, RL_8139,
"Corega FEther CB-TXD" },
- { COREGA_VENDORID, COREGA_DEVICEID_FETHERIICBTXD, RL_8139,
+ { COREGA_VENDORID, COREGA_DEVICEID_FETHERIICBTXD, -1, RL_8139,
"Corega FEtherII CB-TXD" },
- { PEPPERCON_VENDORID, PEPPERCON_DEVICEID_ROLF, RL_8139,
+ { PEPPERCON_VENDORID, PEPPERCON_DEVICEID_ROLF, -1, RL_8139,
"Peppercon AG ROL-F" },
- { PLANEX_VENDORID, PLANEX_DEVICEID_FNW3800TX, RL_8139,
+ { PLANEX_VENDORID, PLANEX_DEVICEID_FNW3800TX, -1, RL_8139,
"Planex FNW-3800-TX" },
- { CP_VENDORID, RT_DEVICEID_8139, RL_8139,
+ { CP_VENDORID, RT_DEVICEID_8139, -1, RL_8139,
"Compaq HNE-300" },
- { LEVEL1_VENDORID, LEVEL1_DEVICEID_FPC0106TX, RL_8139,
+ { LEVEL1_VENDORID, LEVEL1_DEVICEID_FPC0106TX, -1, RL_8139,
"LevelOne FPC-0106TX" },
- { EDIMAX_VENDORID, EDIMAX_DEVICEID_EP4103DL, RL_8139,
+ { EDIMAX_VENDORID, EDIMAX_DEVICEID_EP4103DL, -1, RL_8139,
"Edimax EP-4103DL CardBus" },
- { 0, 0, 0, NULL }
+ { 0, 0, 0, 0, NULL }
};
static int rl_attach(device_t);
@@ -733,7 +733,10 @@
while (t->rl_name != NULL) {
if ((pci_get_vendor(dev) == t->rl_vid) &&
- (pci_get_device(dev) == t->rl_did)) {
+ (pci_get_device(dev) == t->rl_did) &&
+ ((t->rl_rid == -1) ||
+ (pci_get_revid(dev) == t->rl_rid))) {
+
/*
* Temporarily map the I/O space
* so we can read the chip ID register.
Index: pci/if_rlreg.h
===================================================================
RCS file: /home/cvs/src/sys/pci/if_rlreg.h,v
retrieving revision 1.53
diff -u -u -r1.53 if_rlreg.h
--- pci/if_rlreg.h 29 Sep 2005 16:52:19 -0000 1.53
+++ pci/if_rlreg.h 2 Oct 2005 22:56:18 -0000
@@ -457,6 +457,7 @@
struct rl_type {
uint16_t rl_vid;
uint16_t rl_did;
+ int rl_rid;
int rl_basetype;
char *rl_name;
};
@@ -805,6 +806,16 @@
#define DLINK_DEVICEID_690TXD 0x1340
/*
+ * Linksys PCI vendor ID
+ */
+#define VENDORID_LINKSYS 0x1737
+
+/*
+ * Linksys gigabit ethernet device ID
+ */
+#define DEVICEID_LINKSYS_EG1032 0x1032
+
+/*
* Corega K.K vendor ID
*/
#define COREGA_VENDORID 0x1259
Index: dev/re/if_re.c
===================================================================
RCS file: /home/cvs/src/sys/dev/re/if_re.c,v
retrieving revision 1.56
diff -u -u -r1.56 if_re.c
--- dev/re/if_re.c 1 Oct 2005 18:56:17 -0000 1.56
+++ dev/re/if_re.c 2 Oct 2005 22:56:58 -0000
@@ -159,21 +159,23 @@
* Various supported device vendors/types and their names.
*/
static struct rl_type re_devs[] = {
- { DLINK_VENDORID, DLINK_DEVICEID_528T, RL_HWREV_8169S,
+ { DLINK_VENDORID, DLINK_DEVICEID_528T, -1, RL_HWREV_8169S,
"D-Link DGE-528(T) Gigabit Ethernet Adapter" },
- { RT_VENDORID, RT_DEVICEID_8139, RL_HWREV_8139CPLUS,
+ { RT_VENDORID, RT_DEVICEID_8139, -1, RL_HWREV_8139CPLUS,
"RealTek 8139C+ 10/100BaseTX" },
- { RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8169,
+ { RT_VENDORID, RT_DEVICEID_8169, -1, RL_HWREV_8169,
"RealTek 8169 Gigabit Ethernet" },
- { RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8169S,
+ { RT_VENDORID, RT_DEVICEID_8169, -1, RL_HWREV_8169S,
"RealTek 8169S Single-chip Gigabit Ethernet" },
- { RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8169SB,
+ { RT_VENDORID, RT_DEVICEID_8169, -1, RL_HWREV_8169SB,
"RealTek 8169SB Single-chip Gigabit Ethernet" },
- { RT_VENDORID, RT_DEVICEID_8169, RL_HWREV_8110S,
+ { RT_VENDORID, RT_DEVICEID_8169, -1, RL_HWREV_8110S,
"RealTek 8110S Single-chip Gigabit Ethernet" },
- { COREGA_VENDORID, COREGA_DEVICEID_CGLAPCIGT, RL_HWREV_8169S,
+ { COREGA_VENDORID, COREGA_DEVICEID_CGLAPCIGT, -1, RL_HWREV_8169S,
"Corega CG-LAPCIGT (RTL8169S) Gigabit Ethernet" },
- { 0, 0, 0, NULL }
+ { VENDORID_LINKSYS, DEVICEID_LINKSYS_EG1032, 0x10, RL_HWREV_8169S,
+ "Linksys EG1032v3 Gigabit Ethernet" },
+ { 0, 0, 0, 0, NULL }
};
static struct rl_hwrev re_hwrevs[] = {
@@ -821,7 +823,9 @@
while (t->rl_name != NULL) {
if ((pci_get_vendor(dev) == t->rl_vid) &&
- (pci_get_device(dev) == t->rl_did)) {
+ (pci_get_device(dev) == t->rl_did) &&
+ ((t->rl_rid == -1) ||
+ (pci_get_revid(dev) == t->rl_rid))) {
/*
* Temporarily map the I/O space
More information about the freebsd-current
mailing list