diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/carl9170.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/debug.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/tx.c | 37 |
3 files changed, 2 insertions, 40 deletions
diff --git a/drivers/net/wireless/ath/carl9170/carl9170.h b/drivers/net/wireless/ath/carl9170/carl9170.h index d7c5482d74ce..20f2a77e54d2 100644 --- a/drivers/net/wireless/ath/carl9170/carl9170.h +++ b/drivers/net/wireless/ath/carl9170/carl9170.h | |||
@@ -364,7 +364,6 @@ struct ar9170 { | |||
364 | unsigned int tx_dropped; | 364 | unsigned int tx_dropped; |
365 | unsigned int tx_ack_failures; | 365 | unsigned int tx_ack_failures; |
366 | unsigned int tx_fcs_errors; | 366 | unsigned int tx_fcs_errors; |
367 | unsigned int tx_ampdu_timeout; | ||
368 | unsigned int rx_dropped; | 367 | unsigned int rx_dropped; |
369 | 368 | ||
370 | /* EEPROM */ | 369 | /* EEPROM */ |
diff --git a/drivers/net/wireless/ath/carl9170/debug.c b/drivers/net/wireless/ath/carl9170/debug.c index 19b48369ffed..0ac1124c2a0b 100644 --- a/drivers/net/wireless/ath/carl9170/debug.c +++ b/drivers/net/wireless/ath/carl9170/debug.c | |||
@@ -798,8 +798,6 @@ DEBUGFS_READONLY_FILE(tx_total_queued, 20, "%d", | |||
798 | atomic_read(&ar->tx_total_queued)); | 798 | atomic_read(&ar->tx_total_queued)); |
799 | DEBUGFS_READONLY_FILE(tx_ampdu_scheduler, 20, "%d", | 799 | DEBUGFS_READONLY_FILE(tx_ampdu_scheduler, 20, "%d", |
800 | atomic_read(&ar->tx_ampdu_scheduler)); | 800 | atomic_read(&ar->tx_ampdu_scheduler)); |
801 | DEBUGFS_READONLY_FILE(tx_ampdu_timeout, 20, "%d", | ||
802 | ar->tx_ampdu_timeout); | ||
803 | 801 | ||
804 | DEBUGFS_READONLY_FILE(tx_total_pending, 20, "%d", | 802 | DEBUGFS_READONLY_FILE(tx_total_pending, 20, "%d", |
805 | atomic_read(&ar->tx_total_pending)); | 803 | atomic_read(&ar->tx_total_pending)); |
@@ -872,8 +870,6 @@ void carl9170_debugfs_register(struct ar9170 *ar) | |||
872 | DEBUGFS_ADD(ampdu_density); | 870 | DEBUGFS_ADD(ampdu_density); |
873 | DEBUGFS_ADD(ampdu_factor); | 871 | DEBUGFS_ADD(ampdu_factor); |
874 | 872 | ||
875 | DEBUGFS_ADD(tx_ampdu_timeout); | ||
876 | |||
877 | DEBUGFS_ADD(tx_janitor_last_run); | 873 | DEBUGFS_ADD(tx_janitor_last_run); |
878 | 874 | ||
879 | DEBUGFS_ADD(tx_status_0); | 875 | DEBUGFS_ADD(tx_status_0); |
diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c index e0d2374e0c77..e6be5e6c1723 100644 --- a/drivers/net/wireless/ath/carl9170/tx.c +++ b/drivers/net/wireless/ath/carl9170/tx.c | |||
@@ -1042,41 +1042,8 @@ retry: | |||
1042 | queue = TID_TO_WME_AC(tid_info->tid); | 1042 | queue = TID_TO_WME_AC(tid_info->tid); |
1043 | 1043 | ||
1044 | spin_lock_bh(&tid_info->lock); | 1044 | spin_lock_bh(&tid_info->lock); |
1045 | if (tid_info->state != CARL9170_TID_STATE_XMIT) { | 1045 | if (tid_info->state != CARL9170_TID_STATE_XMIT) |
1046 | first = skb_peek(&tid_info->queue); | 1046 | goto processed; |
1047 | if (first) { | ||
1048 | struct ieee80211_tx_info *txinfo; | ||
1049 | struct carl9170_tx_info *arinfo; | ||
1050 | |||
1051 | txinfo = IEEE80211_SKB_CB(first); | ||
1052 | arinfo = (void *) txinfo->rate_driver_data; | ||
1053 | |||
1054 | if (time_is_after_jiffies(arinfo->timeout + | ||
1055 | msecs_to_jiffies(CARL9170_QUEUE_TIMEOUT)) | ||
1056 | == true) | ||
1057 | goto processed; | ||
1058 | |||
1059 | /* | ||
1060 | * We've been waiting for the frame which | ||
1061 | * matches "snx" (start sequence of the | ||
1062 | * next aggregate) for some time now. | ||
1063 | * | ||
1064 | * But it never arrived. Therefore | ||
1065 | * jump to the next available frame | ||
1066 | * and kick-start the transmission. | ||
1067 | * | ||
1068 | * Note: This might induce odd latency | ||
1069 | * spikes because the receiver will be | ||
1070 | * waiting for the lost frame too. | ||
1071 | */ | ||
1072 | ar->tx_ampdu_timeout++; | ||
1073 | |||
1074 | tid_info->snx = carl9170_get_seq(first); | ||
1075 | tid_info->state = CARL9170_TID_STATE_XMIT; | ||
1076 | } else { | ||
1077 | goto processed; | ||
1078 | } | ||
1079 | } | ||
1080 | 1047 | ||
1081 | tid_info->counter++; | 1048 | tid_info->counter++; |
1082 | first = skb_peek(&tid_info->queue); | 1049 | first = skb_peek(&tid_info->queue); |