aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-06-12 00:33:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:39:30 -0400
commit1d2231e2e27a7df6a3dc7827d244b7736b7d164a (patch)
tree5ff4a7a59e0dc790aa2c670a0f410ad862c49740 /drivers/net/wireless
parente8c35a77e3408171852bde4914b650cf5b83e0d1 (diff)
ath9k: remove duplicate WMM AC definitions
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h4
-rw-r--r--drivers/net/wireless/ath/ath9k/beacon.c3
-rw-r--r--drivers/net/wireless/ath/ath9k/debug.c8
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c10
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.h11
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c20
-rw-r--r--drivers/net/wireless/ath/ath9k/virtual.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c46
8 files changed, 26 insertions, 78 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index c5c662957b0d..a0f15670bfd8 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -291,7 +291,7 @@ struct ath_tx_control {
291struct ath_tx { 291struct ath_tx {
292 u16 seq_no; 292 u16 seq_no;
293 u32 txqsetup; 293 u32 txqsetup;
294 int hwq_map[ATH9K_WME_AC_VO+1]; 294 int hwq_map[WME_NUM_AC];
295 spinlock_t txbuflock; 295 spinlock_t txbuflock;
296 struct list_head txbuf; 296 struct list_head txbuf;
297 struct ath_txq txq[ATH9K_NUM_TX_QUEUES]; 297 struct ath_txq txq[ATH9K_NUM_TX_QUEUES];
@@ -680,8 +680,6 @@ void ath9k_set_wiphy_idle(struct ath_wiphy *aphy, bool idle);
680void ath_mac80211_stop_queue(struct ath_softc *sc, u16 skb_queue); 680void ath_mac80211_stop_queue(struct ath_softc *sc, u16 skb_queue);
681void ath_mac80211_start_queue(struct ath_softc *sc, u16 skb_queue); 681void ath_mac80211_start_queue(struct ath_softc *sc, u16 skb_queue);
682 682
683int ath_tx_get_qnum(struct ath_softc *sc, int qtype, int haltype);
684
685void ath_start_rfkill_poll(struct ath_softc *sc); 683void ath_start_rfkill_poll(struct ath_softc *sc);
686extern void ath9k_rfkill_poll_state(struct ieee80211_hw *hw); 684extern void ath9k_rfkill_poll_state(struct ieee80211_hw *hw);
687 685
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c
index f43d85a302c4..4d4b22d52dfd 100644
--- a/drivers/net/wireless/ath/ath9k/beacon.c
+++ b/drivers/net/wireless/ath/ath9k/beacon.c
@@ -38,8 +38,7 @@ int ath_beaconq_config(struct ath_softc *sc)
38 qi.tqi_cwmax = 0; 38 qi.tqi_cwmax = 0;
39 } else { 39 } else {
40 /* Adhoc mode; important thing is to use 2x cwmin. */ 40 /* Adhoc mode; important thing is to use 2x cwmin. */
41 qnum = ath_tx_get_qnum(sc, ATH9K_TX_QUEUE_DATA, 41 qnum = sc->tx.hwq_map[WME_AC_BE];
42 ATH9K_WME_AC_BE);
43 ath9k_hw_get_txq_props(ah, qnum, &qi_be); 42 ath9k_hw_get_txq_props(ah, qnum, &qi_be);
44 qi.tqi_aifs = qi_be.tqi_aifs; 43 qi.tqi_aifs = qi_be.tqi_aifs;
45 qi.tqi_cwmin = 4*qi_be.tqi_cwmin; 44 qi.tqi_cwmin = 4*qi_be.tqi_cwmin;
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index a127bdba5f90..a6cb48d9d2e5 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -630,10 +630,10 @@ static const struct file_operations fops_wiphy = {
630 do { \ 630 do { \
631 len += snprintf(buf + len, size - len, \ 631 len += snprintf(buf + len, size - len, \
632 "%s%13u%11u%10u%10u\n", str, \ 632 "%s%13u%11u%10u%10u\n", str, \
633 sc->debug.stats.txstats[sc->tx.hwq_map[ATH9K_WME_AC_BE]].elem, \ 633 sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_BE]].elem, \
634 sc->debug.stats.txstats[sc->tx.hwq_map[ATH9K_WME_AC_BK]].elem, \ 634 sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_BK]].elem, \
635 sc->debug.stats.txstats[sc->tx.hwq_map[ATH9K_WME_AC_VI]].elem, \ 635 sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_VI]].elem, \
636 sc->debug.stats.txstats[sc->tx.hwq_map[ATH9K_WME_AC_VO]].elem); \ 636 sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_VO]].elem); \
637} while(0) 637} while(0)
638 638
639static ssize_t read_file_xmit(struct file *file, char __user *user_buf, 639static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 18d76ede859d..4e078301c887 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -426,7 +426,7 @@ static int ath9k_init_btcoex(struct ath_softc *sc)
426 r = ath_init_btcoex_timer(sc); 426 r = ath_init_btcoex_timer(sc);
427 if (r) 427 if (r)
428 return -1; 428 return -1;
429 qnum = ath_tx_get_qnum(sc, ATH9K_TX_QUEUE_DATA, ATH9K_WME_AC_BE); 429 qnum = sc->tx.hwq_map[WME_AC_BE];
430 ath9k_hw_init_btcoex_hw(sc->sc_ah, qnum); 430 ath9k_hw_init_btcoex_hw(sc->sc_ah, qnum);
431 sc->btcoex.bt_stomp_type = ATH_BTCOEX_STOMP_LOW; 431 sc->btcoex.bt_stomp_type = ATH_BTCOEX_STOMP_LOW;
432 break; 432 break;
@@ -463,23 +463,23 @@ static int ath9k_init_queues(struct ath_softc *sc)
463 sc->config.cabqReadytime = ATH_CABQ_READY_TIME; 463 sc->config.cabqReadytime = ATH_CABQ_READY_TIME;
464 ath_cabq_update(sc); 464 ath_cabq_update(sc);
465 465
466 if (!ath_tx_setup(sc, ATH9K_WME_AC_BK)) { 466 if (!ath_tx_setup(sc, WME_AC_BK)) {
467 ath_print(common, ATH_DBG_FATAL, 467 ath_print(common, ATH_DBG_FATAL,
468 "Unable to setup xmit queue for BK traffic\n"); 468 "Unable to setup xmit queue for BK traffic\n");
469 goto err; 469 goto err;
470 } 470 }
471 471
472 if (!ath_tx_setup(sc, ATH9K_WME_AC_BE)) { 472 if (!ath_tx_setup(sc, WME_AC_BE)) {
473 ath_print(common, ATH_DBG_FATAL, 473 ath_print(common, ATH_DBG_FATAL,
474 "Unable to setup xmit queue for BE traffic\n"); 474 "Unable to setup xmit queue for BE traffic\n");
475 goto err; 475 goto err;
476 } 476 }
477 if (!ath_tx_setup(sc, ATH9K_WME_AC_VI)) { 477 if (!ath_tx_setup(sc, WME_AC_VI)) {
478 ath_print(common, ATH_DBG_FATAL, 478 ath_print(common, ATH_DBG_FATAL,
479 "Unable to setup xmit queue for VI traffic\n"); 479 "Unable to setup xmit queue for VI traffic\n");
480 goto err; 480 goto err;
481 } 481 }
482 if (!ath_tx_setup(sc, ATH9K_WME_AC_VO)) { 482 if (!ath_tx_setup(sc, WME_AC_VO)) {
483 ath_print(common, ATH_DBG_FATAL, 483 ath_print(common, ATH_DBG_FATAL,
484 "Unable to setup xmit queue for VO traffic\n"); 484 "Unable to setup xmit queue for VO traffic\n");
485 goto err; 485 goto err;
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h
index 3c65c91b049b..7559fb2b28a5 100644
--- a/drivers/net/wireless/ath/ath9k/mac.h
+++ b/drivers/net/wireless/ath/ath9k/mac.h
@@ -577,13 +577,8 @@ enum ath9k_tx_queue {
577 577
578#define ATH9K_NUM_TX_QUEUES 10 578#define ATH9K_NUM_TX_QUEUES 10
579 579
580enum ath9k_tx_queue_subtype { 580/* Used as a queue subtype instead of a WMM AC */
581 ATH9K_WME_AC_BK = 0, 581#define ATH9K_WME_UPSD 4
582 ATH9K_WME_AC_BE,
583 ATH9K_WME_AC_VI,
584 ATH9K_WME_AC_VO,
585 ATH9K_WME_UPSD
586};
587 582
588enum ath9k_tx_queue_flags { 583enum ath9k_tx_queue_flags {
589 TXQ_FLAG_TXOKINT_ENABLE = 0x0001, 584 TXQ_FLAG_TXOKINT_ENABLE = 0x0001,
@@ -617,7 +612,7 @@ enum ath9k_pkt_type {
617struct ath9k_tx_queue_info { 612struct ath9k_tx_queue_info {
618 u32 tqi_ver; 613 u32 tqi_ver;
619 enum ath9k_tx_queue tqi_type; 614 enum ath9k_tx_queue tqi_type;
620 enum ath9k_tx_queue_subtype tqi_subtype; 615 int tqi_subtype;
621 enum ath9k_tx_queue_flags tqi_qflags; 616 enum ath9k_tx_queue_flags tqi_qflags;
622 u32 tqi_priority; 617 u32 tqi_priority;
623 u32 tqi_aifs; 618 u32 tqi_aifs;
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 9959e89d5496..9414c2c13a39 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -814,19 +814,19 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *sc)
814 814
815 switch (queue) { 815 switch (queue) {
816 case 0: 816 case 0:
817 qnum = sc->tx.hwq_map[ATH9K_WME_AC_VO]; 817 qnum = sc->tx.hwq_map[WME_AC_VO];
818 break; 818 break;
819 case 1: 819 case 1:
820 qnum = sc->tx.hwq_map[ATH9K_WME_AC_VI]; 820 qnum = sc->tx.hwq_map[WME_AC_VI];
821 break; 821 break;
822 case 2: 822 case 2:
823 qnum = sc->tx.hwq_map[ATH9K_WME_AC_BE]; 823 qnum = sc->tx.hwq_map[WME_AC_BE];
824 break; 824 break;
825 case 3: 825 case 3:
826 qnum = sc->tx.hwq_map[ATH9K_WME_AC_BK]; 826 qnum = sc->tx.hwq_map[WME_AC_BK];
827 break; 827 break;
828 default: 828 default:
829 qnum = sc->tx.hwq_map[ATH9K_WME_AC_BE]; 829 qnum = sc->tx.hwq_map[WME_AC_BE];
830 break; 830 break;
831 } 831 }
832 832
@@ -838,16 +838,16 @@ int ath_get_mac80211_qnum(u32 queue, struct ath_softc *sc)
838 int qnum; 838 int qnum;
839 839
840 switch (queue) { 840 switch (queue) {
841 case ATH9K_WME_AC_VO: 841 case WME_AC_VO:
842 qnum = 0; 842 qnum = 0;
843 break; 843 break;
844 case ATH9K_WME_AC_VI: 844 case WME_AC_VI:
845 qnum = 1; 845 qnum = 1;
846 break; 846 break;
847 case ATH9K_WME_AC_BE: 847 case WME_AC_BE:
848 qnum = 2; 848 qnum = 2;
849 break; 849 break;
850 case ATH9K_WME_AC_BK: 850 case WME_AC_BK:
851 qnum = 3; 851 qnum = 3;
852 break; 852 break;
853 default: 853 default:
@@ -1559,7 +1559,7 @@ static int ath9k_conf_tx(struct ieee80211_hw *hw, u16 queue,
1559 ath_print(common, ATH_DBG_FATAL, "TXQ Update failed\n"); 1559 ath_print(common, ATH_DBG_FATAL, "TXQ Update failed\n");
1560 1560
1561 if (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) 1561 if (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC)
1562 if ((qnum == sc->tx.hwq_map[ATH9K_WME_AC_BE]) && !ret) 1562 if ((qnum == sc->tx.hwq_map[WME_AC_BE]) && !ret)
1563 ath_beaconq_config(sc); 1563 ath_beaconq_config(sc);
1564 1564
1565 mutex_unlock(&sc->mutex); 1565 mutex_unlock(&sc->mutex);
diff --git a/drivers/net/wireless/ath/ath9k/virtual.c b/drivers/net/wireless/ath/ath9k/virtual.c
index 105ad40968f6..89423ca23d2c 100644
--- a/drivers/net/wireless/ath/ath9k/virtual.c
+++ b/drivers/net/wireless/ath/ath9k/virtual.c
@@ -219,7 +219,7 @@ static int ath9k_send_nullfunc(struct ath_wiphy *aphy,
219 info->control.rates[1].idx = -1; 219 info->control.rates[1].idx = -1;
220 220
221 memset(&txctl, 0, sizeof(struct ath_tx_control)); 221 memset(&txctl, 0, sizeof(struct ath_tx_control));
222 txctl.txq = &sc->tx.txq[sc->tx.hwq_map[ATH9K_WME_AC_VO]]; 222 txctl.txq = &sc->tx.txq[sc->tx.hwq_map[WME_AC_VO]];
223 txctl.frame_type = ps ? ATH9K_IFT_PAUSE : ATH9K_IFT_UNPAUSE; 223 txctl.frame_type = ps ? ATH9K_IFT_PAUSE : ATH9K_IFT_UNPAUSE;
224 224
225 if (ath_tx_start(aphy->hw, skb, &txctl) != 0) 225 if (ath_tx_start(aphy->hw, skb, &txctl) != 0)
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index ec124fbe8177..9bff6c52c2e1 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -959,32 +959,6 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
959 return &sc->tx.txq[qnum]; 959 return &sc->tx.txq[qnum];
960} 960}
961 961
962int ath_tx_get_qnum(struct ath_softc *sc, int qtype, int haltype)
963{
964 int qnum;
965
966 switch (qtype) {
967 case ATH9K_TX_QUEUE_DATA:
968 if (haltype >= ARRAY_SIZE(sc->tx.hwq_map)) {
969 ath_print(ath9k_hw_common(sc->sc_ah), ATH_DBG_FATAL,
970 "HAL AC %u out of range, max %zu!\n",
971 haltype, ARRAY_SIZE(sc->tx.hwq_map));
972 return -1;
973 }
974 qnum = sc->tx.hwq_map[haltype];
975 break;
976 case ATH9K_TX_QUEUE_BEACON:
977 qnum = sc->beacon.beaconq;
978 break;
979 case ATH9K_TX_QUEUE_CAB:
980 qnum = sc->beacon.cabq->axq_qnum;
981 break;
982 default:
983 qnum = -1;
984 }
985 return qnum;
986}
987
988int ath_txq_update(struct ath_softc *sc, int qnum, 962int ath_txq_update(struct ath_softc *sc, int qnum,
989 struct ath9k_tx_queue_info *qinfo) 963 struct ath9k_tx_queue_info *qinfo)
990{ 964{
@@ -2423,26 +2397,8 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an)
2423 for (acno = 0, ac = &an->ac[acno]; 2397 for (acno = 0, ac = &an->ac[acno];
2424 acno < WME_NUM_AC; acno++, ac++) { 2398 acno < WME_NUM_AC; acno++, ac++) {
2425 ac->sched = false; 2399 ac->sched = false;
2400 ac->qnum = sc->tx.hwq_map[acno];
2426 INIT_LIST_HEAD(&ac->tid_q); 2401 INIT_LIST_HEAD(&ac->tid_q);
2427
2428 switch (acno) {
2429 case WME_AC_BE:
2430 ac->qnum = ath_tx_get_qnum(sc,
2431 ATH9K_TX_QUEUE_DATA, ATH9K_WME_AC_BE);
2432 break;
2433 case WME_AC_BK:
2434 ac->qnum = ath_tx_get_qnum(sc,
2435 ATH9K_TX_QUEUE_DATA, ATH9K_WME_AC_BK);
2436 break;
2437 case WME_AC_VI:
2438 ac->qnum = ath_tx_get_qnum(sc,
2439 ATH9K_TX_QUEUE_DATA, ATH9K_WME_AC_VI);
2440 break;
2441 case WME_AC_VO:
2442 ac->qnum = ath_tx_get_qnum(sc,
2443 ATH9K_TX_QUEUE_DATA, ATH9K_WME_AC_VO);
2444 break;
2445 }
2446 } 2402 }
2447} 2403}
2448 2404