xref: /kernel/linux/linux-5.10/drivers/net/wireless/broadcom/b43/ppr.h (revision 8c2ecf20)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-5.10/drivers/net/wireless/broadcom/b43/
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_ */
47

Indexes created Thu Nov 07 10:32:03 CST 2024