* [PATCH 2/2] iwlwifi: add power management support -v2
@ 2007-11-16 23:06 Miguel Botón
[not found] ` <1ba2fa240711162215p30b8bc7fj9f36020378ff596a@mail.gmail.com>
0 siblings, 1 reply; 5+ messages in thread
From: Miguel Botón @ 2007-11-16 23:06 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: linux-wireless, linville, yi.zhu
This patch adds power management support in iwl3945 and iwl4965 drivers=
=2E
Signed-off-by: Miguel Bot=C3=B3n <mboton@gmail.com>
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/=
wireless/iwlwifi/iwl3945-base.c
index 9baf8de..5c7b422 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -6951,6 +7187,7 @@ static int iwl3945_mac_config(struct ieee80211_hw=
*hw, struct ieee80211_conf *co
struct iwl3945_priv *priv =3D hw->priv;
const struct iwl3945_channel_info *ch_info;
unsigned long flags;
+ int power_mode;
=20
mutex_lock(&priv->mutex);
IWL_DEBUG_MAC80211("enter to channel %d\n", conf->channel);
@@ -7001,6 +7238,23 @@ static int iwl3945_mac_config(struct ieee80211_h=
w *hw, struct ieee80211_conf *co
}
#endif
=20
+ if (conf->power_management_enable)
+ power_mode =3D IWL_POWER_BATTERY | IWL_POWER_ENABLED;
+ else
+ power_mode =3D IWL_POWER_AC;
+
+ if (priv->power_mode !=3D power_mode) {
+ int rc;
+
+ rc =3D iwl3945_send_power_mode(priv, power_mode);
+ if (rc) {
+ IWL_DEBUG_MAC80211("failed setting power mode.\n");
+ mutex_unlock(&priv->mutex);
+ return -EINVAL;
+ }
+ priv->power_mode =3D power_mode;
+ }
+
iwl3945_radio_kill_sw(priv, !conf->radio_enabled);
=20
if (!conf->radio_enabled) {
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/=
wireless/iwlwifi/iwl4965-base.c
index df011ea..8d303c5 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -7352,6 +7352,7 @@ static int iwl4965_mac_config(struct ieee80211_hw=
*hw, struct ieee80211_conf *co
struct iwl4965_priv *priv =3D hw->priv;
const struct iwl4965_channel_info *ch_info;
unsigned long flags;
+ int power_mode;
=20
mutex_lock(&priv->mutex);
IWL_DEBUG_MAC80211("enter to channel %d\n", conf->channel);
@@ -7414,6 +7415,23 @@ static int iwl4965_mac_config(struct ieee80211_h=
w *hw, struct ieee80211_conf *co
}
#endif
=20
+ if (conf->power_management_enable)
+ power_mode =3D IWL_POWER_BATTERY | IWL_POWER_ENABLED;
+ else
+ power_mode =3D IWL_POWER_AC;
+
+ if (priv->power_mode !=3D power_mode) {
+ int rc;
+
+ rc =3D iwl4965_send_power_mode(priv, power_mode);
+ if (rc) {
+ IWL_DEBUG_MAC80211("failed setting power mode.\n");
+ mutex_unlock(&priv->mutex);
+ return -EINVAL;
+ }
+ priv->power_mode =3D power_mode;
+ }
+
iwl4965_radio_kill_sw(priv, !conf->radio_enabled);
=20
if (!conf->radio_enabled) {
--=20
Miguel Bot=C3=B3n
-
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iwlwifi: add power management support -v2
[not found] ` <1ba2fa240711162215p30b8bc7fj9f36020378ff596a@mail.gmail.com>
@ 2007-11-26 16:18 ` Miguel Botón
2007-11-26 17:11 ` Tomas Winkler
0 siblings, 1 reply; 5+ messages in thread
From: Miguel Botón @ 2007-11-26 16:18 UTC (permalink / raw)
To: Tomas Winkler
Cc: Miguel Botón, Linux Kernel Mailing List, linux-wireless,
linville, yi.zhu
On Saturday 17 November 2007 07:15:05 Tomas Winkler wrote:
> Why power management shouldn't be enabled while in AC? The semantic o=
f this
> ioctls is quite unclear.
IWL_POWER_AC and IWL_POWER_BATTERY are just two power modes. IWL_POWER_=
AC=20
would be the default power mode when we're in AC (no power saving) and=20
IWL_POWER_BATTERY would be the default power mode when we're in battery=
=20
(power saving mode). That's why we set IWL_POWER_ENABLED flag with=20
IWL_POWER_BATTERY, because it is the only power mode that saves power.
We can change to IWL_POWER_BATTERY or IWL_POWER_AC in any moment.
This patch, depending if power management is enabled or not, sets which=
power=20
mode we should use, Then, it checks if we're already using this mode or=
not.
--=20
Miguel Bot=F3n
-
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iwlwifi: add power management support -v2
2007-11-26 16:18 ` Miguel Botón
@ 2007-11-26 17:11 ` Tomas Winkler
2007-11-26 17:14 ` Dan Williams
0 siblings, 1 reply; 5+ messages in thread
From: Tomas Winkler @ 2007-11-26 17:11 UTC (permalink / raw)
To: Miguel Botón
Cc: Linux Kernel Mailing List, linux-wireless, linville, yi.zhu
On Nov 26, 2007 6:18 PM, Miguel Bot=F3n <mboton.lkml@gmail.com> wrote:
>
> On Saturday 17 November 2007 07:15:05 Tomas Winkler wrote:
> > Why power management shouldn't be enabled while in AC? The semantic=
of this
> > ioctls is quite unclear.
>
I
> IWL_POWER_AC and IWL_POWER_BATTERY are just two power modes. IWL_POWE=
R_AC
> would be the default power mode when we're in AC (no power saving) an=
d
> IWL_POWER_BATTERY would be the default power mode when we're in batte=
ry
> (power saving mode). That's why we set IWL_POWER_ENABLED flag with
> IWL_POWER_BATTERY, because it is the only power mode that saves power=
=2E
>
> We can change to IWL_POWER_BATTERY or IWL_POWER_AC in any moment.
>
> This patch, depending if power management is enabled or not, sets whi=
ch power
> mode we should use, Then, it checks if we're already using this mode =
or not.
>
I'm not sure who introduced this names (lazy to look to history) but
that's very misleading. Nothing says that while in
AC we cannot do power saving and vice versa. This naming is scattered
all over the code, there should be only one place where AC and BATTERY
are translated into appropriate (maybe configurable) power levels. We
have 5 power levels defined for iwlwifi.
Tomas
> --
> Miguel Bot=F3n
>
-
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iwlwifi: add power management support -v2
2007-11-26 17:11 ` Tomas Winkler
@ 2007-11-26 17:14 ` Dan Williams
2007-11-26 17:33 ` Tomas Winkler
0 siblings, 1 reply; 5+ messages in thread
From: Dan Williams @ 2007-11-26 17:14 UTC (permalink / raw)
To: Tomas Winkler
Cc: Miguel Botón, Linux Kernel Mailing List, linux-wireless,
linville, yi.zhu
On Mon, 2007-11-26 at 19:11 +0200, Tomas Winkler wrote:
> On Nov 26, 2007 6:18 PM, Miguel Bot=C3=B3n <mboton.lkml@gmail.com> wr=
ote:
> >
> > On Saturday 17 November 2007 07:15:05 Tomas Winkler wrote:
> > > Why power management shouldn't be enabled while in AC? The semant=
ic of this
> > > ioctls is quite unclear.
> >
> I
> > IWL_POWER_AC and IWL_POWER_BATTERY are just two power modes. IWL_PO=
WER_AC
> > would be the default power mode when we're in AC (no power saving) =
and
> > IWL_POWER_BATTERY would be the default power mode when we're in bat=
tery
> > (power saving mode). That's why we set IWL_POWER_ENABLED flag with
> > IWL_POWER_BATTERY, because it is the only power mode that saves pow=
er.
> >
> > We can change to IWL_POWER_BATTERY or IWL_POWER_AC in any moment.
> >
> > This patch, depending if power management is enabled or not, sets w=
hich power
> > mode we should use, Then, it checks if we're already using this mod=
e or not.
> >
> I'm not sure who introduced this names (lazy to look to history) but
> that's very misleading. Nothing says that while in
> AC we cannot do power saving and vice versa. This naming is scattered
> all over the code, there should be only one place where AC and BATTER=
Y
> are translated into appropriate (maybe configurable) power levels. W=
e
> have 5 power levels defined for iwlwifi.
At some point everyone needs to standardize on power levels so that
userland has a hope of mapping the right state to the right power level
in the driver. Otherwise, we get into a situation where broadcom power
levels don't map the same way iwl powerlevels do, and then we can't eve=
r
do the right thing.
dan
> Tomas
>=20
> > --
> > Miguel Bot=C3=B3n
> >
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wirel=
ess" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iwlwifi: add power management support -v2
2007-11-26 17:14 ` Dan Williams
@ 2007-11-26 17:33 ` Tomas Winkler
0 siblings, 0 replies; 5+ messages in thread
From: Tomas Winkler @ 2007-11-26 17:33 UTC (permalink / raw)
To: Dan Williams
Cc: Miguel Botón, Linux Kernel Mailing List, linux-wireless,
linville, yi.zhu
>
> At some point everyone needs to standardize on power levels so that
> userland has a hope of mapping the right state to the right power lev=
el
> in the driver. Otherwise, we get into a situation where broadcom pow=
er
> levels don't map the same way iwl powerlevels do, and then we can't e=
ver
> do the right thing.
>
Agree, these are just misleading names IMHO.
> dan
>
> > Tomas
>
> >
> > > --
> > > Miguel Bot=F3n
> > >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-wir=
eless" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-11-26 17:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-16 23:06 [PATCH 2/2] iwlwifi: add power management support -v2 Miguel Botón
[not found] ` <1ba2fa240711162215p30b8bc7fj9f36020378ff596a@mail.gmail.com>
2007-11-26 16:18 ` Miguel Botón
2007-11-26 17:11 ` Tomas Winkler
2007-11-26 17:14 ` Dan Williams
2007-11-26 17:33 ` Tomas Winkler
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).