libertas: rename some registers to clarify their meaning
[safe/jmp/linux-2.6] / drivers / net / wireless / libertas / cmdresp.c
index 888f92d..24de3c3 100644 (file)
@@ -12,7 +12,7 @@
 #include "decl.h"
 #include "defs.h"
 #include "dev.h"
-#include "join.h"
+#include "assoc.h"
 #include "wext.h"
 
 /**
@@ -188,19 +188,6 @@ static int lbs_ret_802_11_snmp_mib(struct lbs_private *priv,
        return 0;
 }
 
-static int lbs_ret_802_11_mac_address(struct lbs_private *priv,
-                                      struct cmd_ds_command *resp)
-{
-       struct cmd_ds_802_11_mac_address *macadd = &resp->params.macadd;
-
-       lbs_deb_enter(LBS_DEB_CMD);
-
-       memcpy(priv->current_addr, macadd->macadd, ETH_ALEN);
-
-       lbs_deb_enter(LBS_DEB_CMD);
-       return 0;
-}
-
 static int lbs_ret_802_11_rf_tx_power(struct lbs_private *priv,
                                       struct cmd_ds_command *resp)
 {
@@ -216,22 +203,6 @@ static int lbs_ret_802_11_rf_tx_power(struct lbs_private *priv,
        return 0;
 }
 
-static int lbs_ret_802_11_rate_adapt_rateset(struct lbs_private *priv,
-                                             struct cmd_ds_command *resp)
-{
-       struct cmd_ds_802_11_rate_adapt_rateset *rates = &resp->params.rateset;
-
-       lbs_deb_enter(LBS_DEB_CMD);
-
-       if (rates->action == CMD_ACT_GET) {
-               priv->enablehwauto = le16_to_cpu(rates->enablehwauto);
-               priv->ratebitmap = le16_to_cpu(rates->bitmap);
-       }
-
-       lbs_deb_leave(LBS_DEB_CMD);
-       return 0;
-}
-
 static int lbs_ret_802_11_rssi(struct lbs_private *priv,
                                struct cmd_ds_command *resp)
 {
@@ -262,31 +233,6 @@ static int lbs_ret_802_11_rssi(struct lbs_private *priv,
        return 0;
 }
 
-static int lbs_ret_802_11_eeprom_access(struct lbs_private *priv,
-                                 struct cmd_ds_command *resp)
-{
-       struct lbs_ioctl_regrdwr *pbuf;
-       pbuf = (struct lbs_ioctl_regrdwr *) priv->prdeeprom;
-
-       lbs_deb_enter_args(LBS_DEB_CMD, "len %d",
-              le16_to_cpu(resp->params.rdeeprom.bytecount));
-       if (pbuf->NOB < le16_to_cpu(resp->params.rdeeprom.bytecount)) {
-               pbuf->NOB = 0;
-               lbs_deb_cmd("EEPROM read length too big\n");
-               return -1;
-       }
-       pbuf->NOB = le16_to_cpu(resp->params.rdeeprom.bytecount);
-       if (pbuf->NOB > 0) {
-
-               memcpy(&pbuf->value, (u8 *) & resp->params.rdeeprom.value,
-                      le16_to_cpu(resp->params.rdeeprom.bytecount));
-               lbs_deb_hex(LBS_DEB_CMD, "EEPROM", (char *)&pbuf->value,
-                       le16_to_cpu(resp->params.rdeeprom.bytecount));
-       }
-       lbs_deb_leave(LBS_DEB_CMD);
-       return 0;
-}
-
 static int lbs_ret_802_11_bcn_ctrl(struct lbs_private * priv,
                                        struct cmd_ds_command *resp)
 {
@@ -354,32 +300,19 @@ static inline int handle_cmd_response(struct lbs_private *priv,
 
                break;
 
-       case CMD_RET(CMD_MAC_MULTICAST_ADR):
        case CMD_RET(CMD_802_11_RESET):
        case CMD_RET(CMD_802_11_AUTHENTICATE):
        case CMD_RET(CMD_802_11_BEACON_STOP):
                break;
 
-       case CMD_RET(CMD_802_11_RATE_ADAPT_RATESET):
-               ret = lbs_ret_802_11_rate_adapt_rateset(priv, resp);
-               break;
-
        case CMD_RET(CMD_802_11_RSSI):
                ret = lbs_ret_802_11_rssi(priv, resp);
                break;
 
-       case CMD_RET(CMD_802_11_MAC_ADDRESS):
-               ret = lbs_ret_802_11_mac_address(priv, resp);
-               break;
-
        case CMD_RET(CMD_802_11_AD_HOC_STOP):
                ret = lbs_ret_80211_ad_hoc_stop(priv);
                break;
 
-       case CMD_RET(CMD_802_11_EEPROM_ACCESS):
-               ret = lbs_ret_802_11_eeprom_access(priv, resp);
-               break;
-
        case CMD_RET(CMD_802_11D_DOMAIN_INFO):
                ret = lbs_ret_802_11d_domain_info(resp);
                break;
@@ -397,14 +330,6 @@ static inline int handle_cmd_response(struct lbs_private *priv,
                spin_unlock_irqrestore(&priv->driver_lock, flags);
                break;
 
-       case CMD_RET(CMD_802_11_PWR_CFG):
-               spin_lock_irqsave(&priv->driver_lock, flags);
-               memmove((void *)priv->cur_cmd->callback_arg, &resp->params.pwrcfg,
-                       sizeof(struct cmd_ds_802_11_pwr_cfg));
-               spin_unlock_irqrestore(&priv->driver_lock, flags);
-
-               break;
-
        case CMD_RET(CMD_GET_TSF):
                spin_lock_irqsave(&priv->driver_lock, flags);
                memcpy((void *)priv->cur_cmd->callback_arg,
@@ -430,15 +355,15 @@ static inline int handle_cmd_response(struct lbs_private *priv,
                break;
 
        default:
-               lbs_deb_host("CMD_RESP: unknown cmd response 0x%04x\n",
-                            le16_to_cpu(resp->command));
+               lbs_pr_err("CMD_RESP: unknown cmd response 0x%04x\n",
+                          le16_to_cpu(resp->command));
                break;
        }
        lbs_deb_leave(LBS_DEB_HOST);
        return ret;
 }
 
-int lbs_process_rx_command(struct lbs_private *priv)
+int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len)
 {
        uint16_t respcmd, curcmd;
        struct cmd_header *resp;
@@ -458,14 +383,14 @@ int lbs_process_rx_command(struct lbs_private *priv)
                goto done;
        }
 
-       resp = (void *)priv->upld_buf;
+       resp = (void *)data;
        curcmd = le16_to_cpu(priv->cur_cmd->cmdbuf->command);
        respcmd = le16_to_cpu(resp->command);
        result = le16_to_cpu(resp->result);
 
-       lbs_deb_cmd("CMD_RESP: response 0x%04x, seq %d, size %d, jiffies %lu\n",
-                    respcmd, le16_to_cpu(resp->seqnum), priv->upld_len, jiffies);
-       lbs_deb_hex(LBS_DEB_CMD, "CMD_RESP", (void *) resp, priv->upld_len);
+       lbs_deb_cmd("CMD_RESP: response 0x%04x, seq %d, size %d\n",
+                    respcmd, le16_to_cpu(resp->seqnum), len);
+       lbs_deb_hex(LBS_DEB_CMD, "CMD_RESP", (void *) resp, len);
 
        if (resp->seqnum != priv->cur_cmd->cmdbuf->seqnum) {
                lbs_pr_info("Received CMD_RESP with invalid sequence %d (expected %d)\n",
@@ -602,21 +527,20 @@ done:
 
 static int lbs_send_confirmwake(struct lbs_private *priv)
 {
-       struct cmd_header *cmd = &priv->lbs_ps_confirm_wake;
+       struct cmd_header cmd;
        int ret = 0;
 
        lbs_deb_enter(LBS_DEB_HOST);
 
-       cmd->command = cpu_to_le16(CMD_802_11_WAKEUP_CONFIRM);
-       cmd->size = cpu_to_le16(sizeof(*cmd));
-       cmd->seqnum = cpu_to_le16(++priv->seqnum);
-       cmd->result = 0;
-
-       lbs_deb_host("SEND_WAKEC_CMD: before download\n");
+       cmd.command = cpu_to_le16(CMD_802_11_WAKEUP_CONFIRM);
+       cmd.size = cpu_to_le16(sizeof(cmd));
+       cmd.seqnum = cpu_to_le16(++priv->seqnum);
+       cmd.result = 0;
 
-       lbs_deb_hex(LBS_DEB_HOST, "wake confirm command", (void *)cmd, sizeof(*cmd));
+       lbs_deb_hex(LBS_DEB_HOST, "wake confirm", (u8 *) &cmd,
+               sizeof(cmd));
 
-       ret = priv->hw_host_to_card(priv, MVMS_CMD, (void *)cmd, sizeof(*cmd));
+       ret = priv->hw_host_to_card(priv, MVMS_CMD, (u8 *) &cmd, sizeof(cmd));
        if (ret)
                lbs_pr_alert("SEND_WAKEC_CMD: Host to Card failed for Confirm Wake\n");
 
@@ -624,18 +548,13 @@ static int lbs_send_confirmwake(struct lbs_private *priv)
        return ret;
 }
 
-int lbs_process_event(struct lbs_private *priv)
+int lbs_process_event(struct lbs_private *priv, u32 event)
 {
        int ret = 0;
-       u32 eventcause;
 
        lbs_deb_enter(LBS_DEB_CMD);
 
-       spin_lock_irq(&priv->driver_lock);
-       eventcause = priv->eventcause >> SBI_EVENT_CAUSE_SHIFT;
-       spin_unlock_irq(&priv->driver_lock);
-
-       switch (eventcause) {
+       switch (event) {
        case MACREG_INT_CODE_LINK_SENSED:
                lbs_deb_cmd("EVENT: link sensed\n");
                break;
@@ -751,14 +670,10 @@ int lbs_process_event(struct lbs_private *priv)
                break;
 
        default:
-               lbs_pr_alert("EVENT: unknown event id %d\n", eventcause);
+               lbs_pr_alert("EVENT: unknown event id %d\n", event);
                break;
        }
 
-       spin_lock_irq(&priv->driver_lock);
-       priv->eventcause = 0;
-       spin_unlock_irq(&priv->driver_lock);
-
        lbs_deb_leave_args(LBS_DEB_CMD, "ret %d", ret);
        return ret;
 }