]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
ec76643b RM |
2 | #ifndef LINUX_B43_PPR_H_ |
3 | #define LINUX_B43_PPR_H_ | |
4 | ||
5 | #include <linux/types.h> | |
6 | ||
7 | #define B43_PPR_CCK_RATES_NUM 4 | |
8 | #define B43_PPR_OFDM_RATES_NUM 8 | |
9 | #define B43_PPR_MCS_RATES_NUM 8 | |
10 | ||
11 | #define B43_PPR_RATES_NUM (B43_PPR_CCK_RATES_NUM + \ | |
12 | B43_PPR_OFDM_RATES_NUM * 2 + \ | |
13 | B43_PPR_MCS_RATES_NUM * 4) | |
14 | ||
15 | struct b43_ppr_rates { | |
16 | u8 cck[B43_PPR_CCK_RATES_NUM]; | |
17 | u8 ofdm[B43_PPR_OFDM_RATES_NUM]; | |
18 | u8 ofdm_20_cdd[B43_PPR_OFDM_RATES_NUM]; | |
19 | u8 mcs_20[B43_PPR_MCS_RATES_NUM]; /* SISO */ | |
20 | u8 mcs_20_cdd[B43_PPR_MCS_RATES_NUM]; | |
21 | u8 mcs_20_stbc[B43_PPR_MCS_RATES_NUM]; | |
22 | u8 mcs_20_sdm[B43_PPR_MCS_RATES_NUM]; | |
23 | }; | |
24 | ||
25 | struct b43_ppr { | |
26 | /* All powers are in qdbm (Q5.2) */ | |
27 | union { | |
28 | u8 __all_rates[B43_PPR_RATES_NUM]; | |
29 | struct b43_ppr_rates rates; | |
30 | }; | |
31 | }; | |
32 | ||
33 | struct b43_wldev; | |
34 | enum b43_band; | |
35 | ||
36 | void b43_ppr_clear(struct b43_wldev *dev, struct b43_ppr *ppr); | |
37 | ||
38 | void b43_ppr_add(struct b43_wldev *dev, struct b43_ppr *ppr, int diff); | |
39 | void b43_ppr_apply_max(struct b43_wldev *dev, struct b43_ppr *ppr, u8 max); | |
40 | void b43_ppr_apply_min(struct b43_wldev *dev, struct b43_ppr *ppr, u8 min); | |
41 | u8 b43_ppr_get_max(struct b43_wldev *dev, struct b43_ppr *ppr); | |
42 | ||
43 | bool b43_ppr_load_max_from_sprom(struct b43_wldev *dev, struct b43_ppr *ppr, | |
44 | enum b43_band band); | |
45 | ||
46 | #endif /* LINUX_B43_PPR_H_ */ |