All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ath10k:  Fix mgmt tx status for 10.4.3 firmware.
@ 2016-02-29 21:50 ` greearb
  0 siblings, 0 replies; 6+ messages in thread
From: greearb @ 2016-02-29 21:50 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Ben Greear

From: Ben Greear <greearb@candelatech.com>

When testing a 10.4.3 firmware in station mode, I notice that
when the AP is powered down, the ath10k does not notice AP is gone
because mgt frames get tx status of 3, which is not handled.

It appears that status 3 means something similar to failed-retry.

Treating it thus lets the station disconnect properly.

Tested against a non-stock 10.4.3 firmware, but likely upstream
firmware acts similarly in this case.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---

This patch is against a heavily patched tree based on 4.4, hopefully
it can be applied to upstream code w/out too much trouble.

Someone should verify this on stock 10.4-ish firmware before applying.

 drivers/net/wireless/ath/ath10k/htt.h    |  4 +++-
 drivers/net/wireless/ath/ath10k/htt_rx.c | 11 +++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h
index c31a31f..de663a6 100644
--- a/drivers/net/wireless/ath/ath10k/htt.h
+++ b/drivers/net/wireless/ath/ath10k/htt.h
@@ -309,7 +309,9 @@ struct htt_mgmt_tx_desc {
 enum htt_mgmt_tx_status {
 	HTT_MGMT_TX_STATUS_OK    = 0,
 	HTT_MGMT_TX_STATUS_RETRY = 1,
-	HTT_MGMT_TX_STATUS_DROP  = 2
+	HTT_MGMT_TX_STATUS_DROP  = 2,
+	HTT_MGMT_TX_STATUS_TXFILT = 3 /* Seems to be logically similar to
+					 RETRY failure. */
 };
 
 /*=== target -> host messages ===============================================*/
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index 2953aa7..88918ab 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -1721,8 +1721,10 @@ static void ath10k_htt_rx_frm_tx_compl(struct ath10k *ar,
 		break;
 	}
 
-	ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx completion num_msdus %d\n",
-		   resp->data_tx_completion.num_msdus);
+	ath10k_dbg(ar, ATH10K_DBG_HTT,
+		   "htt tx completion num_msdus %d status: %d  discard: %d  no-ack: %d\n",
+		   resp->data_tx_completion.num_msdus, status,
+		   (int)tx_done.discard, (int)tx_done.no_ack);
 
 	if (test_bit(ATH10K_FW_FEATURE_TXRATE_CT, ar->fw_features) &&
 	    ar->wmi.op_version != ATH10K_FW_WMI_OP_VERSION_10_4) {
@@ -2406,6 +2408,7 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb)
 			tx_done.success = true;
 			break;
 		case HTT_MGMT_TX_STATUS_RETRY:
+		case HTT_MGMT_TX_STATUS_TXFILT:
 			tx_done.no_ack = true;
 			break;
 		case HTT_MGMT_TX_STATUS_DROP:
@@ -2413,6 +2416,10 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb)
 			break;
 		}
 
+		ath10k_dbg(ar, ATH10K_DBG_HTT,
+			   "mgmt-tx-completion, status: %d  discard: %d  no-ack: %d\n",
+			   status, (int)tx_done.discard, (int)tx_done.no_ack);
+
 		ath10k_txrx_tx_unref(htt, &tx_done);
 		ath10k_mac_tx_push_pending(ar);
 		break;
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] ath10k:  Fix mgmt tx status for 10.4.3 firmware.
@ 2016-02-29 21:50 ` greearb
  0 siblings, 0 replies; 6+ messages in thread
From: greearb @ 2016-02-29 21:50 UTC (permalink / raw)
  To: ath10k; +Cc: Ben Greear, linux-wireless

From: Ben Greear <greearb@candelatech.com>

When testing a 10.4.3 firmware in station mode, I notice that
when the AP is powered down, the ath10k does not notice AP is gone
because mgt frames get tx status of 3, which is not handled.

It appears that status 3 means something similar to failed-retry.

Treating it thus lets the station disconnect properly.

Tested against a non-stock 10.4.3 firmware, but likely upstream
firmware acts similarly in this case.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---

This patch is against a heavily patched tree based on 4.4, hopefully
it can be applied to upstream code w/out too much trouble.

Someone should verify this on stock 10.4-ish firmware before applying.

 drivers/net/wireless/ath/ath10k/htt.h    |  4 +++-
 drivers/net/wireless/ath/ath10k/htt_rx.c | 11 +++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h
index c31a31f..de663a6 100644
--- a/drivers/net/wireless/ath/ath10k/htt.h
+++ b/drivers/net/wireless/ath/ath10k/htt.h
@@ -309,7 +309,9 @@ struct htt_mgmt_tx_desc {
 enum htt_mgmt_tx_status {
 	HTT_MGMT_TX_STATUS_OK    = 0,
 	HTT_MGMT_TX_STATUS_RETRY = 1,
-	HTT_MGMT_TX_STATUS_DROP  = 2
+	HTT_MGMT_TX_STATUS_DROP  = 2,
+	HTT_MGMT_TX_STATUS_TXFILT = 3 /* Seems to be logically similar to
+					 RETRY failure. */
 };
 
 /*=== target -> host messages ===============================================*/
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index 2953aa7..88918ab 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -1721,8 +1721,10 @@ static void ath10k_htt_rx_frm_tx_compl(struct ath10k *ar,
 		break;
 	}
 
-	ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx completion num_msdus %d\n",
-		   resp->data_tx_completion.num_msdus);
+	ath10k_dbg(ar, ATH10K_DBG_HTT,
+		   "htt tx completion num_msdus %d status: %d  discard: %d  no-ack: %d\n",
+		   resp->data_tx_completion.num_msdus, status,
+		   (int)tx_done.discard, (int)tx_done.no_ack);
 
 	if (test_bit(ATH10K_FW_FEATURE_TXRATE_CT, ar->fw_features) &&
 	    ar->wmi.op_version != ATH10K_FW_WMI_OP_VERSION_10_4) {
@@ -2406,6 +2408,7 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb)
 			tx_done.success = true;
 			break;
 		case HTT_MGMT_TX_STATUS_RETRY:
+		case HTT_MGMT_TX_STATUS_TXFILT:
 			tx_done.no_ack = true;
 			break;
 		case HTT_MGMT_TX_STATUS_DROP:
@@ -2413,6 +2416,10 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb)
 			break;
 		}
 
+		ath10k_dbg(ar, ATH10K_DBG_HTT,
+			   "mgmt-tx-completion, status: %d  discard: %d  no-ack: %d\n",
+			   status, (int)tx_done.discard, (int)tx_done.no_ack);
+
 		ath10k_txrx_tx_unref(htt, &tx_done);
 		ath10k_mac_tx_push_pending(ar);
 		break;
-- 
2.4.3


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath10k: Fix mgmt tx status for 10.4.3 firmware.
  2016-02-29 21:50 ` greearb
@ 2016-03-01  9:26   ` Felix Fietkau
  -1 siblings, 0 replies; 6+ messages in thread
From: Felix Fietkau @ 2016-03-01  9:26 UTC (permalink / raw)
  To: greearb, ath10k; +Cc: linux-wireless

On 2016-02-29 22:50, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
> 
> When testing a 10.4.3 firmware in station mode, I notice that
> when the AP is powered down, the ath10k does not notice AP is gone
> because mgt frames get tx status of 3, which is not handled.
> 
> It appears that status 3 means something similar to failed-retry.
> 
> Treating it thus lets the station disconnect properly.
> 
> Tested against a non-stock 10.4.3 firmware, but likely upstream
> firmware acts similarly in this case.
> 
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
> 
> This patch is against a heavily patched tree based on 4.4, hopefully
> it can be applied to upstream code w/out too much trouble.
> 
> Someone should verify this on stock 10.4-ish firmware before applying.
> 
>  drivers/net/wireless/ath/ath10k/htt.h    |  4 +++-
>  drivers/net/wireless/ath/ath10k/htt_rx.c | 11 +++++++++--
>  2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h
> index c31a31f..de663a6 100644
> --- a/drivers/net/wireless/ath/ath10k/htt.h
> +++ b/drivers/net/wireless/ath/ath10k/htt.h
> @@ -309,7 +309,9 @@ struct htt_mgmt_tx_desc {
>  enum htt_mgmt_tx_status {
>  	HTT_MGMT_TX_STATUS_OK    = 0,
>  	HTT_MGMT_TX_STATUS_RETRY = 1,
> -	HTT_MGMT_TX_STATUS_DROP  = 2
> +	HTT_MGMT_TX_STATUS_DROP  = 2,
> +	HTT_MGMT_TX_STATUS_TXFILT = 3 /* Seems to be logically similar to
> +					 RETRY failure. */
In that case the driver should probably set IEEE80211_TX_STAT_TX_FILTERED

- Felix

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath10k: Fix mgmt tx status for 10.4.3 firmware.
@ 2016-03-01  9:26   ` Felix Fietkau
  0 siblings, 0 replies; 6+ messages in thread
From: Felix Fietkau @ 2016-03-01  9:26 UTC (permalink / raw)
  To: greearb, ath10k; +Cc: linux-wireless

On 2016-02-29 22:50, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
> 
> When testing a 10.4.3 firmware in station mode, I notice that
> when the AP is powered down, the ath10k does not notice AP is gone
> because mgt frames get tx status of 3, which is not handled.
> 
> It appears that status 3 means something similar to failed-retry.
> 
> Treating it thus lets the station disconnect properly.
> 
> Tested against a non-stock 10.4.3 firmware, but likely upstream
> firmware acts similarly in this case.
> 
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
> 
> This patch is against a heavily patched tree based on 4.4, hopefully
> it can be applied to upstream code w/out too much trouble.
> 
> Someone should verify this on stock 10.4-ish firmware before applying.
> 
>  drivers/net/wireless/ath/ath10k/htt.h    |  4 +++-
>  drivers/net/wireless/ath/ath10k/htt_rx.c | 11 +++++++++--
>  2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h
> index c31a31f..de663a6 100644
> --- a/drivers/net/wireless/ath/ath10k/htt.h
> +++ b/drivers/net/wireless/ath/ath10k/htt.h
> @@ -309,7 +309,9 @@ struct htt_mgmt_tx_desc {
>  enum htt_mgmt_tx_status {
>  	HTT_MGMT_TX_STATUS_OK    = 0,
>  	HTT_MGMT_TX_STATUS_RETRY = 1,
> -	HTT_MGMT_TX_STATUS_DROP  = 2
> +	HTT_MGMT_TX_STATUS_DROP  = 2,
> +	HTT_MGMT_TX_STATUS_TXFILT = 3 /* Seems to be logically similar to
> +					 RETRY failure. */
In that case the driver should probably set IEEE80211_TX_STAT_TX_FILTERED

- Felix

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath10k:  Fix mgmt tx status for 10.4.3 firmware.
  2016-02-29 21:50 ` greearb
@ 2016-06-16 13:57   ` Valo, Kalle
  -1 siblings, 0 replies; 6+ messages in thread
From: Valo, Kalle @ 2016-06-16 13:57 UTC (permalink / raw)
  To: greearb; +Cc: ath10k, linux-wireless

greearb@candelatech.com writes:

> From: Ben Greear <greearb@candelatech.com>
>
> When testing a 10.4.3 firmware in station mode, I notice that
> when the AP is powered down, the ath10k does not notice AP is gone
> because mgt frames get tx status of 3, which is not handled.
>
> It appears that status 3 means something similar to failed-retry.
>
> Treating it thus lets the station disconnect properly.
>
> Tested against a non-stock 10.4.3 firmware, but likely upstream
> firmware acts similarly in this case.
>
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
>
> This patch is against a heavily patched tree based on 4.4, hopefully
> it can be applied to upstream code w/out too much trouble.
>
> Someone should verify this on stock 10.4-ish firmware before applying.

Has anyone tested this with stock driver and stock firmware?

Full patch here:

https://patchwork.kernel.org/patch/8460831/

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath10k:  Fix mgmt tx status for 10.4.3 firmware.
@ 2016-06-16 13:57   ` Valo, Kalle
  0 siblings, 0 replies; 6+ messages in thread
From: Valo, Kalle @ 2016-06-16 13:57 UTC (permalink / raw)
  To: greearb; +Cc: linux-wireless, ath10k

greearb@candelatech.com writes:

> From: Ben Greear <greearb@candelatech.com>
>
> When testing a 10.4.3 firmware in station mode, I notice that
> when the AP is powered down, the ath10k does not notice AP is gone
> because mgt frames get tx status of 3, which is not handled.
>
> It appears that status 3 means something similar to failed-retry.
>
> Treating it thus lets the station disconnect properly.
>
> Tested against a non-stock 10.4.3 firmware, but likely upstream
> firmware acts similarly in this case.
>
> Signed-off-by: Ben Greear <greearb@candelatech.com>
> ---
>
> This patch is against a heavily patched tree based on 4.4, hopefully
> it can be applied to upstream code w/out too much trouble.
>
> Someone should verify this on stock 10.4-ish firmware before applying.

Has anyone tested this with stock driver and stock firmware?

Full patch here:

https://patchwork.kernel.org/patch/8460831/

-- 
Kalle Valo
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-06-16 13:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-29 21:50 [PATCH] ath10k: Fix mgmt tx status for 10.4.3 firmware greearb
2016-02-29 21:50 ` greearb
2016-03-01  9:26 ` Felix Fietkau
2016-03-01  9:26   ` Felix Fietkau
2016-06-16 13:57 ` Valo, Kalle
2016-06-16 13:57   ` Valo, Kalle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.