lbs_deb_enter(LBS_DEB_CMD);
switch (type) {
- case CMD_RET_MAC_REG_ACCESS:
+ case CMD_RET(CMD_MAC_REG_ACCESS):
{
struct cmd_ds_mac_reg_access *reg = &resp->params.macreg;
break;
}
- case CMD_RET_BBP_REG_ACCESS:
+ case CMD_RET(CMD_BBP_REG_ACCESS):
{
struct cmd_ds_bbp_reg_access *reg = &resp->params.bbpreg;
break;
}
- case CMD_RET_RF_REG_ACCESS:
+ case CMD_RET(CMD_RF_REG_ACCESS):
{
struct cmd_ds_rf_reg_access *reg = &resp->params.rfreg;
wlan_adapter *adapter = priv->adapter;
switch (respcmd) {
- case CMD_RET_MAC_REG_ACCESS:
- case CMD_RET_BBP_REG_ACCESS:
- case CMD_RET_RF_REG_ACCESS:
+ case CMD_RET(CMD_MAC_REG_ACCESS):
+ case CMD_RET(CMD_BBP_REG_ACCESS):
+ case CMD_RET(CMD_RF_REG_ACCESS):
ret = wlan_ret_reg_access(priv, respcmd, resp);
break;
- case CMD_RET_HW_SPEC_INFO:
+ case CMD_RET(CMD_GET_HW_SPEC):
ret = wlan_ret_get_hw_spec(priv, resp);
break;
- case CMD_RET_802_11_SCAN:
+ case CMD_RET(CMD_802_11_SCAN):
ret = libertas_ret_80211_scan(priv, resp);
break;
- case CMD_RET_802_11_GET_LOG:
+ case CMD_RET(CMD_802_11_GET_LOG):
ret = wlan_ret_get_log(priv, resp);
break;
case CMD_RET_802_11_ASSOCIATE:
- case CMD_RET_802_11_REASSOCIATE:
+ case CMD_RET(CMD_802_11_ASSOCIATE):
+ case CMD_RET(CMD_802_11_REASSOCIATE):
ret = libertas_ret_80211_associate(priv, resp);
break;
- case CMD_RET_802_11_DISASSOCIATE:
- case CMD_RET_802_11_DEAUTHENTICATE:
+ case CMD_RET(CMD_802_11_DISASSOCIATE):
+ case CMD_RET(CMD_802_11_DEAUTHENTICATE):
ret = libertas_ret_80211_disassociate(priv, resp);
break;
- case CMD_RET_802_11_AD_HOC_START:
- case CMD_RET_802_11_AD_HOC_JOIN:
+ case CMD_RET(CMD_802_11_AD_HOC_START):
+ case CMD_RET(CMD_802_11_AD_HOC_JOIN):
ret = libertas_ret_80211_ad_hoc_start(priv, resp);
break;
- case CMD_RET_802_11_STAT:
+ case CMD_RET(CMD_802_11_GET_STAT):
ret = wlan_ret_802_11_stat(priv, resp);
break;
- case CMD_RET_802_11_SNMP_MIB:
+ case CMD_RET(CMD_802_11_SNMP_MIB):
ret = wlan_ret_802_11_snmp_mib(priv, resp);
break;
- case CMD_RET_802_11_RF_TX_POWER:
+ case CMD_RET(CMD_802_11_RF_TX_POWER):
ret = wlan_ret_802_11_rf_tx_power(priv, resp);
break;
- case CMD_RET_802_11_SET_AFC:
- case CMD_RET_802_11_GET_AFC:
+ case CMD_RET(CMD_802_11_SET_AFC):
+ case CMD_RET(CMD_802_11_GET_AFC):
spin_lock_irqsave(&adapter->driver_lock, flags);
memmove(adapter->cur_cmd->pdata_buf, &resp->params.afc,
sizeof(struct cmd_ds_802_11_afc));
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_802_11_RF_ANTENNA:
+ case CMD_RET(CMD_802_11_RF_ANTENNA):
ret = wlan_ret_802_11_rf_antenna(priv, resp);
break;
- case CMD_RET_MAC_MULTICAST_ADR:
- case CMD_RET_MAC_CONTROL:
- case CMD_RET_802_11_SET_WEP:
- case CMD_RET_802_11_RESET:
- case CMD_RET_802_11_AUTHENTICATE:
- case CMD_RET_802_11_RADIO_CONTROL:
- case CMD_RET_802_11_BEACON_STOP:
+ case CMD_RET(CMD_MAC_MULTICAST_ADR):
+ case CMD_RET(CMD_MAC_CONTROL):
+ case CMD_RET(CMD_802_11_SET_WEP):
+ case CMD_RET(CMD_802_11_RESET):
+ case CMD_RET(CMD_802_11_AUTHENTICATE):
+ case CMD_RET(CMD_802_11_RADIO_CONTROL):
+ case CMD_RET(CMD_802_11_BEACON_STOP):
break;
- case CMD_RET_802_11_ENABLE_RSN:
+ case CMD_RET(CMD_802_11_ENABLE_RSN):
ret = libertas_ret_802_11_enable_rsn(priv, resp);
break;
- case CMD_RET_802_11_DATA_RATE:
+ case CMD_RET(CMD_802_11_DATA_RATE):
ret = wlan_ret_802_11_data_rate(priv, resp);
break;
- case CMD_RET_802_11_RATE_ADAPT_RATESET:
+ case CMD_RET(CMD_802_11_RATE_ADAPT_RATESET):
ret = wlan_ret_802_11_rate_adapt_rateset(priv, resp);
break;
- case CMD_RET_802_11_RF_CHANNEL:
+ case CMD_RET(CMD_802_11_RF_CHANNEL):
ret = wlan_ret_802_11_rf_channel(priv, resp);
break;
- case CMD_RET_802_11_RSSI:
+ case CMD_RET(CMD_802_11_RSSI):
ret = wlan_ret_802_11_rssi(priv, resp);
break;
- case CMD_RET_802_11_MAC_ADDRESS:
+ case CMD_RET(CMD_802_11_MAC_ADDRESS):
ret = wlan_ret_802_11_mac_address(priv, resp);
break;
- case CMD_RET_802_11_AD_HOC_STOP:
+ case CMD_RET(CMD_802_11_AD_HOC_STOP):
ret = libertas_ret_80211_ad_hoc_stop(priv, resp);
break;
- case CMD_RET_802_11_KEY_MATERIAL:
+ case CMD_RET(CMD_802_11_KEY_MATERIAL):
lbs_deb_cmd("CMD_RESP: KEY_MATERIAL command response\n");
ret = wlan_ret_802_11_key_material(priv, resp);
break;
- case CMD_RET_802_11_EEPROM_ACCESS:
+ case CMD_RET(CMD_802_11_EEPROM_ACCESS):
ret = wlan_ret_802_11_eeprom_access(priv, resp);
break;
- case CMD_RET_802_11D_DOMAIN_INFO:
+ case CMD_RET(CMD_802_11D_DOMAIN_INFO):
ret = libertas_ret_802_11d_domain_info(priv, resp);
break;
- case CMD_RET_802_11_SLEEP_PARAMS:
+ case CMD_RET(CMD_802_11_SLEEP_PARAMS):
ret = wlan_ret_802_11_sleep_params(priv, resp);
break;
- case CMD_RET_802_11_INACTIVITY_TIMEOUT:
+ case CMD_RET(CMD_802_11_INACTIVITY_TIMEOUT):
spin_lock_irqsave(&adapter->driver_lock, flags);
*((u16 *) adapter->cur_cmd->pdata_buf) =
le16_to_cpu(resp->params.inactivity_timeout.timeout);
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_802_11_TPC_CFG:
+ case CMD_RET(CMD_802_11_TPC_CFG):
spin_lock_irqsave(&adapter->driver_lock, flags);
memmove(adapter->cur_cmd->pdata_buf, &resp->params.tpccfg,
sizeof(struct cmd_ds_802_11_tpc_cfg));
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_802_11_LED_GPIO_CTRL:
+ case CMD_RET(CMD_802_11_LED_GPIO_CTRL):
spin_lock_irqsave(&adapter->driver_lock, flags);
memmove(adapter->cur_cmd->pdata_buf, &resp->params.ledgpio,
sizeof(struct cmd_ds_802_11_led_ctrl));
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_802_11_PWR_CFG:
+ case CMD_RET(CMD_802_11_PWR_CFG):
spin_lock_irqsave(&adapter->driver_lock, flags);
memmove(adapter->cur_cmd->pdata_buf, &resp->params.pwrcfg,
sizeof(struct cmd_ds_802_11_pwr_cfg));
break;
- case CMD_RET_GET_TSF:
+ case CMD_RET(CMD_GET_TSF):
spin_lock_irqsave(&adapter->driver_lock, flags);
memcpy(priv->adapter->cur_cmd->pdata_buf,
&resp->params.gettsf.tsfvalue, sizeof(u64));
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_BT_ACCESS:
+ case CMD_RET(CMD_BT_ACCESS):
spin_lock_irqsave(&adapter->driver_lock, flags);
if (adapter->cur_cmd->pdata_buf)
memcpy(adapter->cur_cmd->pdata_buf,
&resp->params.bt.addr1, 2 * ETH_ALEN);
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_FWT_ACCESS:
+ case CMD_RET(CMD_FWT_ACCESS):
spin_lock_irqsave(&adapter->driver_lock, flags);
if (adapter->cur_cmd->pdata_buf)
memcpy(adapter->cur_cmd->pdata_buf, &resp->params.fwt,
sizeof(resp->params.fwt));
spin_unlock_irqrestore(&adapter->driver_lock, flags);
break;
- case CMD_RET_MESH_ACCESS:
+ case CMD_RET(CMD_MESH_ACCESS):
if (adapter->cur_cmd->pdata_buf)
memcpy(adapter->cur_cmd->pdata_buf, &resp->params.mesh,
sizeof(resp->params.mesh));
break;
- case CMD_RTE_802_11_TX_RATE_QUERY:
+ case CMD_RET(CMD_802_11_TX_RATE_QUERY):
priv->adapter->txrate = resp->params.txrate.txrate;
break;
default:
/* Store the response code to cur_cmd_retcode. */
adapter->cur_cmd_retcode = result;;
- if (respcmd == CMD_RET_802_11_PS_MODE) {
+ if (respcmd == CMD_RET(CMD_802_11_PS_MODE)) {
struct cmd_ds_802_11_ps_mode *psmode = &resp->params.psmode;
u16 action = le16_to_cpu(psmode->action);
* Handling errors here
*/
switch (respcmd) {
- case CMD_RET_HW_SPEC_INFO:
- case CMD_RET_802_11_RESET:
+ case CMD_RET(CMD_GET_HW_SPEC):
+ case CMD_RET(CMD_802_11_RESET):
lbs_deb_cmd("CMD_RESP: Reset command failed\n");
break;
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != CMD_RET_802_11_SUBSCRIBE_EVENT) {
+ if (pcmdptr->command != CMD_RET(CMD_802_11_SUBSCRIBE_EVENT)) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
return 0;
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
free_page(addr);
kfree(response_buf);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
free_page(addr);
kfree(response_buf);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
return 0;
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
return 0;
}
- if (pcmdptr->command != cpu_to_le16(CMD_RET_802_11_SUBSCRIBE_EVENT)) {
+ if (pcmdptr->command != cpu_to_le16(CMD_RET(CMD_802_11_SUBSCRIBE_EVENT))) {
lbs_pr_err("command response incorrect!\n");
kfree(response_buf);
free_page(addr);
#define CMD_OPTION_WAITFORRSP 0x0002
-/** Host command ID */
+/** Host command IDs */
+
+/* Return command are almost always the same as the host command, but with
+ * bit 15 set high. There are a few exceptions, though...
+ */
+#define CMD_RET(cmd) (0x8000 | cmd)
+
+/* Return command convention exceptions: */
+#define CMD_RET_802_11_ASSOCIATE 0x8012
+
+/* Command codes */
#define CMD_CODE_DNLD 0x0002
#define CMD_GET_HW_SPEC 0x0003
#define CMD_EEPROM_UPDATE 0x0004
#define CMD_GET_TSF 0x0080
#define CMD_BT_ACCESS 0x0087
-#define CMD_RET_BT_ACCESS 0x8087
#define CMD_FWT_ACCESS 0x0095
-#define CMD_RET_FWT_ACCESS 0x8095
#define CMD_MESH_ACCESS 0x009b
-#define CMD_RET_MESH_ACCESS 0x809b
/* For the IEEE Power Save */
#define CMD_SUBCMD_ENTER_PS 0x0030
#define CMD_SUBCMD_FULL_POWERDOWN 0x0035
#define CMD_SUBCMD_FULL_POWERUP 0x0036
-/* command RET code, MSB is set to 1 */
-#define CMD_RET_HW_SPEC_INFO 0x8003
-#define CMD_RET_EEPROM_UPDATE 0x8004
-#define CMD_RET_802_11_RESET 0x8005
-#define CMD_RET_802_11_SCAN 0x8006
-#define CMD_RET_802_11_GET_LOG 0x800b
-#define CMD_RET_MAC_CONTROL 0x8028
-#define CMD_RET_MAC_MULTICAST_ADR 0x8010
-#define CMD_RET_802_11_AUTHENTICATE 0x8011
-#define CMD_RET_802_11_DEAUTHENTICATE 0x8024
-#define CMD_RET_802_11_ASSOCIATE 0x8012
-#define CMD_RET_802_11_REASSOCIATE 0x8025
-#define CMD_RET_802_11_DISASSOCIATE 0x8026
-#define CMD_RET_802_11_SET_WEP 0x8013
-#define CMD_RET_802_11_STAT 0x8014
-#define CMD_RET_802_3_STAT 0x8015
-#define CMD_RET_802_11_SNMP_MIB 0x8016
-#define CMD_RET_MAC_REG_MAP 0x8017
-#define CMD_RET_BBP_REG_MAP 0x8018
-#define CMD_RET_RF_REG_MAP 0x8023
-#define CMD_RET_MAC_REG_ACCESS 0x8019
-#define CMD_RET_BBP_REG_ACCESS 0x801a
-#define CMD_RET_RF_REG_ACCESS 0x801b
-#define CMD_RET_802_11_RADIO_CONTROL 0x801c
-#define CMD_RET_802_11_RF_CHANNEL 0x801d
-#define CMD_RET_802_11_RSSI 0x801f
-#define CMD_RET_802_11_RF_TX_POWER 0x801e
-#define CMD_RET_802_11_RF_ANTENNA 0x8020
-#define CMD_RET_802_11_PS_MODE 0x8021
-#define CMD_RET_802_11_DATA_RATE 0x8022
-
-#define CMD_RET_802_11_AD_HOC_START 0x802B
-#define CMD_RET_802_11_AD_HOC_JOIN 0x802C
-
-#define CMD_RET_802_11_QUERY_TKIP_REPLY_CNTRS 0x802e
-#define CMD_RET_802_11_ENABLE_RSN 0x802f
-#define CMD_RET_802_11_PAIRWISE_TSC 0x8036
-#define CMD_RET_802_11_GROUP_TSC 0x8037
-#define CMD_RET_802_11_KEY_MATERIAL 0x805e
-
#define CMD_ENABLE_RSN 0x0001
#define CMD_DISABLE_RSN 0x0000
#define CMD_ACT_SET_AES (CMD_ACT_SET + 2)
#define CMD_ACT_REMOVE_AES (CMD_ACT_SET + 3)
-#define CMD_RET_802_11_SET_AFC 0x803c
-#define CMD_RET_802_11_GET_AFC 0x803d
-
-#define CMD_RET_802_11_AD_HOC_STOP 0x8040
-
-#define CMD_RET_802_11_BEACON_STOP 0x8049
-
-#define CMD_RET_802_11_MAC_ADDRESS 0x804D
-#define CMD_RET_802_11_EEPROM_ACCESS 0x8059
-
-#define CMD_RET_802_11_BAND_CONFIG 0x8058
-
-#define CMD_RET_802_11_SLEEP_PARAMS 0x8066
-
-#define CMD_RET_802_11_INACTIVITY_TIMEOUT 0x8067
-
-#define CMD_RET_802_11D_DOMAIN_INFO (0x8000 | \
- CMD_802_11D_DOMAIN_INFO)
-
-#define CMD_RET_802_11_TPC_CFG (CMD_802_11_TPC_CFG | 0x8000)
-#define CMD_RET_802_11_PWR_CFG (CMD_802_11_PWR_CFG | 0x8000)
-
-#define CMD_RET_802_11_LED_GPIO_CTRL 0x804e
-
-#define CMD_RET_802_11_SUBSCRIBE_EVENT (CMD_802_11_SUBSCRIBE_EVENT | 0x8000)
-
-#define CMD_RET_802_11_RATE_ADAPT_RATESET (CMD_802_11_RATE_ADAPT_RATESET | 0x8000)
-
-#define CMD_RTE_802_11_TX_RATE_QUERY (CMD_802_11_TX_RATE_QUERY | 0x8000)
-
-#define CMD_RET_GET_TSF 0x8080
-
/* Define action or option for CMD_802_11_SET_WEP */
#define CMD_ACT_ADD 0x0002
#define CMD_ACT_REMOVE 0x0004