Skip to content

Commit

Permalink
mwl8k: prepare for posting per-vif firmware commands
Browse files Browse the repository at this point in the history
One of the bytes in the mwl8k firmware command header is the 'macid'
byte, which for per-vif commands indicates which of the BSSes this
command is intended for.  (For commands that are not per-vif commands,
this byte can just be 0.)

This patch adds mwl8k_post_pervif_cmd(), which will take the macid
assigned to this interface (to be done in ->add_interface()), copy it
into the command packet macid field, and post the command as usual.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Lennert Buytenhek authored and John W. Linville committed Jan 12, 2010
1 parent f5bb87c commit f57ca9c
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion drivers/net/wireless/mwl8k.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ struct mwl8k_vif {
struct list_head list;
struct ieee80211_vif *vif;

/* Firmware macid for this vif. */
int macid;

/* Non AMPDU sequence number assigned by driver. */
u16 seqno;
};
Expand Down Expand Up @@ -419,7 +422,8 @@ static int mwl8k_request_firmware(struct mwl8k_priv *priv)
struct mwl8k_cmd_pkt {
__le16 code;
__le16 length;
__le16 seq_num;
__u8 seq_num;
__u8 macid;
__le16 result;
char payload[0];
} __attribute__((packed));
Expand Down Expand Up @@ -477,6 +481,7 @@ static int mwl8k_load_fw_image(struct mwl8k_priv *priv,

cmd->code = cpu_to_le16(MWL8K_CMD_CODE_DNLD);
cmd->seq_num = 0;
cmd->macid = 0;
cmd->result = 0;

done = 0;
Expand Down Expand Up @@ -1595,6 +1600,15 @@ static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd)
return rc;
}

static int mwl8k_post_pervif_cmd(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct mwl8k_cmd_pkt *cmd)
{
if (vif != NULL)
cmd->macid = MWL8K_VIF(vif)->macid;
return mwl8k_post_cmd(hw, cmd);
}

/*
* Setup code shared between STA and AP firmware images.
*/
Expand Down Expand Up @@ -3283,6 +3297,7 @@ static int mwl8k_add_interface(struct ieee80211_hw *hw,
mwl8k_vif = MWL8K_VIF(vif);
memset(mwl8k_vif, 0, sizeof(*mwl8k_vif));
mwl8k_vif->vif = vif;
mwl8k_vif->macid = 0;
mwl8k_vif->seqno = 0;

list_add_tail(&mwl8k_vif->list, &priv->vif_list);
Expand Down

0 comments on commit f57ca9c

Please sign in to comment.