git.openpandora.org
/
pandora-wifi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
wl1251: Prepare for idle mode support
[pandora-wifi.git]
/
drivers
/
net
/
wireless
/
wl12xx
/
wl1251_ps.c
diff --git
a/drivers/net/wireless/wl12xx/wl1251_ps.c
b/drivers/net/wireless/wl12xx/wl1251_ps.c
index
4e4c661
..
7f14467
100644
(file)
--- a/
drivers/net/wireless/wl12xx/wl1251_ps.c
+++ b/
drivers/net/wireless/wl12xx/wl1251_ps.c
@@
-41,7
+41,7
@@
void wl1251_elp_work(struct work_struct *work)
mutex_lock(&wl->mutex);
mutex_lock(&wl->mutex);
- if (wl->elp ||
!wl->psm
)
+ if (wl->elp ||
wl->station_mode == STATION_ACTIVE_MODE
)
goto out;
wl1251_debug(DEBUG_PSM, "chip to elp");
goto out;
wl1251_debug(DEBUG_PSM, "chip to elp");
@@
-59,7
+59,7
@@
void wl1251_ps_elp_sleep(struct wl1251 *wl)
{
unsigned long delay;
{
unsigned long delay;
- if (wl->
psm
) {
+ if (wl->
station_mode != STATION_ACTIVE_MODE
) {
delay = msecs_to_jiffies(ELP_ENTRY_DELAY);
ieee80211_queue_delayed_work(wl->hw, &wl->elp_work, delay);
}
delay = msecs_to_jiffies(ELP_ENTRY_DELAY);
ieee80211_queue_delayed_work(wl->hw, &wl->elp_work, delay);
}
@@
-119,7
+119,7
@@
err:
return ret;
}
return ret;
}
-int wl1251_ps_set_mode(struct wl1251 *wl, enum wl1251_
cmd_ps
_mode mode)
+int wl1251_ps_set_mode(struct wl1251 *wl, enum wl1251_
station
_mode mode)
{
int ret;
{
int ret;
@@
-143,15
+143,13
@@
int wl1251_ps_set_mode(struct wl1251 *wl, enum wl1251_cmd_ps_mode mode)
if (ret < 0)
return ret;
if (ret < 0)
return ret;
- ret = wl1251_cmd_ps_mode(wl,
STATION
_POWER_SAVE_MODE);
+ ret = wl1251_cmd_ps_mode(wl,
CHIP
_POWER_SAVE_MODE);
if (ret < 0)
return ret;
ret = wl1251_acx_sleep_auth(wl, WL1251_PSM_ELP);
if (ret < 0)
return ret;
if (ret < 0)
return ret;
ret = wl1251_acx_sleep_auth(wl, WL1251_PSM_ELP);
if (ret < 0)
return ret;
-
- wl->psm = 1;
break;
case STATION_ACTIVE_MODE:
default:
break;
case STATION_ACTIVE_MODE:
default:
@@
-178,13
+176,13
@@
int wl1251_ps_set_mode(struct wl1251 *wl, enum wl1251_cmd_ps_mode mode)
if (ret < 0)
return ret;
if (ret < 0)
return ret;
- ret = wl1251_cmd_ps_mode(wl,
STATION
_ACTIVE_MODE);
+ ret = wl1251_cmd_ps_mode(wl,
CHIP
_ACTIVE_MODE);
if (ret < 0)
return ret;
if (ret < 0)
return ret;
- wl->psm = 0;
break;
}
break;
}
+ wl->station_mode = mode;
return ret;
}
return ret;
}