From 0fa97296681739ac2f4988485dd22656eda8c18f Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Tue, 29 Nov 2011 15:11:34 -0600 Subject: [PATCH] Add support for newer Realtek RTL8105E ethernet card revision * backport from recent FreeBSD rt driver * tested working on my HP Pavillion g7 * aka scalpel vs chainsaw --- .../kernel/drivers/network/rtl81xx/dev/mii/rgephy.c | 1 + src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c | 8 ++++++++ src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h | 2 ++ src/libs/compat/freebsd_network/compat/dev/mii/miidevs | 1 + 4 files changed, 12 insertions(+) diff --git a/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/rgephy.c b/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/rgephy.c index 52d07d5ac4..fa4a0bbbbd 100644 --- a/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/rgephy.c +++ b/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/rgephy.c @@ -96,6 +96,7 @@ static void rgephy_load_dspcode(struct mii_softc *); static const struct mii_phydesc rgephys[] = { MII_PHY_DESC(xxREALTEK, RTL8169S), + MII_PHY_DESC(xxREALTEK, RTL8201E), MII_PHY_END }; diff --git a/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c b/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c index fe6d26d2b8..38b9b2d423 100644 --- a/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c +++ b/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c @@ -212,6 +212,8 @@ static struct rl_hwrev re_hwrevs[] = { { RL_HWREV_8102EL, RL_8169, "8102EL"}, { RL_HWREV_8102EL_SPIN1, RL_8169, "8102EL"}, { RL_HWREV_8103E, RL_8169, "8103E"}, + { RL_HWREV_8105E, RL_8169, "8105E"}, + { RL_HWREV_8105E_SPIN1, RL_8169, "8105E"}, { RL_HWREV_8168_SPIN2, RL_8169, "8168"}, { RL_HWREV_8168_SPIN3, RL_8169, "8168"}, { RL_HWREV_8168C, RL_8169, "8168C/8111C"}, @@ -1280,6 +1282,12 @@ re_attach(device_t dev) RL_FLAG_FASTETHER | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD | RL_FLAG_MACSLEEP; break; + case RL_HWREV_8105E: + case RL_HWREV_8105E_SPIN1: + sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PHYWAKE_PM | + RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | + RL_FLAG_FASTETHER | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD; + break; case RL_HWREV_8168_SPIN1: case RL_HWREV_8168_SPIN2: sc->rl_flags |= RL_FLAG_WOLRXENB; diff --git a/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h b/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h index 33e8f3e8e5..83daf773aa 100644 --- a/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h +++ b/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h @@ -169,6 +169,8 @@ #define RL_HWREV_8101E 0x34000000 #define RL_HWREV_8102E 0x34800000 #define RL_HWREV_8103E 0x34C00000 +#define RL_HWREV_8105E 0x40800000 +#define RL_HWREV_8105E_SPIN1 0x40C00000 #define RL_HWREV_8168_SPIN2 0x38000000 #define RL_HWREV_8168_SPIN3 0x38400000 #define RL_HWREV_8168C 0x3C000000 diff --git a/src/libs/compat/freebsd_network/compat/dev/mii/miidevs b/src/libs/compat/freebsd_network/compat/dev/mii/miidevs index ecaed6527c..370d07e641 100644 --- a/src/libs/compat/freebsd_network/compat/dev/mii/miidevs +++ b/src/libs/compat/freebsd_network/compat/dev/mii/miidevs @@ -214,6 +214,7 @@ model QUALSEMI QS6612 0x0000 QS6612 10/100 media interface /* RealTek Semiconductor PHYs */ model REALTEK RTL8201L 0x0020 RTL8201L 10/100 media interface model xxREALTEK RTL8305SC 0x0005 RTL8305SC 10/100 802.1q switch +model xxREALTEK RTL8201E 0x0008 RTL8201E 10/100 media interface model xxREALTEK RTL8169S 0x0011 RTL8169S/8110S/8211B media interface /* Seeq PHYs */