summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsephe <sephe@FreeBSD.org>2017-02-21 03:27:59 +0000
committersephe <sephe@FreeBSD.org>2017-02-21 03:27:59 +0000
commit2c373db546ea8a67318e412fcf159b0c7e645609 (patch)
treebba7d9ddd651d54f985866c0c2ad248e7a2a8435
parentdfb3083beb054369a78ec99974a2a24b62530bc6 (diff)
downloadFreeBSD-src-2c373db546ea8a67318e412fcf159b0c7e645609.zip
FreeBSD-src-2c373db546ea8a67318e412fcf159b0c7e645609.tar.gz
MFC 312250
alc: Add Killer E2500 support Reviewed by: jhb, yongari Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D9058
-rw-r--r--share/man/man4/alc.42
-rw-r--r--sys/dev/alc/if_alc.c7
-rw-r--r--sys/dev/alc/if_alcreg.h1
-rw-r--r--sys/dev/pci/pci.c5
4 files changed, 12 insertions, 3 deletions
diff --git a/share/man/man4/alc.4 b/share/man/man4/alc.4
index 1fff8ba..b1feab5 100644
--- a/share/man/man4/alc.4
+++ b/share/man/man4/alc.4
@@ -124,6 +124,8 @@ Atheros AR8172 PCI Express Fast Ethernet controller
Killer E2200 Gigabit Ethernet controller
.It
Killer E2400 Gigabit Ethernet controller
+.It
+Killer E2500 Gigabit Ethernet controller
.El
.Sh LOADER TUNABLES
Tunables can be set at the
diff --git a/sys/dev/alc/if_alc.c b/sys/dev/alc/if_alc.c
index 76e4614..e789a1d 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -122,6 +122,8 @@ static struct alc_ident alc_ident_table[] = {
"Killer E2200 Gigabit Ethernet" },
{ VENDORID_ATHEROS, DEVICEID_ATHEROS_E2400, 9 * 1024,
"Killer E2400 Gigabit Ethernet" },
+ { VENDORID_ATHEROS, DEVICEID_ATHEROS_E2500, 9 * 1024,
+ "Killer E2500 Gigabit Ethernet" },
{ 0, 0, 0, NULL}
};
@@ -1082,6 +1084,7 @@ alc_phy_down(struct alc_softc *sc)
case DEVICEID_ATHEROS_AR8161:
case DEVICEID_ATHEROS_E2200:
case DEVICEID_ATHEROS_E2400:
+ case DEVICEID_ATHEROS_E2500:
case DEVICEID_ATHEROS_AR8162:
case DEVICEID_ATHEROS_AR8171:
case DEVICEID_ATHEROS_AR8172:
@@ -1401,6 +1404,7 @@ alc_attach(device_t dev)
switch (sc->alc_ident->deviceid) {
case DEVICEID_ATHEROS_E2200:
case DEVICEID_ATHEROS_E2400:
+ case DEVICEID_ATHEROS_E2500:
sc->alc_flags |= ALC_FLAG_E2X00;
/* FALLTHROUGH */
case DEVICEID_ATHEROS_AR8161:
@@ -1479,7 +1483,8 @@ alc_attach(device_t dev)
if (alc_dma_burst[sc->alc_dma_wr_burst] > 1024)
sc->alc_dma_wr_burst = 3;
/*
- * Force maximum payload size to 128 bytes for E2200/E2400.
+ * Force maximum payload size to 128 bytes for
+ * E2200/E2400/E2500.
* Otherwise it triggers DMA write error.
*/
if ((sc->alc_flags & ALC_FLAG_E2X00) != 0)
diff --git a/sys/dev/alc/if_alcreg.h b/sys/dev/alc/if_alcreg.h
index ae63084..29d877d 100644
--- a/sys/dev/alc/if_alcreg.h
+++ b/sys/dev/alc/if_alcreg.h
@@ -50,6 +50,7 @@
#define DEVICEID_ATHEROS_AR8172 0x10A0
#define DEVICEID_ATHEROS_E2200 0xE091
#define DEVICEID_ATHEROS_E2400 0xE0A1
+#define DEVICEID_ATHEROS_E2500 0xE0B1
#define ATHEROS_AR8152_B_V10 0xC0
#define ATHEROS_AR8152_B_V11 0xC1
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 26cf526..d36f4cc 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -269,13 +269,14 @@ static const struct pci_quirk pci_quirks[] = {
{ 0x43851002, PCI_QUIRK_UNMAP_REG, 0x14, 0 },
/*
- * Atheros AR8161/AR8162/E2200/E2400 Ethernet controllers have a
- * bug that MSI interrupt does not assert if PCIM_CMD_INTxDIS bit
+ * Atheros AR8161/AR8162/E2200/E2400/E2500 Ethernet controllers have
+ * a bug that MSI interrupt does not assert if PCIM_CMD_INTxDIS bit
* of the command register is set.
*/
{ 0x10911969, PCI_QUIRK_MSI_INTX_BUG, 0, 0 },
{ 0xE0911969, PCI_QUIRK_MSI_INTX_BUG, 0, 0 },
{ 0xE0A11969, PCI_QUIRK_MSI_INTX_BUG, 0, 0 },
+ { 0xE0B11969, PCI_QUIRK_MSI_INTX_BUG, 0, 0 },
{ 0x10901969, PCI_QUIRK_MSI_INTX_BUG, 0, 0 },
/*
OpenPOWER on IntegriCloud