All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Seth Forshee <seth.forshee@canonical.com>
Cc: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org,
	brcm80211-dev-list@broadcom.com,
	"John W. Linville" <linville@tuxdriver.com>,
	Stefano Brivio <stefano.brivio@polimi.it>,
	Arend van Spriel <arend@broadcom.com>
Subject: [RFC PATCH 3/8] mac80211: Add powersave module
Date: Tue, 17 Dec 2013 09:16:20 +0100	[thread overview]
Message-ID: <1387268180.4749.8.camel@jlt4.sipsolutions.net> (raw)
In-Reply-To: <1387231260-2849-4-git-send-email-seth.forshee@canonical.com> (sfid-20131216_230109_675659_8D614BB1)

On Mon, 2013-12-16 at 16:00 -0600, Seth Forshee wrote:

> + * When @ps_mode == %IEEE80211_VIF_PS_DOZE or the %IEEE80211_CONF_PS flag is
> + * set it means that the powersave mode defined in IEEE 802.11-2007 section
> + * 11.2 is enabled. 

We might consider updating the references to 802.11-2012 since
everything shuffled around.

> +++ b/net/mac80211/ieee80211_i.h
> @@ -1180,6 +1180,7 @@ struct ieee80211_local {
>  #endif /* CONFIG_MAC80211_DEBUG_COUNTERS */
>  
> 
> +	int awake_cnt;

How will the locking for this possibly work? :)

> +#include <linux/nl80211.h>
> +#include <linux/pm_qos.h>
> +#include <net/mac80211.h>
> +#include "ieee80211_i.h"
> +#include "driver-ops.h"
> +
> +/*
> + * Sets the PS parameters in ieee80211_conf. Uses parameters from the first
> + * managed interface found which has power save enabled, or failing that
> + * the parameters from an arbitrary managed interface are used.
> + */
> +static void ieee80211_set_ps_params(struct ieee80211_local *local) { struct
> +	ieee80211_sub_if_data *sdata, *ps_sdata = NULL;

what happened to indentation here??

> +	list_for_each_entry(sdata, &local->interfaces, list) {

locking?

> +	if (ps_sdata) {
> +		struct ieee80211_vif *vif = &sdata->vif;

add a newline here please

> +static void __ieee80211_vif_set_ps_mode(struct ieee80211_sub_if_data *sdata,
> +					enum ieee80211_vif_ps_mode mode)
> +{
> +	struct ieee80211_local *local = sdata->local;
> +
> +	if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_MONITOR))
> +		return;
> +
> +	switch (mode) {
> +	case IEEE80211_VIF_PS_INACTIVE:
> +	case IEEE80211_VIF_PS_DOZE:
> +		if (sdata->vif.ps_mode > IEEE80211_VIF_PS_DOZE &&
> +		    !WARN_ON(local->awake_cnt <= 0))
> +			local->awake_cnt--;

locking?

johannes

WARNING: multiple messages have this Message-ID (diff)
From: Johannes Berg <johannes@sipsolutions.net>
To: Seth Forshee <seth.forshee@canonical.com>
Cc: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org,
	brcm80211-dev-list@broadcom.com,
	"John W. Linville" <linville@tuxdriver.com>,
	Stefano Brivio <stefano.brivio@polimi.it>,
	Arend van Spriel <arend@broadcom.com>
Subject: Re: [RFC PATCH 3/8] mac80211: Add powersave module
Date: Tue, 17 Dec 2013 09:16:20 +0100	[thread overview]
Message-ID: <1387268180.4749.8.camel@jlt4.sipsolutions.net> (raw)
In-Reply-To: <1387231260-2849-4-git-send-email-seth.forshee@canonical.com> (sfid-20131216_230109_675659_8D614BB1)

On Mon, 2013-12-16 at 16:00 -0600, Seth Forshee wrote:

> + * When @ps_mode == %IEEE80211_VIF_PS_DOZE or the %IEEE80211_CONF_PS flag is
> + * set it means that the powersave mode defined in IEEE 802.11-2007 section
> + * 11.2 is enabled. 

We might consider updating the references to 802.11-2012 since
everything shuffled around.

> +++ b/net/mac80211/ieee80211_i.h
> @@ -1180,6 +1180,7 @@ struct ieee80211_local {
>  #endif /* CONFIG_MAC80211_DEBUG_COUNTERS */
>  
> 
> +	int awake_cnt;

How will the locking for this possibly work? :)

> +#include <linux/nl80211.h>
> +#include <linux/pm_qos.h>
> +#include <net/mac80211.h>
> +#include "ieee80211_i.h"
> +#include "driver-ops.h"
> +
> +/*
> + * Sets the PS parameters in ieee80211_conf. Uses parameters from the first
> + * managed interface found which has power save enabled, or failing that
> + * the parameters from an arbitrary managed interface are used.
> + */
> +static void ieee80211_set_ps_params(struct ieee80211_local *local) { struct
> +	ieee80211_sub_if_data *sdata, *ps_sdata = NULL;

what happened to indentation here??

> +	list_for_each_entry(sdata, &local->interfaces, list) {

locking?

> +	if (ps_sdata) {
> +		struct ieee80211_vif *vif = &sdata->vif;

add a newline here please

> +static void __ieee80211_vif_set_ps_mode(struct ieee80211_sub_if_data *sdata,
> +					enum ieee80211_vif_ps_mode mode)
> +{
> +	struct ieee80211_local *local = sdata->local;
> +
> +	if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_MONITOR))
> +		return;
> +
> +	switch (mode) {
> +	case IEEE80211_VIF_PS_INACTIVE:
> +	case IEEE80211_VIF_PS_DOZE:
> +		if (sdata->vif.ps_mode > IEEE80211_VIF_PS_DOZE &&
> +		    !WARN_ON(local->awake_cnt <= 0))
> +			local->awake_cnt--;

locking?

johannes


  reply	other threads:[~2013-12-17  8:16 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-16 22:00 [RFC/RFT] mac80211 powersave rework Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 1/8] mac80211: Move dynamic PS data out of common code Seth Forshee
2013-12-17  8:08   ` Johannes Berg
2013-12-17  8:08     ` Johannes Berg
2013-12-17 12:37     ` Seth Forshee
2013-12-17 12:37       ` Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 2/8] mac80211: Add per-interface powersave states and parameters Seth Forshee
2013-12-17  8:11   ` Johannes Berg
2013-12-17  8:11     ` Johannes Berg
2013-12-17 13:12     ` Seth Forshee
2013-12-17 13:12       ` Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 3/8] mac80211: Add powersave module Seth Forshee
2013-12-17  8:16   ` Johannes Berg [this message]
2013-12-17  8:16     ` Johannes Berg
2013-12-17 13:31     ` Seth Forshee
2013-12-17 13:31       ` Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 4/8] mac80211: Use PS module for managed mode powersave Seth Forshee
2013-12-17  8:25   ` Johannes Berg
2013-12-17  8:25     ` Johannes Berg
2013-12-17 14:09     ` Seth Forshee
2013-12-17 14:09       ` Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 5/8] mac80211: Don't start dynamic PS timer when leaving off-channel if still scanning Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 6/8] brcmsmac: Set MCTL_HPS when PM should be set Seth Forshee
2013-12-16 22:00 ` [RFC PATCH 7/8] b43: Allow HWPS state to be changed Seth Forshee
2013-12-16 22:01 ` [RFC PATCH 8/8] b43: Set B43_MACCTL_HWPS when PM should be set Seth Forshee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1387268180.4749.8.camel@jlt4.sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=arend@broadcom.com \
    --cc=b43-dev@lists.infradead.org \
    --cc=brcm80211-dev-list@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=seth.forshee@canonical.com \
    --cc=stefano.brivio@polimi.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.