diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/cmd.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c index f3d332d11f81..c9a1fa523274 100644 --- a/drivers/net/wireless/wl12xx/cmd.c +++ b/drivers/net/wireless/wl12xx/cmd.c | |||
@@ -1234,3 +1234,87 @@ out_free: | |||
1234 | out: | 1234 | out: |
1235 | return ret; | 1235 | return ret; |
1236 | } | 1236 | } |
1237 | |||
1238 | int wl12xx_cmd_config_fwlog(struct wl1271 *wl) | ||
1239 | { | ||
1240 | struct wl12xx_cmd_config_fwlog *cmd; | ||
1241 | int ret = 0; | ||
1242 | |||
1243 | wl1271_debug(DEBUG_CMD, "cmd config firmware logger"); | ||
1244 | |||
1245 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
1246 | if (!cmd) { | ||
1247 | ret = -ENOMEM; | ||
1248 | goto out; | ||
1249 | } | ||
1250 | |||
1251 | cmd->logger_mode = wl->conf.fwlog.mode; | ||
1252 | cmd->log_severity = wl->conf.fwlog.severity; | ||
1253 | cmd->timestamp = wl->conf.fwlog.timestamp; | ||
1254 | cmd->output = wl->conf.fwlog.output; | ||
1255 | cmd->threshold = wl->conf.fwlog.threshold; | ||
1256 | |||
1257 | ret = wl1271_cmd_send(wl, CMD_CONFIG_FWLOGGER, cmd, sizeof(*cmd), 0); | ||
1258 | if (ret < 0) { | ||
1259 | wl1271_error("failed to send config firmware logger command"); | ||
1260 | goto out_free; | ||
1261 | } | ||
1262 | |||
1263 | out_free: | ||
1264 | kfree(cmd); | ||
1265 | |||
1266 | out: | ||
1267 | return ret; | ||
1268 | } | ||
1269 | |||
1270 | int wl12xx_cmd_start_fwlog(struct wl1271 *wl) | ||
1271 | { | ||
1272 | struct wl12xx_cmd_start_fwlog *cmd; | ||
1273 | int ret = 0; | ||
1274 | |||
1275 | wl1271_debug(DEBUG_CMD, "cmd start firmware logger"); | ||
1276 | |||
1277 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
1278 | if (!cmd) { | ||
1279 | ret = -ENOMEM; | ||
1280 | goto out; | ||
1281 | } | ||
1282 | |||
1283 | ret = wl1271_cmd_send(wl, CMD_START_FWLOGGER, cmd, sizeof(*cmd), 0); | ||
1284 | if (ret < 0) { | ||
1285 | wl1271_error("failed to send start firmware logger command"); | ||
1286 | goto out_free; | ||
1287 | } | ||
1288 | |||
1289 | out_free: | ||
1290 | kfree(cmd); | ||
1291 | |||
1292 | out: | ||
1293 | return ret; | ||
1294 | } | ||
1295 | |||
1296 | int wl12xx_cmd_stop_fwlog(struct wl1271 *wl) | ||
1297 | { | ||
1298 | struct wl12xx_cmd_stop_fwlog *cmd; | ||
1299 | int ret = 0; | ||
1300 | |||
1301 | wl1271_debug(DEBUG_CMD, "cmd stop firmware logger"); | ||
1302 | |||
1303 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
1304 | if (!cmd) { | ||
1305 | ret = -ENOMEM; | ||
1306 | goto out; | ||
1307 | } | ||
1308 | |||
1309 | ret = wl1271_cmd_send(wl, CMD_STOP_FWLOGGER, cmd, sizeof(*cmd), 0); | ||
1310 | if (ret < 0) { | ||
1311 | wl1271_error("failed to send stop firmware logger command"); | ||
1312 | goto out_free; | ||
1313 | } | ||
1314 | |||
1315 | out_free: | ||
1316 | kfree(cmd); | ||
1317 | |||
1318 | out: | ||
1319 | return ret; | ||
1320 | } | ||