* [RFC] mac80211: Advertise dtim period to all drivers
@ 2012-04-17 14:40 Piotr.Nakraszewicz
2012-04-17 15:23 ` Johannes Berg
0 siblings, 1 reply; 2+ messages in thread
From: Piotr.Nakraszewicz @ 2012-04-17 14:40 UTC (permalink / raw)
To: linux-wireless; +Cc: johannes
Hi,
Don't look for IEEE80211_HW_NEED_DTIM_PERIOD flag after association finishes and advertise DTIM period to all drivers.
Signed-off-by: Piotr Nakraszewicz <piotr.nakraszewicz@tieto.com>
---
include/net/mac80211.h | 4 +---
net/mac80211/mlme.c | 6 +-----
2 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index bebd89f..436267f 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -230,9 +230,7 @@ enum ieee80211_rssi_event {
* if the hardware cannot handle this it must set the
* IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag
* @dtim_period: num of beacons before the next DTIM, for beaconing,
- * valid in station mode only while @assoc is true and if also
- * requested by %IEEE80211_HW_NEED_DTIM_PERIOD (cf. also hw conf
- * @ps_dtim_period)
+ * valid in station mode only while @assoc is true
* @last_tsf: last beacon's/probe response's TSF timestamp (could be old
* as it may have been received during scanning long ago)
* @beacon_int: beacon interval
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c8836fa..39e0912 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1290,11 +1290,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
ieee80211_led_assoc(local, 1);
- if (local->hw.flags & IEEE80211_HW_NEED_DTIM_PERIOD)
- bss_conf->dtim_period = bss->dtim_period;
- else
- bss_conf->dtim_period = 0;
-
+ bss_conf->dtim_period = bss->dtim_period;
bss_conf->assoc = 1;
/* Tell the driver to monitor connection quality (if supported) */
--
1.7.0.4
IEEE80211_HW_NEED_DTIM_PERIOD description says:
* This device needs to know the DTIM period for the BSS before
* associating.
This patch is helpful for drivers that don't need to know DTIM period before association, but need it after association for power save reasons and can't accept roaming delays.
I can see that I am not the only one that had such problems:
http://article.gmane.org/gmane.linux.kernel.wireless.general/60959
http://article.gmane.org/gmane.linux.kernel.wireless.general/62266
Pozdrawiam / Best regards,
Piotr
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [RFC] mac80211: Advertise dtim period to all drivers
2012-04-17 14:40 [RFC] mac80211: Advertise dtim period to all drivers Piotr.Nakraszewicz
@ 2012-04-17 15:23 ` Johannes Berg
0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2012-04-17 15:23 UTC (permalink / raw)
To: Piotr.Nakraszewicz; +Cc: linux-wireless
On 4/17/2012 7:40 AM, Piotr.Nakraszewicz@tieto.com wrote:
> Hi,
>
> Don't look for IEEE80211_HW_NEED_DTIM_PERIOD flag after association finishes and advertise DTIM period to all drivers.
This is not possible. If you don't set the flag, we don't necessarily
*know* the DTIM period since we might not ever have received a beacon
from the AP.
johannes
> Signed-off-by: Piotr Nakraszewicz<piotr.nakraszewicz@tieto.com>
> ---
> include/net/mac80211.h | 4 +---
> net/mac80211/mlme.c | 6 +-----
> 2 files changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index bebd89f..436267f 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -230,9 +230,7 @@ enum ieee80211_rssi_event {
> * if the hardware cannot handle this it must set the
> * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag
> * @dtim_period: num of beacons before the next DTIM, for beaconing,
> - * valid in station mode only while @assoc is true and if also
> - * requested by %IEEE80211_HW_NEED_DTIM_PERIOD (cf. also hw conf
> - * @ps_dtim_period)
> + * valid in station mode only while @assoc is true
> * @last_tsf: last beacon's/probe response's TSF timestamp (could be old
> * as it may have been received during scanning long ago)
> * @beacon_int: beacon interval
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index c8836fa..39e0912 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -1290,11 +1290,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
>
> ieee80211_led_assoc(local, 1);
>
> - if (local->hw.flags& IEEE80211_HW_NEED_DTIM_PERIOD)
> - bss_conf->dtim_period = bss->dtim_period;
> - else
> - bss_conf->dtim_period = 0;
> -
> + bss_conf->dtim_period = bss->dtim_period;
> bss_conf->assoc = 1;
>
> /* Tell the driver to monitor connection quality (if supported) */
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-04-17 15:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-17 14:40 [RFC] mac80211: Advertise dtim period to all drivers Piotr.Nakraszewicz
2012-04-17 15:23 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).