File Index
Files and directories
Sign in
FILE

mt792x_acpi_sar.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.h C
  1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
  2/* Copyright (C) 2023 MediaTek Inc. */
  3
  4#ifndef __MT7921_ACPI_SAR_H
  5#define __MT7921_ACPI_SAR_H
  6
  7#define MT792x_ASAR_MIN_DYN		1
  8#define MT792x_ASAR_MAX_DYN		8
  9#define MT792x_ASAR_MIN_GEO		3
 10#define MT792x_ASAR_MAX_GEO		8
 11#define MT792x_ASAR_MIN_FG		8
 12
 13#define MT792x_ACPI_MTCL		"MTCL"
 14#define MT792x_ACPI_MTDS		"MTDS"
 15#define MT792x_ACPI_MTGS		"MTGS"
 16#define MT792x_ACPI_MTFG		"MTFG"
 17
 18#define MT792X_ACPI_MTCL_INVALID	0xffffffff
 19
 20struct mt792x_asar_dyn_limit {
 21	u8 idx;
 22	u8 frp[5];
 23} __packed;
 24
 25struct mt792x_asar_dyn {
 26	u8 names[4];
 27	u8 enable;
 28	u8 nr_tbl;
 29	DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit, tbl);
 30} __packed;
 31
 32struct mt792x_asar_dyn_limit_v2 {
 33	u8 idx;
 34	u8 frp[11];
 35} __packed;
 36
 37struct mt792x_asar_dyn_v2 {
 38	u8 names[4];
 39	u8 enable;
 40	u8 rsvd;
 41	u8 nr_tbl;
 42	DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit_v2, tbl);
 43} __packed;
 44
 45struct mt792x_asar_geo_band {
 46	u8 pwr;
 47	u8 offset;
 48} __packed;
 49
 50struct mt792x_asar_geo_limit {
 51	u8 idx;
 52	/* 0:2G, 1:5G */
 53	struct mt792x_asar_geo_band band[2];
 54} __packed;
 55
 56struct mt792x_asar_geo {
 57	u8 names[4];
 58	u8 version;
 59	u8 nr_tbl;
 60	DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit, tbl);
 61} __packed;
 62
 63struct mt792x_asar_geo_limit_v2 {
 64	u8 idx;
 65	/* 0:2G, 1:5G, 2:6G */
 66	struct mt792x_asar_geo_band band[3];
 67} __packed;
 68
 69struct mt792x_asar_geo_v2 {
 70	u8 names[4];
 71	u8 version;
 72	u8 rsvd;
 73	u8 nr_tbl;
 74	DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit_v2, tbl);
 75} __packed;
 76
 77struct mt792x_asar_cl_v3 {
 78	u8 names[4];
 79	u8 version;
 80	u8 mode_6g;
 81	u8 cl6g[6];
 82	u8 mode_5g9;
 83	u8 cl5g9[6];
 84	u8 mode_be;
 85	u8 clbe[6];
 86} __packed;
 87
 88struct mt792x_asar_cl {
 89	u8 names[4];
 90	u8 version;
 91	u8 mode_6g;
 92	u8 cl6g[6];
 93	u8 mode_5g9;
 94	u8 cl5g9[6];
 95} __packed;
 96
 97struct mt792x_asar_fg {
 98	u8 names[4];
 99	u8 version;
100	u8 rsvd;
101	u8 nr_flag;
102	u8 rsvd1;
103	u8 flag[];
104} __packed;
105
106struct mt792x_acpi_sar {
107	u8 ver;
108	union {
109		struct mt792x_asar_dyn *dyn;
110		struct mt792x_asar_dyn_v2 *dyn_v2;
111	};
112	union {
113		struct mt792x_asar_geo *geo;
114		struct mt792x_asar_geo_v2 *geo_v2;
115	};
116	union {
117		struct mt792x_asar_cl *countrylist;
118		struct mt792x_asar_cl_v3 *countrylist_v3;
119	};
120	struct mt792x_asar_fg *fg;
121};
122
123#endif
~/ Read-only file preview.