ppr.h (1297B)
1/* SPDX-License-Identifier: GPL-2.0 */ 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 15struct 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 25struct 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 33struct b43_wldev; 34enum b43_band; 35 36void b43_ppr_clear(struct b43_wldev *dev, struct b43_ppr *ppr); 37 38void b43_ppr_add(struct b43_wldev *dev, struct b43_ppr *ppr, int diff); 39void b43_ppr_apply_max(struct b43_wldev *dev, struct b43_ppr *ppr, u8 max); 40void b43_ppr_apply_min(struct b43_wldev *dev, struct b43_ppr *ppr, u8 min); 41u8 b43_ppr_get_max(struct b43_wldev *dev, struct b43_ppr *ppr); 42 43bool 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_ */