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