wl12xx: pass the wake up condition when configuring the wake up event
authorLuciano Coelho <luciano.coelho@nokia.com>
Fri, 12 Jun 2009 11:15:46 +0000 (14:15 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 18:57:46 +0000 (14:57 -0400)
Changed the function wl12xx_acx_wake_up_conditions() so that it receives an
argument with the actual wake up condition, instead of having
WAKE_UP_EVENT_DTIM_BITMAP hardcoded.  This is needed because we have to use
different conditions in 1271.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/acx.c
drivers/net/wireless/wl12xx/acx.h
drivers/net/wireless/wl12xx/cmd.c

index d0daf69558f00a1e453e55b0e58c042a82ec6f3b..a6b894573f084c1864d26dd0324b47606a1ce021 100644 (file)
@@ -96,7 +96,8 @@ out:
        return ret;
 }
 
-int wl12xx_acx_wake_up_conditions(struct wl12xx *wl, u8 listen_interval)
+int wl12xx_acx_wake_up_conditions(struct wl12xx *wl, u8 wake_up_event,
+                                 u8 listen_interval)
 {
        struct acx_wake_up_condition *wake_up;
        int ret;
@@ -109,7 +110,7 @@ int wl12xx_acx_wake_up_conditions(struct wl12xx *wl, u8 listen_interval)
                goto out;
        }
 
-       wake_up->wake_up_event = WAKE_UP_EVENT_DTIM_BITMAP;
+       wake_up->wake_up_event = wake_up_event;
        wake_up->listen_interval = listen_interval;
 
        ret = wl12xx_cmd_configure(wl, ACX_WAKE_UP_CONDITIONS,
index 549e537d2e6e81df1918f04a54472b8b62c9b8c1..92e724875ade86cde726ded846057f41b9b72619 100644 (file)
@@ -1112,7 +1112,8 @@ int wl12xx_acx_frame_rates(struct wl12xx *wl, u8 ctrl_rate, u8 ctrl_mod,
                           u8 mgt_rate, u8 mgt_mod);
 int wl12xx_acx_station_id(struct wl12xx *wl);
 int wl12xx_acx_default_key(struct wl12xx *wl, u8 key_id);
-int wl12xx_acx_wake_up_conditions(struct wl12xx *wl, u8 listen_interval);
+int wl12xx_acx_wake_up_conditions(struct wl12xx *wl, u8 wake_up_event,
+                                 u8 listen_interval);
 int wl12xx_acx_sleep_auth(struct wl12xx *wl, u8 sleep_auth);
 int wl12xx_acx_fw_version(struct wl12xx *wl, char *buf, size_t len);
 int wl12xx_acx_tx_power(struct wl12xx *wl, int power);
index 0a02cdde935bf98d54682f14092fad38238b98d9..d98941a10897269e4f3ede0860027bceadfd3f81 100644 (file)
@@ -346,7 +346,8 @@ int wl12xx_cmd_ps_mode(struct wl12xx *wl, u8 ps_mode)
        int ret = 0;
 
        /* FIXME: this should be in ps.c */
-       ret = wl12xx_acx_wake_up_conditions(wl, wl->listen_int);
+       ret = wl12xx_acx_wake_up_conditions(wl, WAKE_UP_EVENT_DTIM_BITMAP,
+                                           wl->listen_int);
        if (ret < 0) {
                wl12xx_error("couldn't set wake up conditions");
                goto out;