aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211/brcmfmac/feature.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/feature.c')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/feature.c23
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 */
107static 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
100void brcmf_feat_attach(struct brcmf_pub *drvr) 122void 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) {