|
@@ -204,11 +204,11 @@ out:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-int wl1251_cmd_data_path(struct wl1251 *wl, u8 channel, bool enable)
|
|
|
+int wl1251_cmd_data_path_rx(struct wl1251 *wl, u8 channel, bool enable)
|
|
|
{
|
|
|
struct cmd_enabledisable_path *cmd;
|
|
|
int ret;
|
|
|
- u16 cmd_rx, cmd_tx;
|
|
|
+ u16 cmd_rx;
|
|
|
|
|
|
wl1251_debug(DEBUG_CMD, "cmd data path");
|
|
|
|
|
@@ -220,13 +220,10 @@ int wl1251_cmd_data_path(struct wl1251 *wl, u8 channel, bool enable)
|
|
|
|
|
|
cmd->channel = channel;
|
|
|
|
|
|
- if (enable) {
|
|
|
+ if (enable)
|
|
|
cmd_rx = CMD_ENABLE_RX;
|
|
|
- cmd_tx = CMD_ENABLE_TX;
|
|
|
- } else {
|
|
|
+ else
|
|
|
cmd_rx = CMD_DISABLE_RX;
|
|
|
- cmd_tx = CMD_DISABLE_TX;
|
|
|
- }
|
|
|
|
|
|
ret = wl1251_cmd_send(wl, cmd_rx, cmd, sizeof(*cmd));
|
|
|
if (ret < 0) {
|
|
@@ -238,17 +235,38 @@ int wl1251_cmd_data_path(struct wl1251 *wl, u8 channel, bool enable)
|
|
|
wl1251_debug(DEBUG_BOOT, "rx %s cmd channel %d",
|
|
|
enable ? "start" : "stop", channel);
|
|
|
|
|
|
+out:
|
|
|
+ kfree(cmd);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
+int wl1251_cmd_data_path_tx(struct wl1251 *wl, u8 channel, bool enable)
|
|
|
+{
|
|
|
+ struct cmd_enabledisable_path *cmd;
|
|
|
+ int ret;
|
|
|
+ u16 cmd_tx;
|
|
|
+
|
|
|
+ wl1251_debug(DEBUG_CMD, "cmd data path");
|
|
|
+
|
|
|
+ cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
|
|
|
+ if (!cmd)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
+ cmd->channel = channel;
|
|
|
+
|
|
|
+ if (enable)
|
|
|
+ cmd_tx = CMD_ENABLE_TX;
|
|
|
+ else
|
|
|
+ cmd_tx = CMD_DISABLE_TX;
|
|
|
+
|
|
|
ret = wl1251_cmd_send(wl, cmd_tx, cmd, sizeof(*cmd));
|
|
|
- if (ret < 0) {
|
|
|
+ if (ret < 0)
|
|
|
wl1251_error("tx %s cmd for channel %d failed",
|
|
|
enable ? "start" : "stop", channel);
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
- wl1251_debug(DEBUG_BOOT, "tx %s cmd channel %d",
|
|
|
- enable ? "start" : "stop", channel);
|
|
|
+ else
|
|
|
+ wl1251_debug(DEBUG_BOOT, "tx %s cmd channel %d",
|
|
|
+ enable ? "start" : "stop", channel);
|
|
|
|
|
|
-out:
|
|
|
kfree(cmd);
|
|
|
return ret;
|
|
|
}
|