4fc8df50fd
The clc event can report the radio configuration for the corresponding country and the driver would take it as regulatory information of a certain platform device. This patch would change the clc commnad from no-waiting to waiting for event. For backward compatible, we also add a new nic capability tag to indicate the firmware did support this new clc event from now on. Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com> Co-developed-by: Deren Wu <deren.wu@mediatek.com> Signed-off-by: Deren Wu <deren.wu@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
116 lines
1.8 KiB
C
116 lines
1.8 KiB
C
/* SPDX-License-Identifier: ISC */
|
|
/* Copyright (C) 2020 MediaTek Inc. */
|
|
|
|
#ifndef __MT7921_MCU_H
|
|
#define __MT7921_MCU_H
|
|
|
|
#include "../mt76_connac_mcu.h"
|
|
|
|
struct mt7921_mcu_tx_done_event {
|
|
u8 pid;
|
|
u8 status;
|
|
__le16 seq;
|
|
|
|
u8 wlan_idx;
|
|
u8 tx_cnt;
|
|
__le16 tx_rate;
|
|
|
|
u8 flag;
|
|
u8 tid;
|
|
u8 rsp_rate;
|
|
u8 mcs;
|
|
|
|
u8 bw;
|
|
u8 tx_pwr;
|
|
u8 reason;
|
|
u8 rsv0[1];
|
|
|
|
__le32 delay;
|
|
__le32 timestamp;
|
|
__le32 applied_flag;
|
|
u8 txs[28];
|
|
|
|
u8 rsv1[32];
|
|
} __packed;
|
|
|
|
/* ext event table */
|
|
enum {
|
|
MCU_EXT_EVENT_RATE_REPORT = 0x87,
|
|
};
|
|
|
|
struct mt7921_mcu_eeprom_info {
|
|
__le32 addr;
|
|
__le32 valid;
|
|
u8 data[MT7921_EEPROM_BLOCK_SIZE];
|
|
} __packed;
|
|
|
|
#define MT_RA_RATE_NSS GENMASK(8, 6)
|
|
#define MT_RA_RATE_MCS GENMASK(3, 0)
|
|
#define MT_RA_RATE_TX_MODE GENMASK(12, 9)
|
|
#define MT_RA_RATE_DCM_EN BIT(4)
|
|
#define MT_RA_RATE_BW GENMASK(14, 13)
|
|
|
|
enum {
|
|
MT_EBF = BIT(0), /* explicit beamforming */
|
|
MT_IBF = BIT(1) /* implicit beamforming */
|
|
};
|
|
|
|
struct mt7921_mcu_ant_id_config {
|
|
u8 ant_id[4];
|
|
} __packed;
|
|
|
|
struct mt7921_txpwr_req {
|
|
u8 ver;
|
|
u8 action;
|
|
__le16 len;
|
|
u8 dbdc_idx;
|
|
u8 rsv[3];
|
|
} __packed;
|
|
|
|
struct mt7921_txpwr_event {
|
|
u8 ver;
|
|
u8 action;
|
|
__le16 len;
|
|
struct mt7921_txpwr txpwr;
|
|
} __packed;
|
|
|
|
enum {
|
|
TM_SWITCH_MODE,
|
|
TM_SET_AT_CMD,
|
|
TM_QUERY_AT_CMD,
|
|
};
|
|
|
|
enum {
|
|
MT7921_TM_NORMAL,
|
|
MT7921_TM_TESTMODE,
|
|
MT7921_TM_ICAP,
|
|
MT7921_TM_ICAP_OVERLAP,
|
|
MT7921_TM_WIFISPECTRUM,
|
|
};
|
|
|
|
struct mt7921_rftest_cmd {
|
|
u8 action;
|
|
u8 rsv[3];
|
|
__le32 param0;
|
|
__le32 param1;
|
|
} __packed;
|
|
|
|
struct mt7921_rftest_evt {
|
|
__le32 param0;
|
|
__le32 param1;
|
|
} __packed;
|
|
|
|
struct mt7921_clc_info_tlv {
|
|
__le16 tag;
|
|
__le16 len;
|
|
|
|
u8 chan_conf; /* BIT(0) : Enable UNII-4
|
|
* BIT(1) : Enable UNII-5
|
|
* BIT(2) : Enable UNII-6
|
|
* BIT(3) : Enable UNII-7
|
|
* BIT(4) : Enable UNII-8
|
|
*/
|
|
u8 rsv[63];
|
|
} __packed;
|
|
#endif
|