svn commit: r330140 - stable/11/sys/dev/iwm
Eitan Adler
eadler at FreeBSD.org
Thu Mar 1 03:05:01 UTC 2018
Author: eadler
Date: Thu Mar 1 03:05:00 2018
New Revision: 330140
URL: https://svnweb.freebsd.org/changeset/base/330140
Log:
MFC r314073:
[iwm] Remove OpenBSD-specific comment. Beautify pci cfg space
accesses.
Modified:
stable/11/sys/dev/iwm/if_iwm.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/iwm/if_iwm.c
==============================================================================
--- stable/11/sys/dev/iwm/if_iwm.c Thu Mar 1 02:31:28 2018 (r330139)
+++ stable/11/sys/dev/iwm/if_iwm.c Thu Mar 1 03:05:00 2018 (r330140)
@@ -3091,11 +3091,6 @@ iwm_mvm_rx_tx_cmd(struct iwm_softc *sc,
if (--ring->queued < IWM_TX_RING_LOMARK) {
sc->qfullmsk &= ~(1 << ring->qid);
if (sc->qfullmsk == 0) {
- /*
- * Well, we're in interrupt context, but then again
- * I guess net80211 does all sorts of stunts in
- * interrupt context, so maybe this is no biggie.
- */
iwm_start(sc);
}
}
@@ -5598,6 +5593,9 @@ iwm_dev_check(device_t dev)
}
}
+/* PCI registers */
+#define PCI_CFG_RETRY_TIMEOUT 0x041
+
static int
iwm_pci_attach(device_t dev)
{
@@ -5607,9 +5605,9 @@ iwm_pci_attach(device_t dev)
sc = device_get_softc(dev);
- /* Clear device-specific "PCI retry timeout" register (41h). */
- reg = pci_read_config(dev, 0x40, sizeof(reg));
- pci_write_config(dev, 0x40, reg & ~0xff00, sizeof(reg));
+ /* We disable the RETRY_TIMEOUT register (0x41) to keep
+ * PCI Tx retries from interfering with C3 CPU state */
+ pci_write_config(dev, PCI_CFG_RETRY_TIMEOUT, 0x00, 1);
/* Enable bus-mastering and hardware bug workaround. */
pci_enable_busmaster(dev);
@@ -6071,11 +6069,12 @@ iwm_resume(device_t dev)
{
struct iwm_softc *sc = device_get_softc(dev);
int do_reinit = 0;
- uint16_t reg;
- /* Clear device-specific "PCI retry timeout" register (41h). */
- reg = pci_read_config(dev, 0x40, sizeof(reg));
- pci_write_config(dev, 0x40, reg & ~0xff00, sizeof(reg));
+ /*
+ * We disable the RETRY_TIMEOUT register (0x41) to keep
+ * PCI Tx retries from interfering with C3 CPU state.
+ */
+ pci_write_config(dev, PCI_CFG_RETRY_TIMEOUT, 0x00, 1);
iwm_init_task(device_get_softc(dev));
IWM_LOCK(sc);
More information about the svn-src-stable-11
mailing list