GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / staging / rtlwifi / halmac / halmac_fw_info.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2016  Realtek Corporation.
5  *
6  * Contact Information:
7  * wlanfae <wlanfae@realtek.com>
8  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
9  * Hsinchu 300, Taiwan.
10  *
11  * Larry Finger <Larry.Finger@lwfinger.net>
12  *
13  *****************************************************************************/
14 #ifndef _HALMAC_FW_INFO_H_
15 #define _HALMAC_FW_INFO_H_
16
17 #define H2C_FORMAT_VERSION 6
18
19 #define H2C_ACK_HDR_CONTENT_LENGTH 8
20 #define CFG_PARAMETER_ACK_CONTENT_LENGTH 16
21 #define SCAN_STATUS_RPT_CONTENT_LENGTH 4
22 #define C2H_DBG_HEADER_LENGTH 4
23 #define C2H_DBG_CONTENT_MAX_LENGTH 228
24
25 #define C2H_DBG_CONTENT_SEQ_OFFSET 1
26
27 /* Rename from FW SysHalCom_Debug_RAM.h */
28 #define FW_REG_H2CPKT_DONE_SEQ 0x1C8
29 #define fw_reg_wow_reason 0x1C7
30
31 enum halmac_data_type {
32         HALMAC_DATA_TYPE_MAC_REG = 0x00,
33         HALMAC_DATA_TYPE_BB_REG = 0x01,
34         HALMAC_DATA_TYPE_RADIO_A = 0x02,
35         HALMAC_DATA_TYPE_RADIO_B = 0x03,
36         HALMAC_DATA_TYPE_RADIO_C = 0x04,
37         HALMAC_DATA_TYPE_RADIO_D = 0x05,
38
39         HALMAC_DATA_TYPE_DRV_DEFINE_0 = 0x80,
40         HALMAC_DATA_TYPE_DRV_DEFINE_1 = 0x81,
41         HALMAC_DATA_TYPE_DRV_DEFINE_2 = 0x82,
42         HALMAC_DATA_TYPE_DRV_DEFINE_3 = 0x83,
43         HALMAC_DATA_TYPE_UNDEFINE = 0x7FFFFFFF,
44 };
45
46 enum halmac_packet_id {
47         HALMAC_PACKET_PROBE_REQ = 0x00,
48         HALMAC_PACKET_SYNC_BCN = 0x01,
49         HALMAC_PACKET_DISCOVERY_BCN = 0x02,
50
51         HALMAC_PACKET_UNDEFINE = 0x7FFFFFFF,
52 };
53
54 /* Channel Switch Action ID */
55 enum halmac_cs_action_id {
56         HALMAC_CS_ACTION_NONE = 0x00,
57         HALMAC_CS_ACTIVE_SCAN = 0x01,
58         HALMAC_CS_NAN_NONMASTER_DW = 0x02,
59         HALMAC_CS_NAN_NONMASTER_NONDW = 0x03,
60         HALMAC_CS_NAN_MASTER_NONDW = 0x04,
61         HALMAC_CS_NAN_MASTER_DW = 0x05,
62
63         HALMAC_CS_ACTION_UNDEFINE = 0x7FFFFFFF,
64 };
65
66 /* Channel Switch Extra Action ID */
67 enum halmac_cs_extra_action_id {
68         HALMAC_CS_EXTRA_ACTION_NONE = 0x00,
69         HALMAC_CS_EXTRA_UPDATE_PROBE = 0x01,
70         HALMAC_CS_EXTRA_UPDATE_BEACON = 0x02,
71
72         HALMAC_CS_EXTRA_ACTION_UNDEFINE = 0x7FFFFFFF,
73 };
74
75 enum halmac_h2c_return_code {
76         HALMAC_H2C_RETURN_SUCCESS = 0x00,
77         HALMAC_H2C_RETURN_CFG_ERR_LEN = 0x01,
78         HALMAC_H2C_RETURN_CFG_ERR_CMD = 0x02,
79
80         HALMAC_H2C_RETURN_EFUSE_ERR_DUMP = 0x03,
81
82         HALMAC_H2C_RETURN_DATAPACK_ERR_FULL = 0x04, /* DMEM buffer full */
83         HALMAC_H2C_RETURN_DATAPACK_ERR_ID = 0x05, /* Invalid pack id */
84
85         HALMAC_H2C_RETURN_RUN_ERR_EMPTY =
86                 0x06, /* No data in dedicated buffer */
87         HALMAC_H2C_RETURN_RUN_ERR_LEN = 0x07,
88         HALMAC_H2C_RETURN_RUN_ERR_CMD = 0x08,
89         HALMAC_H2C_RETURN_RUN_ERR_ID = 0x09, /* Invalid pack id */
90
91         HALMAC_H2C_RETURN_PACKET_ERR_FULL = 0x0A, /* DMEM buffer full */
92         HALMAC_H2C_RETURN_PACKET_ERR_ID = 0x0B, /* Invalid packet id */
93
94         HALMAC_H2C_RETURN_SCAN_ERR_FULL = 0x0C, /* DMEM buffer full */
95         HALMAC_H2C_RETURN_SCAN_ERR_PHYDM = 0x0D, /* PHYDM API return fail */
96
97         HALMAC_H2C_RETURN_ORIG_ERR_ID = 0x0E, /* Invalid original H2C cmd id */
98
99         HALMAC_H2C_RETURN_UNDEFINE = 0x7FFFFFFF,
100 };
101
102 enum halmac_scan_report_code {
103         HALMAC_SCAN_REPORT_DONE = 0x00,
104         HALMAC_SCAN_REPORT_ERR_PHYDM = 0x01, /* PHYDM API return fail */
105         HALMAC_SCAN_REPORT_ERR_ID = 0x02, /* Invalid ActionID */
106         HALMAC_SCAN_REPORT_ERR_TX = 0x03, /* Tx RsvdPage fail */
107
108         HALMAC_SCAN_REPORT_UNDEFINE = 0x7FFFFFFF,
109 };
110
111 #endif