diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-05-01 17:20:35 +0200 |
---|---|---|
committer | Robert Marklund <robert.marklund@stericsson.com> | 2011-10-05 11:17:21 +0200 |
commit | ce2b94755da9c2a080057cd0beb10018274099b2 (patch) | |
tree | 10187e432b11e2a04e1fc06e9851d96b3d32cca4 /drivers/staging/cw1200/main.c | |
parent | 2f45b20f339a8e033acfb278239b5d96fcd4fac0 (diff) |
WLAN: CW1200: Power management is implemnted.
Power management is on in this commit. Device is configured
in quiescent mode when idle and in dose mode when operating.
BH always checks if device is awake before trying to access it.
Timeout for putting device back to sleep is 1 second after
last device access.
Verification with WSM_A21.05.0288 shows that device is staying
awake even in quiescent mode. Bug in firmware? To be investigated.
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/main.c')
-rw-r--r-- | drivers/staging/cw1200/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/main.c b/drivers/staging/cw1200/main.c index e1251b4e4e4..676b6264ecc 100644 --- a/drivers/staging/cw1200/main.c +++ b/drivers/staging/cw1200/main.c @@ -395,6 +395,10 @@ int cw1200_probe(const struct sbus_ops *sbus_ops, int err = -ENOMEM; struct ieee80211_hw *dev; struct cw1200_common *priv; + struct wsm_operational_mode mode = { + .power_mode = wsm_power_mode_quiescent, + .disableMoreFlagUsage = true, + }; dev = cw1200_init_common(sizeof(struct cw1200_common)); if (!dev) @@ -429,6 +433,9 @@ int cw1200_probe(const struct sbus_ops *sbus_ops, goto err3; } + /* Set low-power mode. */ + WARN_ON(wsm_set_operational_mode(priv, &mode)); + err = cw1200_register_common(dev); if (err) { priv->sbus_ops->irq_unsubscribe(priv->sbus_priv); |