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