aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2013-02-08 09:53:57 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-02-08 14:51:42 -0500
commitdded3d532cbea8b96ae388b9bc173f1b2ec4d292 (patch)
tree2e6b46719e83252d56c9dc408223c48d674ce9a2
parent1bc7c654a946dca4890f6bf29d769a7ed25eb8b0 (diff)
brcmfmac: Update netdev configuration in wiphy for p2p.
Wiphy object holds information about possible netdev combinations which can be supported. This needs updating for p2p device. Also p2p device netdev has wrong 80211 iftype. Limit the change interface support to match the netdev configuration/combination possibilities. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Piotr Haber <phaber@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/p2p.c2
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c11
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
index 9f87a8570770..fd090745b82f 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
@@ -1320,7 +1320,7 @@ s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg)
1320 p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif; 1320 p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif;
1321 1321
1322 if (p2p_ifp) { 1322 if (p2p_ifp) {
1323 p2p_vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_STATION, 1323 p2p_vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_P2P_DEVICE,
1324 false); 1324 false);
1325 if (IS_ERR(p2p_vif)) { 1325 if (IS_ERR(p2p_vif)) {
1326 brcmf_err("could not create discovery vif\n"); 1326 brcmf_err("could not create discovery vif\n");
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index cba2f34d4c27..e7ef8270726a 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -4163,20 +4163,24 @@ static void brcmf_wiphy_pno_params(struct wiphy *wiphy)
4163 4163
4164static const struct ieee80211_iface_limit brcmf_iface_limits[] = { 4164static const struct ieee80211_iface_limit brcmf_iface_limits[] = {
4165 { 4165 {
4166 .max = 1, 4166 .max = 2,
4167 .types = BIT(NL80211_IFTYPE_STATION) | 4167 .types = BIT(NL80211_IFTYPE_STATION) |
4168 BIT(NL80211_IFTYPE_ADHOC) | 4168 BIT(NL80211_IFTYPE_ADHOC) |
4169 BIT(NL80211_IFTYPE_AP) 4169 BIT(NL80211_IFTYPE_AP)
4170 }, 4170 },
4171 { 4171 {
4172 .max = 1, 4172 .max = 1,
4173 .types = BIT(NL80211_IFTYPE_P2P_DEVICE)
4174 },
4175 {
4176 .max = 1,
4173 .types = BIT(NL80211_IFTYPE_P2P_CLIENT) | 4177 .types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
4174 BIT(NL80211_IFTYPE_P2P_GO) 4178 BIT(NL80211_IFTYPE_P2P_GO)
4175 }, 4179 },
4176}; 4180};
4177static const struct ieee80211_iface_combination brcmf_iface_combos[] = { 4181static const struct ieee80211_iface_combination brcmf_iface_combos[] = {
4178 { 4182 {
4179 .max_interfaces = BRCMF_IFACE_MAX_CNT - 1, 4183 .max_interfaces = BRCMF_IFACE_MAX_CNT,
4180 .num_different_channels = 1, /* no multi-channel for now */ 4184 .num_different_channels = 1, /* no multi-channel for now */
4181 .n_limits = ARRAY_SIZE(brcmf_iface_limits), 4185 .n_limits = ARRAY_SIZE(brcmf_iface_limits),
4182 .limits = brcmf_iface_limits 4186 .limits = brcmf_iface_limits
@@ -4225,7 +4229,8 @@ static struct wiphy *brcmf_setup_wiphy(struct device *phydev)
4225 BIT(NL80211_IFTYPE_ADHOC) | 4229 BIT(NL80211_IFTYPE_ADHOC) |
4226 BIT(NL80211_IFTYPE_AP) | 4230 BIT(NL80211_IFTYPE_AP) |
4227 BIT(NL80211_IFTYPE_P2P_CLIENT) | 4231 BIT(NL80211_IFTYPE_P2P_CLIENT) |
4228 BIT(NL80211_IFTYPE_P2P_GO); 4232 BIT(NL80211_IFTYPE_P2P_GO) |
4233 BIT(NL80211_IFTYPE_P2P_DEVICE);
4229 wiphy->iface_combinations = brcmf_iface_combos; 4234 wiphy->iface_combinations = brcmf_iface_combos;
4230 wiphy->n_iface_combinations = ARRAY_SIZE(brcmf_iface_combos); 4235 wiphy->n_iface_combinations = ARRAY_SIZE(brcmf_iface_combos);
4231 wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; 4236 wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz;