diff options
author | Kalle Valo <kvalo@codeaurora.org> | 2015-11-17 20:52:05 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-11-18 12:24:22 +0300 |
commit | 05491d2ccf20b20a1375303441fbbfbd12b24a4f (patch) | |
tree | 52da6bbf8d97721ac9441f54f62b92f5a4410c14 /drivers/net/wireless/brcm80211/brcmfmac/feature.c | |
parent | 423e3ce336499ddb4e094f40649d12d9820f785b (diff) | |
download | linux-05491d2ccf20b20a1375303441fbbfbd12b24a4f.tar.xz |
brcm80211: move under broadcom vendor directory
Part of reorganising wireless drivers directory and Kconfig. Note that I had to
edit Makefiles from subdirectories to use the new location.
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/feature.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/feature.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/brcm80211/brcmfmac/feature.c deleted file mode 100644 index 44bb30636690..000000000000 --- a/drivers/net/wireless/brcm80211/brcmfmac/feature.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2014 Broadcom Corporation - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <linux/netdevice.h> -#include <linux/module.h> - -#include <brcm_hw_ids.h> -#include "core.h" -#include "bus.h" -#include "debug.h" -#include "fwil.h" -#include "feature.h" - - -/* Module param feature_disable (global for all devices) */ -static int brcmf_feature_disable; -module_param_named(feature_disable, brcmf_feature_disable, int, 0); -MODULE_PARM_DESC(feature_disable, "Disable features"); - -/* - * expand feature list to array of feature strings. - */ -#define BRCMF_FEAT_DEF(_f) \ - #_f, -static const char *brcmf_feat_names[] = { - BRCMF_FEAT_LIST -}; -#undef BRCMF_FEAT_DEF - -#ifdef DEBUG -/* - * expand quirk list to array of quirk strings. - */ -#define BRCMF_QUIRK_DEF(_q) \ - #_q, -static const char * const brcmf_quirk_names[] = { - BRCMF_QUIRK_LIST -}; -#undef BRCMF_QUIRK_DEF - -/** - * brcmf_feat_debugfs_read() - expose feature info to debugfs. - * - * @seq: sequence for debugfs entry. - * @data: raw data pointer. - */ -static int brcmf_feat_debugfs_read(struct seq_file *seq, void *data) -{ - struct brcmf_bus *bus_if = dev_get_drvdata(seq->private); - u32 feats = bus_if->drvr->feat_flags; - u32 quirks = bus_if->drvr->chip_quirks; - int id; - - seq_printf(seq, "Features: %08x\n", feats); - for (id = 0; id < BRCMF_FEAT_LAST; id++) - if (feats & BIT(id)) - seq_printf(seq, "\t%s\n", brcmf_feat_names[id]); - seq_printf(seq, "\nQuirks: %08x\n", quirks); - for (id = 0; id < BRCMF_FEAT_QUIRK_LAST; id++) - if (quirks & BIT(id)) - seq_printf(seq, "\t%s\n", brcmf_quirk_names[id]); - return 0; -} -#else -static int brcmf_feat_debugfs_read(struct seq_file *seq, void *data) -{ - return 0; -} -#endif /* DEBUG */ - -/** - * brcmf_feat_iovar_int_get() - determine feature through iovar query. - * - * @ifp: interface to query. - * @id: feature id. - * @name: iovar name. - */ -static void brcmf_feat_iovar_int_get(struct brcmf_if *ifp, - enum brcmf_feat_id id, char *name) -{ - u32 data; - int err; - - err = brcmf_fil_iovar_int_get(ifp, name, &data); - if (err == 0) { - brcmf_dbg(INFO, "enabling feature: %s\n", brcmf_feat_names[id]); - ifp->drvr->feat_flags |= BIT(id); - } else { - brcmf_dbg(TRACE, "%s feature check failed: %d\n", - brcmf_feat_names[id], err); - } -} - -/** - * brcmf_feat_iovar_int_set() - determine feature through iovar set. - * - * @ifp: interface to query. - * @id: feature id. - * @name: iovar name. - */ -static void brcmf_feat_iovar_int_set(struct brcmf_if *ifp, - enum brcmf_feat_id id, char *name, u32 val) -{ - int err; - - err = brcmf_fil_iovar_int_set(ifp, name, val); - if (err == 0) { - brcmf_dbg(INFO, "enabling feature: %s\n", brcmf_feat_names[id]); - ifp->drvr->feat_flags |= BIT(id); - } else { - brcmf_dbg(TRACE, "%s feature check failed: %d\n", - brcmf_feat_names[id], err); - } -} - -void brcmf_feat_attach(struct brcmf_pub *drvr) -{ - struct brcmf_if *ifp = brcmf_get_ifp(drvr, 0); - - brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_MCHAN, "mchan"); - brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_PNO, "pfn"); - if (drvr->bus_if->wowl_supported) - brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_WOWL, "wowl"); - if (drvr->bus_if->chip != BRCM_CC_43362_CHIP_ID) - brcmf_feat_iovar_int_set(ifp, BRCMF_FEAT_MBSS, "mbss", 0); - brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_P2P, "p2p"); - - if (brcmf_feature_disable) { - brcmf_dbg(INFO, "Features: 0x%02x, disable: 0x%02x\n", - ifp->drvr->feat_flags, brcmf_feature_disable); - ifp->drvr->feat_flags &= ~brcmf_feature_disable; - } - - /* set chip related quirks */ - switch (drvr->bus_if->chip) { - case BRCM_CC_43236_CHIP_ID: - drvr->chip_quirks |= BIT(BRCMF_FEAT_QUIRK_AUTO_AUTH); - break; - case BRCM_CC_4329_CHIP_ID: - drvr->chip_quirks |= BIT(BRCMF_FEAT_QUIRK_NEED_MPC); - break; - default: - /* no quirks */ - break; - } - - brcmf_debugfs_add_entry(drvr, "features", brcmf_feat_debugfs_read); -} - -bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id) -{ - return (ifp->drvr->feat_flags & BIT(id)); -} - -bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp, - enum brcmf_feat_quirk quirk) -{ - return (ifp->drvr->chip_quirks & BIT(quirk)); -} |