diff options
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ahb.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ani.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug_sta.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/pci.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 14 |
8 files changed, 18 insertions, 29 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ahb.c b/drivers/net/wireless/ath/ath9k/ahb.c index a0398fe3eb28..be3eb2a8d602 100644 --- a/drivers/net/wireless/ath/ath9k/ahb.c +++ b/drivers/net/wireless/ath/ath9k/ahb.c | |||
@@ -86,7 +86,6 @@ static int ath_ahb_probe(struct platform_device *pdev) | |||
86 | int irq; | 86 | int irq; |
87 | int ret = 0; | 87 | int ret = 0; |
88 | struct ath_hw *ah; | 88 | struct ath_hw *ah; |
89 | struct ath_common *common; | ||
90 | char hw_name[64]; | 89 | char hw_name[64]; |
91 | 90 | ||
92 | if (!dev_get_platdata(&pdev->dev)) { | 91 | if (!dev_get_platdata(&pdev->dev)) { |
@@ -146,9 +145,6 @@ static int ath_ahb_probe(struct platform_device *pdev) | |||
146 | wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", | 145 | wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", |
147 | hw_name, (unsigned long)mem, irq); | 146 | hw_name, (unsigned long)mem, irq); |
148 | 147 | ||
149 | common = ath9k_hw_common(sc->sc_ah); | ||
150 | /* Will be cleared in ath9k_start() */ | ||
151 | set_bit(ATH_OP_INVALID, &common->op_flags); | ||
152 | return 0; | 148 | return 0; |
153 | 149 | ||
154 | err_irq: | 150 | err_irq: |
diff --git a/drivers/net/wireless/ath/ath9k/ani.c b/drivers/net/wireless/ath/ath9k/ani.c index 6d47783f2e5b..ba502a2d199b 100644 --- a/drivers/net/wireless/ath/ath9k/ani.c +++ b/drivers/net/wireless/ath/ath9k/ani.c | |||
@@ -155,6 +155,9 @@ static void ath9k_hw_set_ofdm_nil(struct ath_hw *ah, u8 immunityLevel, | |||
155 | ATH9K_ANI_RSSI_THR_LOW, | 155 | ATH9K_ANI_RSSI_THR_LOW, |
156 | ATH9K_ANI_RSSI_THR_HIGH); | 156 | ATH9K_ANI_RSSI_THR_HIGH); |
157 | 157 | ||
158 | if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_OFDM_DEF_LEVEL) | ||
159 | immunityLevel = ATH9K_ANI_OFDM_DEF_LEVEL; | ||
160 | |||
158 | if (!scan) | 161 | if (!scan) |
159 | aniState->ofdmNoiseImmunityLevel = immunityLevel; | 162 | aniState->ofdmNoiseImmunityLevel = immunityLevel; |
160 | 163 | ||
@@ -235,6 +238,9 @@ static void ath9k_hw_set_cck_nil(struct ath_hw *ah, u_int8_t immunityLevel, | |||
235 | BEACON_RSSI(ah), ATH9K_ANI_RSSI_THR_LOW, | 238 | BEACON_RSSI(ah), ATH9K_ANI_RSSI_THR_LOW, |
236 | ATH9K_ANI_RSSI_THR_HIGH); | 239 | ATH9K_ANI_RSSI_THR_HIGH); |
237 | 240 | ||
241 | if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_CCK_DEF_LEVEL) | ||
242 | immunityLevel = ATH9K_ANI_CCK_DEF_LEVEL; | ||
243 | |||
238 | if (ah->opmode == NL80211_IFTYPE_STATION && | 244 | if (ah->opmode == NL80211_IFTYPE_STATION && |
239 | BEACON_RSSI(ah) <= ATH9K_ANI_RSSI_THR_LOW && | 245 | BEACON_RSSI(ah) <= ATH9K_ANI_RSSI_THR_LOW && |
240 | immunityLevel > ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI) | 246 | immunityLevel > ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI) |
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index 44d74495c4de..3ba03dde4215 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -251,7 +251,6 @@ struct ath_atx_tid { | |||
251 | 251 | ||
252 | s8 bar_index; | 252 | s8 bar_index; |
253 | bool sched; | 253 | bool sched; |
254 | bool paused; | ||
255 | bool active; | 254 | bool active; |
256 | }; | 255 | }; |
257 | 256 | ||
diff --git a/drivers/net/wireless/ath/ath9k/debug_sta.c b/drivers/net/wireless/ath/ath9k/debug_sta.c index d76e6e0120d2..ffca918ff16a 100644 --- a/drivers/net/wireless/ath/ath9k/debug_sta.c +++ b/drivers/net/wireless/ath/ath9k/debug_sta.c | |||
@@ -72,7 +72,7 @@ static ssize_t read_file_node_aggr(struct file *file, char __user *user_buf, | |||
72 | ath_txq_lock(sc, txq); | 72 | ath_txq_lock(sc, txq); |
73 | if (tid->active) { | 73 | if (tid->active) { |
74 | len += scnprintf(buf + len, size - len, | 74 | len += scnprintf(buf + len, size - len, |
75 | "%3d%11d%10d%10d%10d%10d%9d%6d%8d\n", | 75 | "%3d%11d%10d%10d%10d%10d%9d%6d\n", |
76 | tid->tidno, | 76 | tid->tidno, |
77 | tid->seq_start, | 77 | tid->seq_start, |
78 | tid->seq_next, | 78 | tid->seq_next, |
@@ -80,8 +80,7 @@ static ssize_t read_file_node_aggr(struct file *file, char __user *user_buf, | |||
80 | tid->baw_head, | 80 | tid->baw_head, |
81 | tid->baw_tail, | 81 | tid->baw_tail, |
82 | tid->bar_index, | 82 | tid->bar_index, |
83 | tid->sched, | 83 | tid->sched); |
84 | tid->paused); | ||
85 | } | 84 | } |
86 | ath_txq_unlock(sc, txq); | 85 | ath_txq_unlock(sc, txq); |
87 | } | 86 | } |
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index cbbb02a6b13b..36ae6490e554 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c | |||
@@ -783,6 +783,9 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, | |||
783 | common = ath9k_hw_common(ah); | 783 | common = ath9k_hw_common(ah); |
784 | ath9k_set_hw_capab(sc, hw); | 784 | ath9k_set_hw_capab(sc, hw); |
785 | 785 | ||
786 | /* Will be cleared in ath9k_start() */ | ||
787 | set_bit(ATH_OP_INVALID, &common->op_flags); | ||
788 | |||
786 | /* Initialize regulatory */ | 789 | /* Initialize regulatory */ |
787 | error = ath_regd_init(&common->regulatory, sc->hw->wiphy, | 790 | error = ath_regd_init(&common->regulatory, sc->hw->wiphy, |
788 | ath9k_reg_notifier); | 791 | ath9k_reg_notifier); |
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c index 25304adece57..914dbc6b1720 100644 --- a/drivers/net/wireless/ath/ath9k/pci.c +++ b/drivers/net/wireless/ath/ath9k/pci.c | |||
@@ -784,7 +784,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
784 | { | 784 | { |
785 | struct ath_softc *sc; | 785 | struct ath_softc *sc; |
786 | struct ieee80211_hw *hw; | 786 | struct ieee80211_hw *hw; |
787 | struct ath_common *common; | ||
788 | u8 csz; | 787 | u8 csz; |
789 | u32 val; | 788 | u32 val; |
790 | int ret = 0; | 789 | int ret = 0; |
@@ -877,10 +876,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
877 | wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", | 876 | wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", |
878 | hw_name, (unsigned long)sc->mem, pdev->irq); | 877 | hw_name, (unsigned long)sc->mem, pdev->irq); |
879 | 878 | ||
880 | /* Will be cleared in ath9k_start() */ | ||
881 | common = ath9k_hw_common(sc->sc_ah); | ||
882 | set_bit(ATH_OP_INVALID, &common->op_flags); | ||
883 | |||
884 | return 0; | 879 | return 0; |
885 | 880 | ||
886 | err_init: | 881 | err_init: |
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 6c9accdb52e4..19df969ec909 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -975,6 +975,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
975 | u64 tsf = 0; | 975 | u64 tsf = 0; |
976 | unsigned long flags; | 976 | unsigned long flags; |
977 | dma_addr_t new_buf_addr; | 977 | dma_addr_t new_buf_addr; |
978 | unsigned int budget = 512; | ||
978 | 979 | ||
979 | if (edma) | 980 | if (edma) |
980 | dma_type = DMA_BIDIRECTIONAL; | 981 | dma_type = DMA_BIDIRECTIONAL; |
@@ -1113,15 +1114,17 @@ requeue_drop_frag: | |||
1113 | } | 1114 | } |
1114 | requeue: | 1115 | requeue: |
1115 | list_add_tail(&bf->list, &sc->rx.rxbuf); | 1116 | list_add_tail(&bf->list, &sc->rx.rxbuf); |
1116 | if (flush) | ||
1117 | continue; | ||
1118 | 1117 | ||
1119 | if (edma) { | 1118 | if (edma) { |
1120 | ath_rx_edma_buf_link(sc, qtype); | 1119 | ath_rx_edma_buf_link(sc, qtype); |
1121 | } else { | 1120 | } else { |
1122 | ath_rx_buf_relink(sc, bf); | 1121 | ath_rx_buf_relink(sc, bf); |
1123 | ath9k_hw_rxena(ah); | 1122 | if (!flush) |
1123 | ath9k_hw_rxena(ah); | ||
1124 | } | 1124 | } |
1125 | |||
1126 | if (!budget--) | ||
1127 | break; | ||
1125 | } while (1); | 1128 | } while (1); |
1126 | 1129 | ||
1127 | if (!(ah->imask & ATH9K_INT_RXEOL)) { | 1130 | if (!(ah->imask & ATH9K_INT_RXEOL)) { |
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 87cbec47fb48..66acb2cbd9df 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -107,9 +107,6 @@ static void ath_tx_queue_tid(struct ath_txq *txq, struct ath_atx_tid *tid) | |||
107 | { | 107 | { |
108 | struct ath_atx_ac *ac = tid->ac; | 108 | struct ath_atx_ac *ac = tid->ac; |
109 | 109 | ||
110 | if (tid->paused) | ||
111 | return; | ||
112 | |||
113 | if (tid->sched) | 110 | if (tid->sched) |
114 | return; | 111 | return; |
115 | 112 | ||
@@ -1407,7 +1404,6 @@ int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta, | |||
1407 | ath_tx_tid_change_state(sc, txtid); | 1404 | ath_tx_tid_change_state(sc, txtid); |
1408 | 1405 | ||
1409 | txtid->active = true; | 1406 | txtid->active = true; |
1410 | txtid->paused = true; | ||
1411 | *ssn = txtid->seq_start = txtid->seq_next; | 1407 | *ssn = txtid->seq_start = txtid->seq_next; |
1412 | txtid->bar_index = -1; | 1408 | txtid->bar_index = -1; |
1413 | 1409 | ||
@@ -1427,7 +1423,6 @@ void ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid) | |||
1427 | 1423 | ||
1428 | ath_txq_lock(sc, txq); | 1424 | ath_txq_lock(sc, txq); |
1429 | txtid->active = false; | 1425 | txtid->active = false; |
1430 | txtid->paused = false; | ||
1431 | ath_tx_flush_tid(sc, txtid); | 1426 | ath_tx_flush_tid(sc, txtid); |
1432 | ath_tx_tid_change_state(sc, txtid); | 1427 | ath_tx_tid_change_state(sc, txtid); |
1433 | ath_txq_unlock_complete(sc, txq); | 1428 | ath_txq_unlock_complete(sc, txq); |
@@ -1487,7 +1482,7 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an) | |||
1487 | ath_txq_lock(sc, txq); | 1482 | ath_txq_lock(sc, txq); |
1488 | ac->clear_ps_filter = true; | 1483 | ac->clear_ps_filter = true; |
1489 | 1484 | ||
1490 | if (!tid->paused && ath_tid_has_buffered(tid)) { | 1485 | if (ath_tid_has_buffered(tid)) { |
1491 | ath_tx_queue_tid(txq, tid); | 1486 | ath_tx_queue_tid(txq, tid); |
1492 | ath_txq_schedule(sc, txq); | 1487 | ath_txq_schedule(sc, txq); |
1493 | } | 1488 | } |
@@ -1510,7 +1505,6 @@ void ath_tx_aggr_resume(struct ath_softc *sc, struct ieee80211_sta *sta, | |||
1510 | ath_txq_lock(sc, txq); | 1505 | ath_txq_lock(sc, txq); |
1511 | 1506 | ||
1512 | tid->baw_size = IEEE80211_MIN_AMPDU_BUF << sta->ht_cap.ampdu_factor; | 1507 | tid->baw_size = IEEE80211_MIN_AMPDU_BUF << sta->ht_cap.ampdu_factor; |
1513 | tid->paused = false; | ||
1514 | 1508 | ||
1515 | if (ath_tid_has_buffered(tid)) { | 1509 | if (ath_tid_has_buffered(tid)) { |
1516 | ath_tx_queue_tid(txq, tid); | 1510 | ath_tx_queue_tid(txq, tid); |
@@ -1544,8 +1538,6 @@ void ath9k_release_buffered_frames(struct ieee80211_hw *hw, | |||
1544 | continue; | 1538 | continue; |
1545 | 1539 | ||
1546 | tid = ATH_AN_2_TID(an, i); | 1540 | tid = ATH_AN_2_TID(an, i); |
1547 | if (tid->paused) | ||
1548 | continue; | ||
1549 | 1541 | ||
1550 | ath_txq_lock(sc, tid->ac->txq); | 1542 | ath_txq_lock(sc, tid->ac->txq); |
1551 | while (nframes > 0) { | 1543 | while (nframes > 0) { |
@@ -1844,9 +1836,6 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq) | |||
1844 | list_del(&tid->list); | 1836 | list_del(&tid->list); |
1845 | tid->sched = false; | 1837 | tid->sched = false; |
1846 | 1838 | ||
1847 | if (tid->paused) | ||
1848 | continue; | ||
1849 | |||
1850 | if (ath_tx_sched_aggr(sc, txq, tid, &stop)) | 1839 | if (ath_tx_sched_aggr(sc, txq, tid, &stop)) |
1851 | sent = true; | 1840 | sent = true; |
1852 | 1841 | ||
@@ -2698,7 +2687,6 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an) | |||
2698 | tid->baw_size = WME_MAX_BA; | 2687 | tid->baw_size = WME_MAX_BA; |
2699 | tid->baw_head = tid->baw_tail = 0; | 2688 | tid->baw_head = tid->baw_tail = 0; |
2700 | tid->sched = false; | 2689 | tid->sched = false; |
2701 | tid->paused = false; | ||
2702 | tid->active = false; | 2690 | tid->active = false; |
2703 | __skb_queue_head_init(&tid->buf_q); | 2691 | __skb_queue_head_init(&tid->buf_q); |
2704 | __skb_queue_head_init(&tid->retry_q); | 2692 | __skb_queue_head_init(&tid->retry_q); |