aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/cmdresp.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-07-27 16:08:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-27 15:14:12 -0400
commit0bb6408777227fcf5136e28aec29438606d5ac82 (patch)
treecf2d146d310d3d613b2ff3d9bf9cabe1de3d6ece /drivers/net/wireless/libertas/cmdresp.c
parent8196112859a6742b9e25ca5fde972a7f41f06cc3 (diff)
libertas: convert PS_MODE to a direct command
Powersave looks like it got broken at some point but we'll fix that up when the command submission stuff is more understandable, which this series helps to do. That said, this patch should not further break powersave. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmdresp.c')
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index a4e147a11d0c..83283b8efd62 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -49,7 +49,7 @@ void lbs_mac_event_disconnected(struct lbs_private *priv)
49 if (priv->psstate != PS_STATE_FULL_POWER) { 49 if (priv->psstate != PS_STATE_FULL_POWER) {
50 /* make firmware to exit PS mode */ 50 /* make firmware to exit PS mode */
51 lbs_deb_cmd("disconnected, so exit PS mode\n"); 51 lbs_deb_cmd("disconnected, so exit PS mode\n");
52 lbs_ps_wakeup(priv, 0); 52 lbs_set_ps_mode(priv, PS_MODE_ACTION_EXIT_PS, false);
53 } 53 }
54 lbs_deb_leave(LBS_DEB_ASSOC); 54 lbs_deb_leave(LBS_DEB_ASSOC);
55} 55}
@@ -132,9 +132,9 @@ int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len)
132 * lbs_execute_next_command(). 132 * lbs_execute_next_command().
133 */ 133 */
134 if (priv->wdev->iftype == NL80211_IFTYPE_MONITOR && 134 if (priv->wdev->iftype == NL80211_IFTYPE_MONITOR &&
135 action == CMD_SUBCMD_ENTER_PS) 135 action == PS_MODE_ACTION_ENTER_PS)
136 priv->psmode = LBS802_11POWERMODECAM; 136 priv->psmode = LBS802_11POWERMODECAM;
137 } else if (action == CMD_SUBCMD_ENTER_PS) { 137 } else if (action == PS_MODE_ACTION_ENTER_PS) {
138 priv->needtowakeup = 0; 138 priv->needtowakeup = 0;
139 priv->psstate = PS_STATE_AWAKE; 139 priv->psstate = PS_STATE_AWAKE;
140 140
@@ -149,11 +149,12 @@ int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len)
149 149
150 spin_unlock_irqrestore(&priv->driver_lock, flags); 150 spin_unlock_irqrestore(&priv->driver_lock, flags);
151 mutex_unlock(&priv->lock); 151 mutex_unlock(&priv->lock);
152 lbs_ps_wakeup(priv, 0); 152 lbs_set_ps_mode(priv, PS_MODE_ACTION_EXIT_PS,
153 false);
153 mutex_lock(&priv->lock); 154 mutex_lock(&priv->lock);
154 spin_lock_irqsave(&priv->driver_lock, flags); 155 spin_lock_irqsave(&priv->driver_lock, flags);
155 } 156 }
156 } else if (action == CMD_SUBCMD_EXIT_PS) { 157 } else if (action == PS_MODE_ACTION_EXIT_PS) {
157 priv->needtowakeup = 0; 158 priv->needtowakeup = 0;
158 priv->psstate = PS_STATE_FULL_POWER; 159 priv->psstate = PS_STATE_FULL_POWER;
159 lbs_deb_host("CMD_RESP: EXIT_PS command response\n"); 160 lbs_deb_host("CMD_RESP: EXIT_PS command response\n");
@@ -291,7 +292,7 @@ int lbs_process_event(struct lbs_private *priv, u32 event)
291 * in lbs_ps_wakeup() 292 * in lbs_ps_wakeup()
292 */ 293 */
293 lbs_deb_cmd("waking up ...\n"); 294 lbs_deb_cmd("waking up ...\n");
294 lbs_ps_wakeup(priv, 0); 295 lbs_set_ps_mode(priv, PS_MODE_ACTION_EXIT_PS, false);
295 } 296 }
296 break; 297 break;
297 298