Commit | Line | Data |
---|---|---|
c08437b4 AS |
1 | /* |
2 | * Copyright (c) 2014 Broadcom Corporation | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | |
11 | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | |
13 | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |
14 | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | #ifndef _BRCMF_FEATURE_H | |
17 | #define _BRCMF_FEATURE_H | |
18 | ||
19 | /* | |
20 | * Features: | |
21 | * | |
22 | * MCHAN: multi-channel for concurrent P2P. | |
23 | */ | |
24 | #define BRCMF_FEAT_LIST \ | |
a44aa400 | 25 | BRCMF_FEAT_DEF(MBSS) \ |
4eb3af7c HM |
26 | BRCMF_FEAT_DEF(MCHAN) \ |
27 | BRCMF_FEAT_DEF(WOWL) | |
c08437b4 AS |
28 | /* |
29 | * Quirks: | |
30 | * | |
31 | * AUTO_AUTH: workaround needed for automatic authentication type. | |
32 | * NEED_MPC: driver needs to disable MPC during scanning operation. | |
33 | */ | |
34 | #define BRCMF_QUIRK_LIST \ | |
35 | BRCMF_QUIRK_DEF(AUTO_AUTH) \ | |
36 | BRCMF_QUIRK_DEF(NEED_MPC) | |
37 | ||
38 | #define BRCMF_FEAT_DEF(_f) \ | |
39 | BRCMF_FEAT_ ## _f, | |
40 | /* | |
41 | * expand feature list to enumeration. | |
42 | */ | |
43 | enum brcmf_feat_id { | |
44 | BRCMF_FEAT_LIST | |
45 | BRCMF_FEAT_LAST | |
46 | }; | |
47 | #undef BRCMF_FEAT_DEF | |
48 | ||
49 | #define BRCMF_QUIRK_DEF(_q) \ | |
50 | BRCMF_FEAT_QUIRK_ ## _q, | |
51 | /* | |
52 | * expand quirk list to enumeration. | |
53 | */ | |
54 | enum brcmf_feat_quirk { | |
55 | BRCMF_QUIRK_LIST | |
56 | BRCMF_FEAT_QUIRK_LAST | |
57 | }; | |
58 | #undef BRCMF_QUIRK_DEF | |
59 | ||
60 | /** | |
61 | * brcmf_feat_attach() - determine features and quirks. | |
62 | * | |
63 | * @drvr: driver instance. | |
64 | */ | |
65 | void brcmf_feat_attach(struct brcmf_pub *drvr); | |
66 | ||
67 | /** | |
68 | * brcmf_feat_is_enabled() - query feature. | |
69 | * | |
70 | * @ifp: interface instance. | |
71 | * @id: feature id to check. | |
72 | * | |
73 | * Return: true is feature is enabled; otherwise false. | |
74 | */ | |
75 | bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id); | |
76 | ||
77 | /** | |
78 | * brcmf_feat_is_quirk_enabled() - query chip quirk. | |
79 | * | |
80 | * @ifp: interface instance. | |
81 | * @quirk: quirk id to check. | |
82 | * | |
83 | * Return: true is quirk is enabled; otherwise false. | |
84 | */ | |
85 | bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp, | |
86 | enum brcmf_feat_quirk quirk); | |
87 | ||
88 | #endif /* _BRCMF_FEATURE_H */ |