* Copyright (c) 2000-2005 ZyDAS Technology Corporation
* Copyright (c) 2007-2009 Atheros Communications, Inc.
* Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
- * Copyright 2009, 2010 Christian Lamparter <chunkeey@googlemail.com>
+ * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
break;
case CARL9170_CMD_SWRST:
+#ifdef CONFIG_CARL9170FW_FW_MAC_RESET
/*
* Command has no payload, so the response
* has no payload either.
* resp->hdr.len = 0;
*/
fw.wlan.mac_reset = CARL9170_MAC_RESET_FORCE;
+#endif /* CONFIG_CARL9170FW_FW_MAC_RESET */
break;
case CARL9170_CMD_REBOOT:
read_tsf((uint32_t *)resp->tsf.tsf);
break;
+ case CARL9170_CMD_RX_FILTER:
+ resp->hdr.len = 0;
+ fw.wlan.rx_filter = cmd->rx_filter.rx_filter;
+ break;
+
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
- case CARL9170_CMD_FLUSH_CAB:
+ case CARL9170_CMD_BCN_CTRL:
resp->hdr.len = 0;
- if (cmd->cab_flush.mode & CARL9170_CAB_FLUSH_CAB_TRIGGER) {
- wlan_cab_modify_dtim_beacon(cmd->cab_flush.vif_id);
+ if (cmd->bcn_ctrl.mode & CARL9170_BCN_CTRL_CAB_TRIGGER) {
+ wlan_modify_beacon(cmd->bcn_ctrl.vif_id,
+ cmd->bcn_ctrl.bcn_addr, cmd->bcn_ctrl.bcn_len);
+ set(AR9170_MAC_REG_BCN_ADDR, cmd->bcn_ctrl.bcn_addr);
+ set(AR9170_MAC_REG_BCN_LENGTH, cmd->bcn_ctrl.bcn_len);
set(AR9170_MAC_REG_BCN_CTRL, AR9170_BCN_CTRL_READY);
} else {
- wlan_cab_flush_queue(cmd->cab_flush.vif_id);
- if (fw.wlan.cab_flush_vif == cmd->cab_flush.vif_id)
- fw.wlan.cab_flush_trigger = CARL9170_CAB_TRIGGER_EMPTY;
+ wlan_cab_flush_queue(cmd->bcn_ctrl.vif_id);
+ fw.wlan.cab_flush_trigger[i] = CARL9170_CAB_TRIGGER_EMPTY;
}
break;
#endif /* CONFIG_CARL9170FW_CAB_QUEUE */
#ifdef CONFIG_CARL9170FW_SECURITY_ENGINE
case CARL9170_CMD_EKEY:
- resp->hdr.len = 1;
+ resp->hdr.len = 0;
set_key(&cmd->setkey);
break;
case CARL9170_CMD_DKEY:
- /* Disable Key */
- resp->hdr.len = 1;
+ resp->hdr.len = 0;
disable_key(&cmd->disablekey);
break;
#endif /* CONFIG_CARL9170FW_SECURIT_ENGINE */
#endif /* CONFIG_CARL9170FW_RADIO_FUNCTIOS */
default:
+ BUG("Unknown command %x\n", cmd->hdr.cmd);
break;
}
}