/* Per interface specific private data */
struct mwl8k_vif {
- /* Local MAC address. */
- u8 mac_addr[ETH_ALEN];
-
- /* Non AMPDU sequence number assigned by driver */
+ /* Non AMPDU sequence number assigned by driver. */
u16 seqno;
};
#define MWL8K_VIF(_vif) ((struct mwl8k_vif *)&((_vif)->drv_priv))
__le16 threshold;
} __attribute__((packed));
-static int mwl8k_cmd_set_rts_threshold(struct ieee80211_hw *hw,
- u16 action, u16 threshold)
+static int
+mwl8k_cmd_set_rts_threshold(struct ieee80211_hw *hw, int rts_thresh)
{
struct mwl8k_cmd_set_rts_threshold *cmd;
int rc;
cmd->header.code = cpu_to_le16(MWL8K_CMD_RTS_THRESHOLD);
cmd->header.length = cpu_to_le16(sizeof(*cmd));
- cmd->action = cpu_to_le16(action);
- cmd->threshold = cpu_to_le16(threshold);
+ cmd->action = cpu_to_le16(MWL8K_CMD_SET);
+ cmd->threshold = cpu_to_le16(rts_thresh);
rc = mwl8k_post_cmd(hw, &cmd->header);
kfree(cmd);
return -EINVAL;
}
+ /* Set the mac address. */
+ mwl8k_cmd_set_mac_addr(hw, vif->addr);
+
/* Clean out driver private area */
mwl8k_vif = MWL8K_VIF(vif);
memset(mwl8k_vif, 0, sizeof(*mwl8k_vif));
- /* Set and save the mac address */
- mwl8k_cmd_set_mac_addr(hw, vif->addr);
- memcpy(mwl8k_vif->mac_addr, vif->addr, ETH_ALEN);
-
/* Set Initial sequence number to zero */
mwl8k_vif->seqno = 0;
{
struct mwl8k_priv *priv = hw->priv;
- if (priv->vif == NULL)
- return;
-
mwl8k_cmd_set_mac_addr(hw, "\x00\x00\x00\x00\x00\x00");
priv->vif = NULL;
static int mwl8k_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
{
- return mwl8k_cmd_set_rts_threshold(hw, MWL8K_CMD_SET, value);
+ return mwl8k_cmd_set_rts_threshold(hw, value);
}
struct mwl8k_sta_notify_item
/*
* Temporarily enable interrupts. Initial firmware host
- * commands use interrupts and avoids polling. Disable
+ * commands use interrupts and avoid polling. Disable
* interrupts when done.
*/
iowrite32(MWL8K_A2H_EVENTS, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);