summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/main.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-05-01 17:20:35 +0200
committerRobert Marklund <robert.marklund@stericsson.com>2011-10-05 11:17:21 +0200
commitce2b94755da9c2a080057cd0beb10018274099b2 (patch)
tree10187e432b11e2a04e1fc06e9851d96b3d32cca4 /drivers/staging/cw1200/main.c
parent2f45b20f339a8e033acfb278239b5d96fcd4fac0 (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.c7
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);