mwifiex: skip registering mgmt frame that has already registered

Before sending command to firmware, we need to check the frame type.
We skip registering the mgmt frame that has already been registered.

Signed-off-by: Stone Piao <piaoyun@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Stone Piao 2013-07-22 19:17:44 -07:00 committed by John W. Linville
parent eaf49dbc4b
commit 4481b2dba0

View file

@ -240,16 +240,20 @@ mwifiex_cfg80211_mgmt_frame_register(struct wiphy *wiphy,
u16 frame_type, bool reg)
{
struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
u32 mask;
if (reg)
priv->mgmt_frame_mask |= BIT(frame_type >> 4);
mask = priv->mgmt_frame_mask | BIT(frame_type >> 4);
else
priv->mgmt_frame_mask &= ~BIT(frame_type >> 4);
mask = priv->mgmt_frame_mask & ~BIT(frame_type >> 4);
mwifiex_send_cmd_async(priv, HostCmd_CMD_MGMT_FRAME_REG,
HostCmd_ACT_GEN_SET, 0, &priv->mgmt_frame_mask);
wiphy_dbg(wiphy, "info: mgmt frame registered\n");
if (mask != priv->mgmt_frame_mask) {
priv->mgmt_frame_mask = mask;
mwifiex_send_cmd_async(priv, HostCmd_CMD_MGMT_FRAME_REG,
HostCmd_ACT_GEN_SET, 0,
&priv->mgmt_frame_mask);
wiphy_dbg(wiphy, "info: mgmt frame registered\n");
}
}
/*