aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/pci.c
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2010-12-06 07:27:42 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-07 16:34:53 -0500
commit8060e169e02fe855f5533b5ef6af1f23ae2db0c4 (patch)
treed5a62855ccecce8743cb4fb1b95c3846d20b9571 /drivers/net/wireless/ath/ath9k/pci.c
parent7f1c7a6ac57ff0482219aa3f62eb9d0f8fe65867 (diff)
ath9k: Enable extended synch for AR9485 to fix L0s recovery issue
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/pci.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index 71339dab0860..38d2221241b8 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -103,11 +103,23 @@ static void ath_pci_bt_coex_prep(struct ath_common *common)
103 pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm); 103 pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm);
104} 104}
105 105
106static void ath_pci_extn_synch_enable(struct ath_common *common)
107{
108 struct ath_softc *sc = (struct ath_softc *) common->priv;
109 struct pci_dev *pdev = to_pci_dev(sc->dev);
110 u8 lnkctl;
111
112 pci_read_config_byte(pdev, sc->sc_ah->caps.pcie_lcr_offset, &lnkctl);
113 lnkctl |= PCI_EXP_LNKCTL_ES;
114 pci_write_config_byte(pdev, sc->sc_ah->caps.pcie_lcr_offset, lnkctl);
115}
116
106static const struct ath_bus_ops ath_pci_bus_ops = { 117static const struct ath_bus_ops ath_pci_bus_ops = {
107 .ath_bus_type = ATH_PCI, 118 .ath_bus_type = ATH_PCI,
108 .read_cachesize = ath_pci_read_cachesize, 119 .read_cachesize = ath_pci_read_cachesize,
109 .eeprom_read = ath_pci_eeprom_read, 120 .eeprom_read = ath_pci_eeprom_read,
110 .bt_coex_prep = ath_pci_bt_coex_prep, 121 .bt_coex_prep = ath_pci_bt_coex_prep,
122 .extn_synch_en = ath_pci_extn_synch_enable,
111}; 123};
112 124
113static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) 125static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)