diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/feature.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/feature.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/brcm80211/brcmfmac/feature.c index 931f68aefaa4..defb7a44e0bc 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/feature.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/feature.c | |||
@@ -97,6 +97,28 @@ static void brcmf_feat_iovar_int_get(struct brcmf_if *ifp, | |||
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | /** | ||
101 | * brcmf_feat_iovar_int_set() - determine feature through iovar set. | ||
102 | * | ||
103 | * @ifp: interface to query. | ||
104 | * @id: feature id. | ||
105 | * @name: iovar name. | ||
106 | */ | ||
107 | static void brcmf_feat_iovar_int_set(struct brcmf_if *ifp, | ||
108 | enum brcmf_feat_id id, char *name, u32 val) | ||
109 | { | ||
110 | int err; | ||
111 | |||
112 | err = brcmf_fil_iovar_int_set(ifp, name, val); | ||
113 | if (err == 0) { | ||
114 | brcmf_dbg(INFO, "enabling feature: %s\n", brcmf_feat_names[id]); | ||
115 | ifp->drvr->feat_flags |= BIT(id); | ||
116 | } else { | ||
117 | brcmf_dbg(TRACE, "%s feature check failed: %d\n", | ||
118 | brcmf_feat_names[id], err); | ||
119 | } | ||
120 | } | ||
121 | |||
100 | void brcmf_feat_attach(struct brcmf_pub *drvr) | 122 | void brcmf_feat_attach(struct brcmf_pub *drvr) |
101 | { | 123 | { |
102 | struct brcmf_if *ifp = drvr->iflist[0]; | 124 | struct brcmf_if *ifp = drvr->iflist[0]; |
@@ -104,6 +126,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr) | |||
104 | brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_MCHAN, "mchan"); | 126 | brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_MCHAN, "mchan"); |
105 | if (drvr->bus_if->wowl_supported) | 127 | if (drvr->bus_if->wowl_supported) |
106 | brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_WOWL, "wowl"); | 128 | brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_WOWL, "wowl"); |
129 | brcmf_feat_iovar_int_set(ifp, BRCMF_FEAT_MBSS, "mbss", 0); | ||
107 | 130 | ||
108 | /* set chip related quirks */ | 131 | /* set chip related quirks */ |
109 | switch (drvr->bus_if->chip) { | 132 | switch (drvr->bus_if->chip) { |