Module Name: src Committed By: knakahara Date: Tue Jul 21 03:15:50 UTC 2015
Modified Files: src/sys/dev/pci: if_bge.c if_wm.c Log Message: mofity for if_wm and if_bge to use pci_intr_alloc() To generate a diff of this commit: cvs rdiff -u -r1.292 -r1.293 src/sys/dev/pci/if_bge.c cvs rdiff -u -r1.339 -r1.340 src/sys/dev/pci/if_wm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_bge.c diff -u src/sys/dev/pci/if_bge.c:1.292 src/sys/dev/pci/if_bge.c:1.293 --- src/sys/dev/pci/if_bge.c:1.292 Sun Jun 14 08:46:33 2015 +++ src/sys/dev/pci/if_bge.c Tue Jul 21 03:15:50 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: if_bge.c,v 1.292 2015/06/14 08:46:33 martin Exp $ */ +/* $NetBSD: if_bge.c,v 1.293 2015/07/21 03:15:50 knakahara Exp $ */ /* * Copyright (c) 2001 Wind River Systems @@ -79,7 +79,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.292 2015/06/14 08:46:33 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.293 2015/07/21 03:15:50 knakahara Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -3341,6 +3341,9 @@ bge_attach(device_t parent, device_t sel pci_chipset_tag_t pc; #ifndef __HAVE_PCI_MSI_MSIX pci_intr_handle_t ih; +#else + int counts[PCI_INTR_TYPE_SIZE]; + pci_intr_type_t intr_type, max_type; #endif const char *intrstr = NULL; uint32_t hwcfg, hwcfg2, hwcfg3, hwcfg4, hwcfg5; @@ -3356,9 +3359,6 @@ bge_attach(device_t parent, device_t sel int capmask; int mii_flags; int map_flags; -#ifdef __HAVE_PCI_MSI_MSIX - int rv; -#endif char intrbuf[PCI_INTRSTR_LEN]; bp = bge_lookup(pa); @@ -3727,27 +3727,19 @@ bge_attach(device_t parent, device_t sel } #ifdef __HAVE_PCI_MSI_MSIX - DPRINTFN(5, ("pci_get_capability\n")); + counts[PCI_INTR_TYPE_MSI] = 1; + counts[PCI_INTR_TYPE_INTX] = 1; /* Check MSI capability */ - if (pci_get_capability(pa->pa_pc, pa->pa_tag, PCI_CAP_MSI, - &sc->bge_msicap, NULL) != 0) { - if (bge_can_use_msi(sc) != 0) - sc->bge_flags |= BGEF_MSI; - } - rv = -1; - if (((sc->bge_flags & BGEF_MSI) != 0) && (pci_msi_count(pa) > 0)) { - DPRINTFN(5, ("pci_msi_alloc\n")); - rv = pci_msi_alloc_exact(pa, &sc->bge_pihp, 1); - if (rv != 0) - sc->bge_flags &= ~BGEF_MSI; - } - if (rv != 0) { - DPRINTFN(5, ("pci_intx_alloc\n")); - if (pci_intx_alloc(pa, &sc->bge_pihp)) { - aprint_error_dev(self, "can't map interrupt\n"); - return; - } - sc->bge_flags &= ~BGEF_MSI; + if (bge_can_use_msi(sc) != 0) { + max_type = PCI_INTR_TYPE_MSI; + sc->bge_flags |= BGEF_MSI; + } else + max_type = PCI_INTR_TYPE_INTX; + +alloc_retry: + if (pci_intr_alloc(pa, &sc->bge_pihp, counts, max_type) != 0) { + aprint_error_dev(sc->bge_dev, "couldn't alloc interrupt\n"); + return; } #else /* !__HAVE_PCI_MSI_MSIX */ DPRINTFN(5, ("pci_intr_map\n")); @@ -3757,15 +3749,32 @@ bge_attach(device_t parent, device_t sel } #endif -#ifdef __HAVE_PCI_MSI_MSIX DPRINTFN(5, ("pci_intr_string\n")); +#ifdef __HAVE_PCI_MSI_MSIX intrstr = pci_intr_string(pc, sc->bge_pihp[0], intrbuf, sizeof(intrbuf)); DPRINTFN(5, ("pci_intr_establish\n")); sc->bge_intrhand = pci_intr_establish(pc, sc->bge_pihp[0], IPL_NET, bge_intr, sc); + if (sc->bge_intrhand == NULL) { + intr_type = pci_intr_type(sc->bge_pihp[0]); + aprint_error_dev(sc->bge_dev,"unable to establish %s\n", + (intr_type == PCI_INTR_TYPE_MSI) ? "MSI" : "INTx"); + pci_intr_release(pc, sc->bge_pihp, 1); + switch (intr_type) { + case PCI_INTR_TYPE_MSI: + /* The next try is for INTx: Disable MSI */ + max_type = PCI_INTR_TYPE_INTX; + counts[PCI_INTR_TYPE_INTX] = 1; + sc->bge_flags &= ~BGEF_MSI; + goto alloc_retry; + case PCI_INTR_TYPE_INTX: + default: + /* See below */ + break; + } + } #else /* !__HAVE_PCI_MSI_MSIX */ - DPRINTFN(5, ("pci_intr_string\n")); intrstr = pci_intr_string(pc, ih, intrbuf, sizeof(intrbuf)); DPRINTFN(5, ("pci_intr_establish\n")); Index: src/sys/dev/pci/if_wm.c diff -u src/sys/dev/pci/if_wm.c:1.339 src/sys/dev/pci/if_wm.c:1.340 --- src/sys/dev/pci/if_wm.c:1.339 Wed Jul 15 07:40:54 2015 +++ src/sys/dev/pci/if_wm.c Tue Jul 21 03:15:50 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.339 2015/07/15 07:40:54 msaitoh Exp $ */ +/* $NetBSD: if_wm.c,v 1.340 2015/07/21 03:15:50 knakahara Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -81,7 +81,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.339 2015/07/15 07:40:54 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.340 2015/07/21 03:15:50 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -155,27 +155,29 @@ int wm_debug = WM_DEBUG_TX | WM_DEBUG_RX #endif #ifdef __HAVE_PCI_MSI_MSIX -#define WM_MSI_MSIX 1 /* Enable by default */ +#if 0 /* off by default */ +#define WM_MSI_MSIX 1 +#endif #endif /* * This device driver divides interrupt to TX, RX and link state. * Each MSI-X vector indexes are below. */ -#define WM_NINTR 3 -#define WM_TX_INTR_INDEX 0 -#define WM_RX_INTR_INDEX 1 -#define WM_LINK_INTR_INDEX 2 -#define WM_MAX_NINTR WM_NINTR +#define WM_MSIX_NINTR 3 +#define WM_MSIX_TXINTR_IDX 0 +#define WM_MSIX_RXINTR_IDX 1 +#define WM_MSIX_LINKINTR_IDX 2 +#define WM_MAX_NINTR WM_MSIX_NINTR /* * This device driver set affinity to each interrupts like below (round-robin). * If the number CPUs is less than the number of interrupts, this driver usase * the same CPU for multiple interrupts. */ -#define WM_TX_INTR_CPUID 0 -#define WM_RX_INTR_CPUID 1 -#define WM_LINK_INTR_CPUID 2 +#define WM_MSIX_TXINTR_CPUID 0 +#define WM_MSIX_RXINTR_CPUID 1 +#define WM_MSIX_LINKINTR_CPUID 2 /* * Transmit descriptor list size. Due to errata, we can only have @@ -778,6 +780,20 @@ static void wm_reset_init_script_82575(s static void wm_reset_mdicnfg_82580(struct wm_softc *); static void wm_pll_workaround_i210(struct wm_softc *); +#ifdef WM_MSI_MSIX +struct _msix_matrix { + const char *intrname; + int(*func)(void *); + int intridx; + int cpuid; +} msix_matrix[WM_MSIX_NINTR] = { + { "TX", wm_txintr_msix, WM_MSIX_TXINTR_IDX, WM_MSIX_TXINTR_CPUID }, + { "RX", wm_rxintr_msix, WM_MSIX_RXINTR_IDX, WM_MSIX_TXINTR_CPUID }, + { "LINK", wm_linkintr_msix, WM_MSIX_LINKINTR_IDX, + WM_MSIX_LINKINTR_CPUID }, +}; +#endif + CFATTACH_DECL3_NEW(wm, sizeof(struct wm_softc), wm_match, wm_attach, wm_detach, NULL, NULL, NULL, DVF_DETACH_SHUTDOWN); @@ -1406,7 +1422,8 @@ wm_attach(device_t parent, device_t self #ifndef WM_MSI_MSIX pci_intr_handle_t ih; #else - bool intr_established = false; + int counts[PCI_INTR_TYPE_SIZE]; + pci_intr_type_t max_type; #endif const char *intrstr = NULL; const char *eetype, *xname; @@ -1597,145 +1614,71 @@ wm_attach(device_t parent, device_t self aprint_normal_dev(sc->sc_dev, "interrupting at %s\n", intrstr); sc->sc_nintrs = 1; #else /* WM_MSI_MSIX */ - if (pci_msix_alloc_exact(pa, &sc->sc_intrs, WM_NINTR) == 0) { - /* 1st, try to use MSI-X */ + /* Allocation settings */ + max_type = PCI_INTR_TYPE_MSIX; + counts[PCI_INTR_TYPE_MSIX] = WM_MAX_NINTR; + counts[PCI_INTR_TYPE_MSI] = 1; + counts[PCI_INTR_TYPE_INTX] = 1; + +alloc_retry: + if (pci_intr_alloc(pa, &sc->sc_intrs, counts, max_type) != 0) { + aprint_error_dev(sc->sc_dev, "failed to allocate interrupt\n"); + return; + } + + if (pci_intr_type(sc->sc_intrs[0]) == PCI_INTR_TYPE_MSIX) { void *vih; kcpuset_t *affinity; kcpuset_create(&affinity, false); - /* - * for TX - */ - intrstr = pci_intr_string(pc, sc->sc_intrs[WM_TX_INTR_INDEX], - intrbuf, sizeof(intrbuf)); + for (i = 0; i < WM_MSIX_NINTR; i++) { + intrstr = pci_intr_string(pc, + sc->sc_intrs[msix_matrix[i].intridx], intrbuf, + sizeof(intrbuf)); #ifdef WM_MPSAFE - pci_intr_setattr(pc, &sc->sc_intrs[WM_TX_INTR_INDEX], - PCI_INTR_MPSAFE, true); -#endif - vih = pci_intr_establish(pc, sc->sc_intrs[WM_TX_INTR_INDEX], - IPL_NET, wm_txintr_msix, sc); - if (vih == NULL) { - aprint_error_dev(sc->sc_dev, - "unable to establish MSI-X(for TX)%s%s\n", - intrstr ? " at " : "", intrstr ? intrstr : ""); - pci_intr_release(sc->sc_pc, sc->sc_intrs, - WM_NINTR); - goto msi; - } - kcpuset_zero(affinity); - /* Round-robin affinity */ - kcpuset_set(affinity, WM_TX_INTR_CPUID % ncpu); - error = pci_intr_distribute(vih, affinity, NULL); - if (error == 0) { - aprint_normal_dev(sc->sc_dev, - "for TX interrupting at %s affinity to %u\n", - intrstr, WM_TX_INTR_CPUID % ncpu); - } else { - aprint_normal_dev(sc->sc_dev, - "for TX interrupting at %s\n", - intrstr); - } - sc->sc_ihs[WM_TX_INTR_INDEX] = vih; - - /* - * for RX - */ - intrstr = pci_intr_string(pc, sc->sc_intrs[WM_RX_INTR_INDEX], - intrbuf, sizeof(intrbuf)); -#ifdef WM_MPSAFE - pci_intr_setattr(pc, &sc->sc_intrs[WM_RX_INTR_INDEX], - PCI_INTR_MPSAFE, true); -#endif - vih = pci_intr_establish(pc, sc->sc_intrs[WM_RX_INTR_INDEX], - IPL_NET, wm_rxintr_msix, sc); - if (vih == NULL) { - aprint_error_dev(sc->sc_dev, - "unable to establish MSI-X(for RX)%s%s\n", - intrstr ? " at " : "", intrstr ? intrstr : ""); - pci_intr_release(sc->sc_pc, sc->sc_intrs, - WM_NINTR); - goto msi; - } - kcpuset_zero(affinity); - kcpuset_set(affinity, WM_RX_INTR_CPUID % ncpu); - error = pci_intr_distribute(vih, affinity, NULL); - if (error == 0) { - aprint_normal_dev(sc->sc_dev, - "for RX interrupting at %s affinity to %u\n", - intrstr, WM_RX_INTR_CPUID % ncpu); - } else { - aprint_normal_dev(sc->sc_dev, - "for RX interrupting at %s\n", - intrstr); - } - sc->sc_ihs[WM_RX_INTR_INDEX] = vih; - - /* - * for link state changing - */ - intrstr = pci_intr_string(pc, sc->sc_intrs[WM_LINK_INTR_INDEX], - intrbuf, sizeof(intrbuf)); -#ifdef WM_MPSAFE - pci_intr_setattr(pc, &sc->sc_intrs[WM_LINK_INTR_INDEX], - PCI_INTR_MPSAFE, true); -#endif - vih = pci_intr_establish(pc, sc->sc_intrs[WM_LINK_INTR_INDEX], - IPL_NET, wm_linkintr_msix, sc); - if (vih == NULL) { - aprint_error_dev(sc->sc_dev, - "unable to establish MSI-X(for LINK)%s%s\n", - intrstr ? " at " : "", intrstr ? intrstr : ""); - pci_intr_release(sc->sc_pc, sc->sc_intrs, - WM_NINTR); - goto msi; - } - kcpuset_zero(affinity); - kcpuset_set(affinity, WM_LINK_INTR_CPUID % ncpu); - error = pci_intr_distribute(vih, affinity, NULL); - if (error == 0) { - aprint_normal_dev(sc->sc_dev, - "for LINK interrupting at %s affinity to %u\n", - intrstr, WM_LINK_INTR_CPUID % ncpu); - } else { - aprint_normal_dev(sc->sc_dev, - "for LINK interrupting at %s\n", - intrstr); + pci_intr_setattr(pc, + &sc->sc_intrs[msix_matrix[i].intridx], + PCI_INTR_MPSAFE, true); +#endif + vih = pci_intr_establish(pc, + sc->sc_intrs[msix_matrix[i].intridx], IPL_NET, + msix_matrix[i].func, sc); + if (vih == NULL) { + aprint_error_dev(sc->sc_dev, + "unable to establish MSI-X(for %s)%s%s\n", + msix_matrix[i].intrname, + intrstr ? " at " : "", + intrstr ? intrstr : ""); + pci_intr_release(sc->sc_pc, sc->sc_intrs, + WM_MSIX_NINTR); + kcpuset_destroy(affinity); + + /* Setup for MSI: Disable MSI-X */ + max_type = PCI_INTR_TYPE_MSI; + counts[PCI_INTR_TYPE_MSI] = 1; + counts[PCI_INTR_TYPE_INTX] = 1; + goto alloc_retry; + } + kcpuset_zero(affinity); + /* Round-robin affinity */ + kcpuset_set(affinity, msix_matrix[i].cpuid % ncpu); + error = pci_intr_distribute(vih, affinity, NULL); + if (error == 0) { + aprint_normal_dev(sc->sc_dev, + "for TX interrupting at %s affinity to %u\n", + intrstr, msix_matrix[i].cpuid % ncpu); + } else { + aprint_normal_dev(sc->sc_dev, + "for TX interrupting at %s\n", intrstr); + } + sc->sc_ihs[msix_matrix[i].intridx] = vih; } - sc->sc_ihs[WM_LINK_INTR_INDEX] = vih; - sc->sc_nintrs = WM_NINTR; + sc->sc_nintrs = WM_MSIX_NINTR; kcpuset_destroy(affinity); - intr_established = true; - } - -msi: - if ((intr_established == false) - && (pci_msi_alloc_exact(pa, &sc->sc_intrs, 1) == 0)) { - /* 2nd, try to use MSI */ - intrstr = pci_intr_string(pc, sc->sc_intrs[0], intrbuf, - sizeof(intrbuf)); -#ifdef WM_MPSAFE - pci_intr_setattr(pc, &sc->sc_intrs[0], PCI_INTR_MPSAFE, true); -#endif - sc->sc_ihs[0] = pci_intr_establish(pc, sc->sc_intrs[0], - IPL_NET, wm_intr_legacy, sc); - if (sc->sc_ihs[0] == NULL) { - aprint_error_dev(sc->sc_dev, "unable to establish MSI\n"); - pci_intr_release(sc->sc_pc, sc->sc_intrs, - 1); - goto intx; - } - aprint_normal_dev(sc->sc_dev, "MSI at %s\n", intrstr); - - sc->sc_nintrs = 1; - intr_established = true; - } - -intx: - if ((intr_established == false) - && (pci_intx_alloc(pa, &sc->sc_intrs) == 0)) { - /* Last, try to use INTx */ + } else { + /* MSI or INTx */ intrstr = pci_intr_string(pc, sc->sc_intrs[0], intrbuf, sizeof(intrbuf)); #ifdef WM_MPSAFE @@ -1744,20 +1687,26 @@ intx: sc->sc_ihs[0] = pci_intr_establish(pc, sc->sc_intrs[0], IPL_NET, wm_intr_legacy, sc); if (sc->sc_ihs[0] == NULL) { - aprint_error_dev(sc->sc_dev, "unable to establish MSI\n"); + aprint_error_dev(sc->sc_dev,"unable to establish %s\n", + (pci_intr_type(sc->sc_intrs[0]) + == PCI_INTR_TYPE_MSI) ? "MSI" : "INTx"); pci_intr_release(sc->sc_pc, sc->sc_intrs, 1); - goto int_failed; + switch (pci_intr_type(sc->sc_intrs[0])) { + case PCI_INTR_TYPE_MSI: + /* The next try is for INTx: Disable MSI */ + max_type = PCI_INTR_TYPE_INTX; + counts[PCI_INTR_TYPE_INTX] = 1; + goto alloc_retry; + case PCI_INTR_TYPE_INTX: + default: + return; + } } - aprint_normal_dev(sc->sc_dev, "interrupting at %s\n", intrstr); + aprint_normal_dev(sc->sc_dev, "%s at %s\n", + (pci_intr_type(sc->sc_intrs[0]) == PCI_INTR_TYPE_MSI) + ? "MSI" : "interrupting", intrstr); sc->sc_nintrs = 1; - intr_established = true; - } - -int_failed: - if (intr_established == false) { - aprint_error_dev(sc->sc_dev, "failed to allocate interrput\n"); - return; } #endif /* WM_MSI_MSIX */ @@ -4546,13 +4495,13 @@ wm_init_locked(struct ifnet *ifp) CSR_WRITE(sc, WMREG_CTRL_EXT, reg); /* TX */ - CSR_WRITE(sc, WMREG_MSIXBM(WM_TX_INTR_INDEX), + CSR_WRITE(sc, WMREG_MSIXBM(WM_MSIX_TXINTR_IDX), EITR_TX_QUEUE0); /* RX */ - CSR_WRITE(sc, WMREG_MSIXBM(WM_RX_INTR_INDEX), + CSR_WRITE(sc, WMREG_MSIXBM(WM_MSIX_RXINTR_IDX), EITR_RX_QUEUE0); /* Link status */ - CSR_WRITE(sc, WMREG_MSIXBM(WM_LINK_INTR_INDEX), + CSR_WRITE(sc, WMREG_MSIXBM(WM_MSIX_LINKINTR_IDX), EITR_OTHER); } else if (sc->sc_type == WM_T_82574) { /* Interrupt control */ @@ -4561,11 +4510,12 @@ wm_init_locked(struct ifnet *ifp) CSR_WRITE(sc, WMREG_CTRL_EXT, reg); /* TX, RX and Link status */ - ivar = __SHIFTIN((IVAR_VALID_82574 | WM_TX_INTR_INDEX), + ivar = __SHIFTIN((IVAR_VALID_82574|WM_MSIX_TXINTR_IDX), IVAR_TX_MASK_Q_82574(0)); - ivar |= __SHIFTIN((IVAR_VALID_82574 |WM_RX_INTR_INDEX), + ivar |= __SHIFTIN((IVAR_VALID_82574 + | WM_MSIX_RXINTR_IDX), IVAR_RX_MASK_Q_82574(0)); - ivar |=__SHIFTIN((IVAR_VALID_82574|WM_LINK_INTR_INDEX), + ivar |=__SHIFTIN((IVAR_VALID_82574|WM_MSIX_LINKINTR_IDX), IVAR_OTHER_MASK); CSR_WRITE(sc, WMREG_IVAR, ivar | IVAR_INT_ON_ALL_WB); } else { @@ -4584,7 +4534,7 @@ wm_init_locked(struct ifnet *ifp) ivar = CSR_READ(sc, WMREG_IVAR_Q(0)); ivar &= ~IVAR_TX_MASK_Q(0); ivar |= __SHIFTIN( - (WM_TX_INTR_INDEX | IVAR_VALID), + (WM_MSIX_TXINTR_IDX | IVAR_VALID), IVAR_TX_MASK_Q(0)); CSR_WRITE(sc, WMREG_IVAR_Q(0), ivar); @@ -4592,7 +4542,7 @@ wm_init_locked(struct ifnet *ifp) ivar = CSR_READ(sc, WMREG_IVAR_Q(0)); ivar &= ~IVAR_RX_MASK_Q(0); ivar |= __SHIFTIN( - (WM_RX_INTR_INDEX | IVAR_VALID), + (WM_MSIX_RXINTR_IDX | IVAR_VALID), IVAR_RX_MASK_Q(0)); CSR_WRITE(sc, WMREG_IVAR_Q(0), ivar); break; @@ -4601,7 +4551,7 @@ wm_init_locked(struct ifnet *ifp) ivar = CSR_READ(sc, WMREG_IVAR_Q_82576(0)); ivar &= ~IVAR_TX_MASK_Q_82576(0); ivar |= __SHIFTIN( - (WM_TX_INTR_INDEX | IVAR_VALID), + (WM_MSIX_TXINTR_IDX | IVAR_VALID), IVAR_TX_MASK_Q_82576(0)); CSR_WRITE(sc, WMREG_IVAR_Q_82576(0), ivar); @@ -4609,7 +4559,7 @@ wm_init_locked(struct ifnet *ifp) ivar = CSR_READ(sc, WMREG_IVAR_Q_82576(0)); ivar &= ~IVAR_RX_MASK_Q_82576(0); ivar |= __SHIFTIN( - (WM_RX_INTR_INDEX | IVAR_VALID), + (WM_MSIX_RXINTR_IDX | IVAR_VALID), IVAR_RX_MASK_Q_82576(0)); CSR_WRITE(sc, WMREG_IVAR_Q_82576(0), ivar); break; @@ -4618,7 +4568,7 @@ wm_init_locked(struct ifnet *ifp) } /* Link status */ - ivar = __SHIFTIN((WM_LINK_INTR_INDEX | IVAR_VALID), + ivar = __SHIFTIN((WM_MSIX_LINKINTR_IDX | IVAR_VALID), IVAR_MISC_OTHER); CSR_WRITE(sc, WMREG_IVAR_MISC, ivar); } @@ -4642,9 +4592,9 @@ wm_init_locked(struct ifnet *ifp) mask = EITR_RX_QUEUE0 |EITR_TX_QUEUE0 | EITR_OTHER; else - mask = (1 << WM_RX_INTR_INDEX) - | (1 << WM_TX_INTR_INDEX) - | (1 << WM_LINK_INTR_INDEX); + mask = (1 << WM_MSIX_RXINTR_IDX) + | (1 << WM_MSIX_TXINTR_IDX) + | (1 << WM_MSIX_LINKINTR_IDX); CSR_WRITE(sc, WMREG_EIAC, mask); CSR_WRITE(sc, WMREG_EIAM, mask); CSR_WRITE(sc, WMREG_EIMS, mask); @@ -6652,7 +6602,7 @@ wm_txintr_msix(void *arg) else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMC, EITR_TX_QUEUE0); else - CSR_WRITE(sc, WMREG_EIMC, 1 << WM_TX_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMC, 1 << WM_MSIX_TXINTR_IDX); WM_TX_LOCK(sc); @@ -6670,7 +6620,7 @@ out: else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMS, EITR_TX_QUEUE0); else - CSR_WRITE(sc, WMREG_EIMS, 1 << WM_TX_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMS, 1 << WM_MSIX_TXINTR_IDX); if (handled) { /* Try to get more packets going. */ @@ -6698,7 +6648,7 @@ wm_rxintr_msix(void *arg) else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMC, EITR_RX_QUEUE0); else - CSR_WRITE(sc, WMREG_EIMC, 1 << WM_RX_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMC, 1 << WM_MSIX_RXINTR_IDX); WM_RX_LOCK(sc); @@ -6716,7 +6666,7 @@ out: else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMS, EITR_RX_QUEUE0); else - CSR_WRITE(sc, WMREG_EIMS, 1 << WM_RX_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMS, 1 << WM_MSIX_RXINTR_IDX); return 1; } @@ -6739,7 +6689,7 @@ wm_linkintr_msix(void *arg) else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMC, EITR_OTHER); else - CSR_WRITE(sc, WMREG_EIMC, 1 << WM_LINK_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMC, 1 << WM_MSIX_LINKINTR_IDX); WM_TX_LOCK(sc); if (sc->sc_stopping) goto out; @@ -6755,7 +6705,7 @@ out: else if (sc->sc_type == WM_T_82575) CSR_WRITE(sc, WMREG_EIMS, EITR_OTHER); else - CSR_WRITE(sc, WMREG_EIMS, 1 << WM_LINK_INTR_INDEX); + CSR_WRITE(sc, WMREG_EIMS, 1 << WM_MSIX_LINKINTR_IDX); return 1; }