Linux Audio

Check our new training course

Open-source upstreaming

Need help get the support for your hardware in upstream Linux?
Loading...
Note: File does not exist in v3.1.
  1/* SPDX-License-Identifier: ISC */
  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
 18struct mt792x_asar_dyn_limit {
 19	u8 idx;
 20	u8 frp[5];
 21} __packed;
 22
 23struct mt792x_asar_dyn {
 24	u8 names[4];
 25	u8 enable;
 26	u8 nr_tbl;
 27	DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit, tbl);
 28} __packed;
 29
 30struct mt792x_asar_dyn_limit_v2 {
 31	u8 idx;
 32	u8 frp[11];
 33} __packed;
 34
 35struct mt792x_asar_dyn_v2 {
 36	u8 names[4];
 37	u8 enable;
 38	u8 rsvd;
 39	u8 nr_tbl;
 40	DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit_v2, tbl);
 41} __packed;
 42
 43struct mt792x_asar_geo_band {
 44	u8 pwr;
 45	u8 offset;
 46} __packed;
 47
 48struct mt792x_asar_geo_limit {
 49	u8 idx;
 50	/* 0:2G, 1:5G */
 51	struct mt792x_asar_geo_band band[2];
 52} __packed;
 53
 54struct mt792x_asar_geo {
 55	u8 names[4];
 56	u8 version;
 57	u8 nr_tbl;
 58	DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit, tbl);
 59} __packed;
 60
 61struct mt792x_asar_geo_limit_v2 {
 62	u8 idx;
 63	/* 0:2G, 1:5G, 2:6G */
 64	struct mt792x_asar_geo_band band[3];
 65} __packed;
 66
 67struct mt792x_asar_geo_v2 {
 68	u8 names[4];
 69	u8 version;
 70	u8 rsvd;
 71	u8 nr_tbl;
 72	DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit_v2, tbl);
 73} __packed;
 74
 75struct mt792x_asar_cl {
 76	u8 names[4];
 77	u8 version;
 78	u8 mode_6g;
 79	u8 cl6g[6];
 80	u8 mode_5g9;
 81	u8 cl5g9[6];
 82} __packed;
 83
 84struct mt792x_asar_fg {
 85	u8 names[4];
 86	u8 version;
 87	u8 rsvd;
 88	u8 nr_flag;
 89	u8 rsvd1;
 90	u8 flag[];
 91} __packed;
 92
 93struct mt792x_acpi_sar {
 94	u8 ver;
 95	union {
 96		struct mt792x_asar_dyn *dyn;
 97		struct mt792x_asar_dyn_v2 *dyn_v2;
 98	};
 99	union {
100		struct mt792x_asar_geo *geo;
101		struct mt792x_asar_geo_v2 *geo_v2;
102	};
103	struct mt792x_asar_cl *countrylist;
104	struct mt792x_asar_fg *fg;
105};
106
107#endif