Commit d59c1cfd authored by Yogesh Ashok Powar's avatar Yogesh Ashok Powar Committed by John W. Linville

mwl8k: Allow adding station interface on AP firmware

When user wants to add a station interface when
AP firmware is loaded & in-use, allow creating
it and also notify user about the same.

Allow adding max one STA interface for AP fw.
Signed-off-by: default avatarYogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: default avatarNishant Sarmukadam <nishants@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 2acdaa7a
...@@ -2519,7 +2519,7 @@ static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw) ...@@ -2519,7 +2519,7 @@ static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
priv->hw_rev = cmd->hw_rev; priv->hw_rev = cmd->hw_rev;
mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); mwl8k_set_caps(hw, le32_to_cpu(cmd->caps));
priv->ap_macids_supported = 0x000000ff; priv->ap_macids_supported = 0x000000ff;
priv->sta_macids_supported = 0x00000000; priv->sta_macids_supported = 0x00000100;
priv->num_ampdu_queues = le32_to_cpu(cmd->num_of_ampdu_queues); priv->num_ampdu_queues = le32_to_cpu(cmd->num_of_ampdu_queues);
if (priv->num_ampdu_queues > MWL8K_MAX_AMPDU_QUEUES) { if (priv->num_ampdu_queues > MWL8K_MAX_AMPDU_QUEUES) {
wiphy_warn(hw->wiphy, "fw reported %d ampdu queues" wiphy_warn(hw->wiphy, "fw reported %d ampdu queues"
...@@ -4669,13 +4669,19 @@ static int mwl8k_add_interface(struct ieee80211_hw *hw, ...@@ -4669,13 +4669,19 @@ static int mwl8k_add_interface(struct ieee80211_hw *hw,
break; break;
case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_STATION:
if (priv->ap_fw && di->fw_image_sta) { if (priv->ap_fw && di->fw_image_sta) {
/* we must load the sta fw to meet this request */ if (!list_empty(&priv->vif_list)) {
if (!list_empty(&priv->vif_list)) wiphy_warn(hw->wiphy, "AP interface is running.\n"
return -EBUSY; "Adding STA interface for WDS");
rc = mwl8k_reload_firmware(hw, di->fw_image_sta); } else {
/* we must load the sta fw to
* meet this request.
*/
rc = mwl8k_reload_firmware(hw,
di->fw_image_sta);
if (rc) if (rc)
return rc; return rc;
} }
}
macids_supported = priv->sta_macids_supported; macids_supported = priv->sta_macids_supported;
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment