aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSepherosa Ziehau <sephe@FreeBSD.org>2017-01-16 03:03:47 +0000
committerSepherosa Ziehau <sephe@FreeBSD.org>2017-01-16 03:03:47 +0000
commit1536a1b8430ca912a9bcaa752d83418fef169006 (patch)
treef7e0003736040cad810b87cd6af7140733d616b3
parent6bd75de90e2f31705e41a859d5ee0cce81eb5cff (diff)
downloadsrc-1536a1b8430ca912a9bcaa752d83418fef169006.tar.gz
src-1536a1b8430ca912a9bcaa752d83418fef169006.zip
alc: Add Killer E2500 support
Reviewed by: jhb, yongari MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D9058
Notes
Notes: svn path=/head/; revision=312250
-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 9a2c9f46999b..6398f79ae1d1 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 a943a40c4e47..ca7ae9d17b54 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -123,6 +123,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}
};
@@ -1083,6 +1085,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:
@@ -1402,6 +1405,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:
@@ -1480,7 +1484,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 ae63084a7622..29d877da9fb4 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 3ea030c29d80..39a1de3a3767 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -281,13 +281,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 },
/*