aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/htc_drv_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc_drv_main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c133
1 files changed, 66 insertions, 67 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index a8007af4e14..87731c2daae 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -143,11 +143,11 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv,
143 WMI_CMD(WMI_DRAIN_TXQ_ALL_CMDID); 143 WMI_CMD(WMI_DRAIN_TXQ_ALL_CMDID);
144 WMI_CMD(WMI_STOP_RECV_CMDID); 144 WMI_CMD(WMI_STOP_RECV_CMDID);
145 145
146 ath_print(common, ATH_DBG_CONFIG, 146 ath_dbg(common, ATH_DBG_CONFIG,
147 "(%u MHz) -> (%u MHz), HT: %d, HT40: %d fastcc: %d\n", 147 "(%u MHz) -> (%u MHz), HT: %d, HT40: %d fastcc: %d\n",
148 priv->ah->curchan->channel, 148 priv->ah->curchan->channel,
149 channel->center_freq, conf_is_ht(conf), conf_is_ht40(conf), 149 channel->center_freq, conf_is_ht(conf), conf_is_ht40(conf),
150 fastcc); 150 fastcc);
151 151
152 caldata = &priv->caldata[channel->hw_value]; 152 caldata = &priv->caldata[channel->hw_value];
153 ret = ath9k_hw_reset(ah, hchan, caldata, fastcc); 153 ret = ath9k_hw_reset(ah, hchan, caldata, fastcc);
@@ -270,9 +270,9 @@ static int ath9k_htc_add_station(struct ath9k_htc_priv *priv,
270 } 270 }
271 271
272 if (sta) 272 if (sta)
273 ath_print(common, ATH_DBG_CONFIG, 273 ath_dbg(common, ATH_DBG_CONFIG,
274 "Added a station entry for: %pM (idx: %d)\n", 274 "Added a station entry for: %pM (idx: %d)\n",
275 sta->addr, tsta.sta_index); 275 sta->addr, tsta.sta_index);
276 276
277 priv->nstations++; 277 priv->nstations++;
278 return 0; 278 return 0;
@@ -304,9 +304,9 @@ static int ath9k_htc_remove_station(struct ath9k_htc_priv *priv,
304 } 304 }
305 305
306 if (sta) 306 if (sta)
307 ath_print(common, ATH_DBG_CONFIG, 307 ath_dbg(common, ATH_DBG_CONFIG,
308 "Removed a station entry for: %pM (idx: %d)\n", 308 "Removed a station entry for: %pM (idx: %d)\n",
309 sta->addr, sta_idx); 309 sta->addr, sta_idx);
310 310
311 priv->nstations--; 311 priv->nstations--;
312 return 0; 312 return 0;
@@ -409,9 +409,9 @@ static void ath9k_htc_init_rate(struct ath9k_htc_priv *priv,
409 ath9k_htc_setup_rate(priv, sta, &trate); 409 ath9k_htc_setup_rate(priv, sta, &trate);
410 ret = ath9k_htc_send_rate_cmd(priv, &trate); 410 ret = ath9k_htc_send_rate_cmd(priv, &trate);
411 if (!ret) 411 if (!ret)
412 ath_print(common, ATH_DBG_CONFIG, 412 ath_dbg(common, ATH_DBG_CONFIG,
413 "Updated target sta: %pM, rate caps: 0x%X\n", 413 "Updated target sta: %pM, rate caps: 0x%X\n",
414 sta->addr, be32_to_cpu(trate.capflags)); 414 sta->addr, be32_to_cpu(trate.capflags));
415} 415}
416 416
417static void ath9k_htc_update_rate(struct ath9k_htc_priv *priv, 417static void ath9k_htc_update_rate(struct ath9k_htc_priv *priv,
@@ -436,9 +436,9 @@ static void ath9k_htc_update_rate(struct ath9k_htc_priv *priv,
436 436
437 ret = ath9k_htc_send_rate_cmd(priv, &trate); 437 ret = ath9k_htc_send_rate_cmd(priv, &trate);
438 if (!ret) 438 if (!ret)
439 ath_print(common, ATH_DBG_CONFIG, 439 ath_dbg(common, ATH_DBG_CONFIG,
440 "Updated target sta: %pM, rate caps: 0x%X\n", 440 "Updated target sta: %pM, rate caps: 0x%X\n",
441 bss_conf->bssid, be32_to_cpu(trate.capflags)); 441 bss_conf->bssid, be32_to_cpu(trate.capflags));
442} 442}
443 443
444static int ath9k_htc_tx_aggr_oper(struct ath9k_htc_priv *priv, 444static int ath9k_htc_tx_aggr_oper(struct ath9k_htc_priv *priv,
@@ -465,14 +465,14 @@ static int ath9k_htc_tx_aggr_oper(struct ath9k_htc_priv *priv,
465 465
466 WMI_CMD_BUF(WMI_TX_AGGR_ENABLE_CMDID, &aggr); 466 WMI_CMD_BUF(WMI_TX_AGGR_ENABLE_CMDID, &aggr);
467 if (ret) 467 if (ret)
468 ath_print(common, ATH_DBG_CONFIG, 468 ath_dbg(common, ATH_DBG_CONFIG,
469 "Unable to %s TX aggregation for (%pM, %d)\n", 469 "Unable to %s TX aggregation for (%pM, %d)\n",
470 (aggr.aggr_enable) ? "start" : "stop", sta->addr, tid); 470 (aggr.aggr_enable) ? "start" : "stop", sta->addr, tid);
471 else 471 else
472 ath_print(common, ATH_DBG_CONFIG, 472 ath_dbg(common, ATH_DBG_CONFIG,
473 "%s TX aggregation for (%pM, %d)\n", 473 "%s TX aggregation for (%pM, %d)\n",
474 (aggr.aggr_enable) ? "Starting" : "Stopping", 474 (aggr.aggr_enable) ? "Starting" : "Stopping",
475 sta->addr, tid); 475 sta->addr, tid);
476 476
477 spin_lock_bh(&priv->tx_lock); 477 spin_lock_bh(&priv->tx_lock);
478 ista->tid_state[tid] = (aggr.aggr_enable && !ret) ? AGGR_START : AGGR_STOP; 478 ista->tid_state[tid] = (aggr.aggr_enable && !ret) ? AGGR_START : AGGR_STOP;
@@ -725,7 +725,7 @@ void ath9k_ani_work(struct work_struct *work)
725 /* Long calibration runs independently of short calibration. */ 725 /* Long calibration runs independently of short calibration. */
726 if ((timestamp - common->ani.longcal_timer) >= ATH_LONG_CALINTERVAL) { 726 if ((timestamp - common->ani.longcal_timer) >= ATH_LONG_CALINTERVAL) {
727 longcal = true; 727 longcal = true;
728 ath_print(common, ATH_DBG_ANI, "longcal @%lu\n", jiffies); 728 ath_dbg(common, ATH_DBG_ANI, "longcal @%lu\n", jiffies);
729 common->ani.longcal_timer = timestamp; 729 common->ani.longcal_timer = timestamp;
730 } 730 }
731 731
@@ -734,8 +734,8 @@ void ath9k_ani_work(struct work_struct *work)
734 if ((timestamp - common->ani.shortcal_timer) >= 734 if ((timestamp - common->ani.shortcal_timer) >=
735 short_cal_interval) { 735 short_cal_interval) {
736 shortcal = true; 736 shortcal = true;
737 ath_print(common, ATH_DBG_ANI, 737 ath_dbg(common, ATH_DBG_ANI,
738 "shortcal @%lu\n", jiffies); 738 "shortcal @%lu\n", jiffies);
739 common->ani.shortcal_timer = timestamp; 739 common->ani.shortcal_timer = timestamp;
740 common->ani.resetcal_timer = timestamp; 740 common->ani.resetcal_timer = timestamp;
741 } 741 }
@@ -1125,15 +1125,15 @@ static int ath9k_htc_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
1125 ret = ath9k_htc_tx_start(priv, skb); 1125 ret = ath9k_htc_tx_start(priv, skb);
1126 if (ret != 0) { 1126 if (ret != 0) {
1127 if (ret == -ENOMEM) { 1127 if (ret == -ENOMEM) {
1128 ath_print(ath9k_hw_common(priv->ah), ATH_DBG_XMIT, 1128 ath_dbg(ath9k_hw_common(priv->ah), ATH_DBG_XMIT,
1129 "Stopping TX queues\n"); 1129 "Stopping TX queues\n");
1130 ieee80211_stop_queues(hw); 1130 ieee80211_stop_queues(hw);
1131 spin_lock_bh(&priv->tx_lock); 1131 spin_lock_bh(&priv->tx_lock);
1132 priv->tx_queues_stop = true; 1132 priv->tx_queues_stop = true;
1133 spin_unlock_bh(&priv->tx_lock); 1133 spin_unlock_bh(&priv->tx_lock);
1134 } else { 1134 } else {
1135 ath_print(ath9k_hw_common(priv->ah), ATH_DBG_XMIT, 1135 ath_dbg(ath9k_hw_common(priv->ah), ATH_DBG_XMIT,
1136 "Tx failed"); 1136 "Tx failed\n");
1137 } 1137 }
1138 goto fail_tx; 1138 goto fail_tx;
1139 } 1139 }
@@ -1159,9 +1159,9 @@ static int ath9k_htc_start(struct ieee80211_hw *hw)
1159 1159
1160 mutex_lock(&priv->mutex); 1160 mutex_lock(&priv->mutex);
1161 1161
1162 ath_print(common, ATH_DBG_CONFIG, 1162 ath_dbg(common, ATH_DBG_CONFIG,
1163 "Starting driver with initial channel: %d MHz\n", 1163 "Starting driver with initial channel: %d MHz\n",
1164 curchan->center_freq); 1164 curchan->center_freq);
1165 1165
1166 /* Ensure that HW is awake before flushing RX */ 1166 /* Ensure that HW is awake before flushing RX */
1167 ath9k_htc_setpower(priv, ATH9K_PM_AWAKE); 1167 ath9k_htc_setpower(priv, ATH9K_PM_AWAKE);
@@ -1224,7 +1224,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
1224 mutex_lock(&priv->mutex); 1224 mutex_lock(&priv->mutex);
1225 1225
1226 if (priv->op_flags & OP_INVALID) { 1226 if (priv->op_flags & OP_INVALID) {
1227 ath_print(common, ATH_DBG_ANY, "Device not present\n"); 1227 ath_dbg(common, ATH_DBG_ANY, "Device not present\n");
1228 mutex_unlock(&priv->mutex); 1228 mutex_unlock(&priv->mutex);
1229 return; 1229 return;
1230 } 1230 }
@@ -1246,8 +1246,8 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
1246 if (ath9k_htc_remove_monitor_interface(priv)) 1246 if (ath9k_htc_remove_monitor_interface(priv))
1247 ath_err(common, "Unable to remove monitor interface\n"); 1247 ath_err(common, "Unable to remove monitor interface\n");
1248 else 1248 else
1249 ath_print(common, ATH_DBG_CONFIG, 1249 ath_dbg(common, ATH_DBG_CONFIG,
1250 "Monitor interface removed\n"); 1250 "Monitor interface removed\n");
1251 } 1251 }
1252 1252
1253 if (ah->btcoex_hw.enabled) { 1253 if (ah->btcoex_hw.enabled) {
@@ -1264,7 +1264,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
1264 1264
1265 priv->op_flags |= OP_INVALID; 1265 priv->op_flags |= OP_INVALID;
1266 1266
1267 ath_print(common, ATH_DBG_CONFIG, "Driver halt\n"); 1267 ath_dbg(common, ATH_DBG_CONFIG, "Driver halt\n");
1268 mutex_unlock(&priv->mutex); 1268 mutex_unlock(&priv->mutex);
1269} 1269}
1270 1270
@@ -1304,8 +1304,8 @@ static int ath9k_htc_add_interface(struct ieee80211_hw *hw,
1304 goto out; 1304 goto out;
1305 } 1305 }
1306 1306
1307 ath_print(common, ATH_DBG_CONFIG, 1307 ath_dbg(common, ATH_DBG_CONFIG,
1308 "Attach a VIF of type: %d\n", vif->type); 1308 "Attach a VIF of type: %d\n", vif->type);
1309 1309
1310 priv->ah->opmode = vif->type; 1310 priv->ah->opmode = vif->type;
1311 1311
@@ -1328,8 +1328,8 @@ static int ath9k_htc_add_interface(struct ieee80211_hw *hw,
1328 1328
1329 ret = ath9k_htc_update_cap_target(priv); 1329 ret = ath9k_htc_update_cap_target(priv);
1330 if (ret) 1330 if (ret)
1331 ath_print(common, ATH_DBG_CONFIG, "Failed to update" 1331 ath_dbg(common, ATH_DBG_CONFIG,
1332 " capability in target \n"); 1332 "Failed to update capability in target\n");
1333 1333
1334 priv->vif = vif; 1334 priv->vif = vif;
1335out: 1335out:
@@ -1349,7 +1349,7 @@ static void ath9k_htc_remove_interface(struct ieee80211_hw *hw,
1349 int ret = 0; 1349 int ret = 0;
1350 u8 cmd_rsp; 1350 u8 cmd_rsp;
1351 1351
1352 ath_print(common, ATH_DBG_CONFIG, "Detach Interface\n"); 1352 ath_dbg(common, ATH_DBG_CONFIG, "Detach Interface\n");
1353 1353
1354 mutex_lock(&priv->mutex); 1354 mutex_lock(&priv->mutex);
1355 ath9k_htc_ps_wakeup(priv); 1355 ath9k_htc_ps_wakeup(priv);
@@ -1386,8 +1386,8 @@ static int ath9k_htc_config(struct ieee80211_hw *hw, u32 changed)
1386 mutex_unlock(&priv->htc_pm_lock); 1386 mutex_unlock(&priv->htc_pm_lock);
1387 1387
1388 if (enable_radio) { 1388 if (enable_radio) {
1389 ath_print(common, ATH_DBG_CONFIG, 1389 ath_dbg(common, ATH_DBG_CONFIG,
1390 "not-idle: enabling radio\n"); 1390 "not-idle: enabling radio\n");
1391 ath9k_htc_setpower(priv, ATH9K_PM_AWAKE); 1391 ath9k_htc_setpower(priv, ATH9K_PM_AWAKE);
1392 ath9k_htc_radio_enable(hw); 1392 ath9k_htc_radio_enable(hw);
1393 } 1393 }
@@ -1397,8 +1397,8 @@ static int ath9k_htc_config(struct ieee80211_hw *hw, u32 changed)
1397 struct ieee80211_channel *curchan = hw->conf.channel; 1397 struct ieee80211_channel *curchan = hw->conf.channel;
1398 int pos = curchan->hw_value; 1398 int pos = curchan->hw_value;
1399 1399
1400 ath_print(common, ATH_DBG_CONFIG, "Set channel: %d MHz\n", 1400 ath_dbg(common, ATH_DBG_CONFIG, "Set channel: %d MHz\n",
1401 curchan->center_freq); 1401 curchan->center_freq);
1402 1402
1403 ath9k_cmn_update_ichannel(&priv->ah->channels[pos], 1403 ath9k_cmn_update_ichannel(&priv->ah->channels[pos],
1404 hw->conf.channel, 1404 hw->conf.channel,
@@ -1427,8 +1427,8 @@ static int ath9k_htc_config(struct ieee80211_hw *hw, u32 changed)
1427 if (ath9k_htc_add_monitor_interface(priv)) 1427 if (ath9k_htc_add_monitor_interface(priv))
1428 ath_err(common, "Failed to set monitor mode\n"); 1428 ath_err(common, "Failed to set monitor mode\n");
1429 else 1429 else
1430 ath_print(common, ATH_DBG_CONFIG, 1430 ath_dbg(common, ATH_DBG_CONFIG,
1431 "HW opmode set to Monitor mode\n"); 1431 "HW opmode set to Monitor mode\n");
1432 } 1432 }
1433 } 1433 }
1434 1434
@@ -1440,8 +1440,8 @@ static int ath9k_htc_config(struct ieee80211_hw *hw, u32 changed)
1440 } 1440 }
1441 mutex_unlock(&priv->htc_pm_lock); 1441 mutex_unlock(&priv->htc_pm_lock);
1442 1442
1443 ath_print(common, ATH_DBG_CONFIG, 1443 ath_dbg(common, ATH_DBG_CONFIG,
1444 "idle: disabling radio\n"); 1444 "idle: disabling radio\n");
1445 ath9k_htc_radio_disable(hw); 1445 ath9k_htc_radio_disable(hw);
1446 } 1446 }
1447 1447
@@ -1478,8 +1478,8 @@ static void ath9k_htc_configure_filter(struct ieee80211_hw *hw,
1478 rfilt = ath9k_htc_calcrxfilter(priv); 1478 rfilt = ath9k_htc_calcrxfilter(priv);
1479 ath9k_hw_setrxfilter(priv->ah, rfilt); 1479 ath9k_hw_setrxfilter(priv->ah, rfilt);
1480 1480
1481 ath_print(ath9k_hw_common(priv->ah), ATH_DBG_CONFIG, 1481 ath_dbg(ath9k_hw_common(priv->ah), ATH_DBG_CONFIG,
1482 "Set HW RX filter: 0x%x\n", rfilt); 1482 "Set HW RX filter: 0x%x\n", rfilt);
1483 1483
1484 ath9k_htc_ps_restore(priv); 1484 ath9k_htc_ps_restore(priv);
1485 mutex_unlock(&priv->mutex); 1485 mutex_unlock(&priv->mutex);
@@ -1542,11 +1542,10 @@ static int ath9k_htc_conf_tx(struct ieee80211_hw *hw, u16 queue,
1542 1542
1543 qnum = get_hw_qnum(queue, priv->hwq_map); 1543 qnum = get_hw_qnum(queue, priv->hwq_map);
1544 1544
1545 ath_print(common, ATH_DBG_CONFIG, 1545 ath_dbg(common, ATH_DBG_CONFIG,
1546 "Configure tx [queue/hwq] [%d/%d], " 1546 "Configure tx [queue/hwq] [%d/%d], aifs: %d, cw_min: %d, cw_max: %d, txop: %d\n",
1547 "aifs: %d, cw_min: %d, cw_max: %d, txop: %d\n", 1547 queue, qnum, params->aifs, params->cw_min,
1548 queue, qnum, params->aifs, params->cw_min, 1548 params->cw_max, params->txop);
1549 params->cw_max, params->txop);
1550 1549
1551 ret = ath_htc_txq_update(priv, qnum, &qi); 1550 ret = ath_htc_txq_update(priv, qnum, &qi);
1552 if (ret) { 1551 if (ret) {
@@ -1578,7 +1577,7 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw,
1578 return -ENOSPC; 1577 return -ENOSPC;
1579 1578
1580 mutex_lock(&priv->mutex); 1579 mutex_lock(&priv->mutex);
1581 ath_print(common, ATH_DBG_CONFIG, "Set HW Key\n"); 1580 ath_dbg(common, ATH_DBG_CONFIG, "Set HW Key\n");
1582 ath9k_htc_ps_wakeup(priv); 1581 ath9k_htc_ps_wakeup(priv);
1583 1582
1584 switch (cmd) { 1583 switch (cmd) {
@@ -1624,7 +1623,7 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw,
1624 if (changed & BSS_CHANGED_ASSOC) { 1623 if (changed & BSS_CHANGED_ASSOC) {
1625 common->curaid = bss_conf->assoc ? 1624 common->curaid = bss_conf->assoc ?
1626 bss_conf->aid : 0; 1625 bss_conf->aid : 0;
1627 ath_print(common, ATH_DBG_CONFIG, "BSS Changed ASSOC %d\n", 1626 ath_dbg(common, ATH_DBG_CONFIG, "BSS Changed ASSOC %d\n",
1628 bss_conf->assoc); 1627 bss_conf->assoc);
1629 1628
1630 if (bss_conf->assoc) { 1629 if (bss_conf->assoc) {
@@ -1641,9 +1640,9 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw,
1641 memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN); 1640 memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN);
1642 ath9k_hw_write_associd(ah); 1641 ath9k_hw_write_associd(ah);
1643 1642
1644 ath_print(common, ATH_DBG_CONFIG, 1643 ath_dbg(common, ATH_DBG_CONFIG,
1645 "BSSID: %pM aid: 0x%x\n", 1644 "BSSID: %pM aid: 0x%x\n",
1646 common->curbssid, common->curaid); 1645 common->curbssid, common->curaid);
1647 } 1646 }
1648 1647
1649 if ((changed & BSS_CHANGED_BEACON_INT) || 1648 if ((changed & BSS_CHANGED_BEACON_INT) ||
@@ -1661,8 +1660,8 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw,
1661 } 1660 }
1662 1661
1663 if (changed & BSS_CHANGED_ERP_PREAMBLE) { 1662 if (changed & BSS_CHANGED_ERP_PREAMBLE) {
1664 ath_print(common, ATH_DBG_CONFIG, "BSS Changed PREAMBLE %d\n", 1663 ath_dbg(common, ATH_DBG_CONFIG, "BSS Changed PREAMBLE %d\n",
1665 bss_conf->use_short_preamble); 1664 bss_conf->use_short_preamble);
1666 if (bss_conf->use_short_preamble) 1665 if (bss_conf->use_short_preamble)
1667 priv->op_flags |= OP_PREAMBLE_SHORT; 1666 priv->op_flags |= OP_PREAMBLE_SHORT;
1668 else 1667 else
@@ -1670,8 +1669,8 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw,
1670 } 1669 }
1671 1670
1672 if (changed & BSS_CHANGED_ERP_CTS_PROT) { 1671 if (changed & BSS_CHANGED_ERP_CTS_PROT) {
1673 ath_print(common, ATH_DBG_CONFIG, "BSS Changed CTS PROT %d\n", 1672 ath_dbg(common, ATH_DBG_CONFIG, "BSS Changed CTS PROT %d\n",
1674 bss_conf->use_cts_prot); 1673 bss_conf->use_cts_prot);
1675 if (bss_conf->use_cts_prot && 1674 if (bss_conf->use_cts_prot &&
1676 hw->conf.channel->band != IEEE80211_BAND_5GHZ) 1675 hw->conf.channel->band != IEEE80211_BAND_5GHZ)
1677 priv->op_flags |= OP_PROTECT_ENABLE; 1676 priv->op_flags |= OP_PROTECT_ENABLE;