1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef LINUX_B43_PPR_H_
- #define LINUX_B43_PPR_H_
- #include <linux/types.h>
- #define B43_PPR_CCK_RATES_NUM 4
- #define B43_PPR_OFDM_RATES_NUM 8
- #define B43_PPR_MCS_RATES_NUM 8
- #define B43_PPR_RATES_NUM (B43_PPR_CCK_RATES_NUM + \
- B43_PPR_OFDM_RATES_NUM * 2 + \
- B43_PPR_MCS_RATES_NUM * 4)
- struct b43_ppr_rates {
- u8 cck[B43_PPR_CCK_RATES_NUM];
- u8 ofdm[B43_PPR_OFDM_RATES_NUM];
- u8 ofdm_20_cdd[B43_PPR_OFDM_RATES_NUM];
- u8 mcs_20[B43_PPR_MCS_RATES_NUM]; /* SISO */
- u8 mcs_20_cdd[B43_PPR_MCS_RATES_NUM];
- u8 mcs_20_stbc[B43_PPR_MCS_RATES_NUM];
- u8 mcs_20_sdm[B43_PPR_MCS_RATES_NUM];
- };
- struct b43_ppr {
- /* All powers are in qdbm (Q5.2) */
- union {
- u8 __all_rates[B43_PPR_RATES_NUM];
- struct b43_ppr_rates rates;
- };
- };
- struct b43_wldev;
- enum b43_band;
- void b43_ppr_clear(struct b43_wldev *dev, struct b43_ppr *ppr);
- void b43_ppr_add(struct b43_wldev *dev, struct b43_ppr *ppr, int diff);
- void b43_ppr_apply_max(struct b43_wldev *dev, struct b43_ppr *ppr, u8 max);
- void b43_ppr_apply_min(struct b43_wldev *dev, struct b43_ppr *ppr, u8 min);
- u8 b43_ppr_get_max(struct b43_wldev *dev, struct b43_ppr *ppr);
- bool b43_ppr_load_max_from_sprom(struct b43_wldev *dev, struct b43_ppr *ppr,
- enum b43_band band);
- #endif /* LINUX_B43_PPR_H_ */
|