Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup
@ 2016-07-11 13:04 Felix Fietkau
  2016-07-11 13:04 ` [PATCH ath9k-txq-work 2/2] ath9k: call ieee80211_sta_set_buffered if frames are pending Felix Fietkau
  2016-07-11 13:52 ` [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Toke Høiland-Jørgensen
  0 siblings, 2 replies; 4+ messages in thread
From: Felix Fietkau @ 2016-07-11 13:04 UTC (permalink / raw)
  To: toke; +Cc: linux-wireless

drv_wake_tx_queue will only call into the driver if there are frames
pending in the mac80211 queue. the driver needs to take care of its own
queued frames

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 drivers/net/wireless/ath/ath9k/xmit.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index b0a6fd2..b3521c3 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1582,6 +1582,10 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an)
 
 		ath_txq_lock(sc, txq);
 		tid->clear_ps_filter = true;
+		if (ath_tid_has_buffered(tid)) {
+			ath_tx_queue_tid(sc, txq, tid);
+			ath_txq_schedule(sc, txq);
+		}
 		ath_txq_unlock_complete(sc, txq);
 	}
 }
-- 
2.8.4


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

* [PATCH ath9k-txq-work 2/2] ath9k: call ieee80211_sta_set_buffered if frames are pending
  2016-07-11 13:04 [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Felix Fietkau
@ 2016-07-11 13:04 ` Felix Fietkau
  2016-07-11 13:52 ` [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Toke Høiland-Jørgensen
  1 sibling, 0 replies; 4+ messages in thread
From: Felix Fietkau @ 2016-07-11 13:04 UTC (permalink / raw)
  To: toke; +Cc: linux-wireless

mac80211 needs to know about driver queued frames

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 drivers/net/wireless/ath/ath9k/xmit.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index b3521c3..18c7443 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1561,6 +1561,9 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc,
 			continue;
 		}
 
+		if (!skb_queue_empty(&tid->retry_q))
+			ieee80211_sta_set_buffered(sta, tid->tidno, true);
+
 		list_del_init(&tid->list);
 
 		ath_txq_unlock(sc, txq);
-- 
2.8.4


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

* Re: [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup
  2016-07-11 13:04 [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Felix Fietkau
  2016-07-11 13:04 ` [PATCH ath9k-txq-work 2/2] ath9k: call ieee80211_sta_set_buffered if frames are pending Felix Fietkau
@ 2016-07-11 13:52 ` Toke Høiland-Jørgensen
  2016-07-11 13:55   ` Felix Fietkau
  1 sibling, 1 reply; 4+ messages in thread
From: Toke Høiland-Jørgensen @ 2016-07-11 13:52 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless

Felix Fietkau <nbd@nbd.name> writes:

> drv_wake_tx_queue will only call into the driver if there are frames
> pending in the mac80211 queue. the driver needs to take care of its own
> queued frames

Thanks, makes sense. What's the proper etiquette here? Do I roll these
up into a v4 (possibly with other changes that show up along the way),
or do they go in as separate patches?

-Toke

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

* Re: [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup
  2016-07-11 13:52 ` [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Toke Høiland-Jørgensen
@ 2016-07-11 13:55   ` Felix Fietkau
  0 siblings, 0 replies; 4+ messages in thread
From: Felix Fietkau @ 2016-07-11 13:55 UTC (permalink / raw)
  To: Toke Høiland-Jørgensen; +Cc: linux-wireless

On 2016-07-11 15:52, Toke Høiland-Jørgensen wrote:
> Felix Fietkau <nbd@nbd.name> writes:
> 
>> drv_wake_tx_queue will only call into the driver if there are frames
>> pending in the mac80211 queue. the driver needs to take care of its own
>> queued frames
> 
> Thanks, makes sense. What's the proper etiquette here? Do I roll these
> up into a v4 (possibly with other changes that show up along the way),
> or do they go in as separate patches?
You need to roll them in, otherwise your patch is going to cause
regressions when it gets merged.

- Felix

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

end of thread, other threads:[~2016-07-11 13:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-11 13:04 [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Felix Fietkau
2016-07-11 13:04 ` [PATCH ath9k-txq-work 2/2] ath9k: call ieee80211_sta_set_buffered if frames are pending Felix Fietkau
2016-07-11 13:52 ` [PATCH ath9k-txq-work 1/2] ath9k: fix powersave wakeup Toke Høiland-Jørgensen
2016-07-11 13:55   ` Felix Fietkau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox