wl1251: set ps rates like ti driver does
[pandora-kernel.git] / drivers / net / wireless / wl1251 / cmd.c
index c1b3abd..eaaebb7 100644 (file)
@@ -326,6 +326,28 @@ out:
        return ret;
 }
 
+int wl1251_cmd_disconnect(struct wl1251 *wl)
+{
+       struct wl1251_cmd_disconnect *cmd;
+       int ret;
+
+       wl1251_debug(DEBUG_CMD, "cmd disconnect");
+
+       cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+       if (!cmd)
+               return -ENOMEM;
+
+       cmd->rx_config_options = wl->rx_config;
+       cmd->rx_filter_options = 0;
+
+       ret = wl1251_cmd_send(wl, CMD_DISCONNECT, cmd, sizeof(*cmd));
+       if (ret < 0)
+               wl1251_error("cmd disconnect failed: %d", ret);
+
+       kfree(cmd);
+       return ret;
+}
+
 int wl1251_cmd_ps_mode(struct wl1251 *wl, u8 ps_mode)
 {
        struct wl1251_cmd_ps_params *ps_params = NULL;
@@ -343,7 +365,8 @@ int wl1251_cmd_ps_mode(struct wl1251 *wl, u8 ps_mode)
        ps_params->send_null_data = 1;
        ps_params->retries = 5;
        ps_params->hang_over_period = 128;
-       ps_params->null_data_rate = 1; /* 1 Mbps */
+       ps_params->null_data_rate = RATE_MASK_1MBPS | RATE_MASK_2MBPS |
+               RATE_MASK_5_5MBPS | RATE_MASK_11MBPS;
 
        ret = wl1251_cmd_send(wl, CMD_SET_PS_MODE, ps_params,
                              sizeof(*ps_params));