Linux-libre 4.14.69-gnu
[librecmc/linux-libre.git] / drivers / staging / rtlwifi / halmac / halmac_fw_info.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2016  Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *
24  *****************************************************************************/
25 #ifndef _HALMAC_FW_INFO_H_
26 #define _HALMAC_FW_INFO_H_
27
28 #define H2C_FORMAT_VERSION 6
29
30 #define H2C_ACK_HDR_CONTENT_LENGTH 8
31 #define CFG_PARAMETER_ACK_CONTENT_LENGTH 16
32 #define SCAN_STATUS_RPT_CONTENT_LENGTH 4
33 #define C2H_DBG_HEADER_LENGTH 4
34 #define C2H_DBG_CONTENT_MAX_LENGTH 228
35
36 #define C2H_DBG_CONTENT_SEQ_OFFSET 1
37
38 /* Rename from FW SysHalCom_Debug_RAM.h */
39 #define FW_REG_H2CPKT_DONE_SEQ 0x1C8
40 #define fw_reg_wow_reason 0x1C7
41
42 enum halmac_data_type {
43         HALMAC_DATA_TYPE_MAC_REG = 0x00,
44         HALMAC_DATA_TYPE_BB_REG = 0x01,
45         HALMAC_DATA_TYPE_RADIO_A = 0x02,
46         HALMAC_DATA_TYPE_RADIO_B = 0x03,
47         HALMAC_DATA_TYPE_RADIO_C = 0x04,
48         HALMAC_DATA_TYPE_RADIO_D = 0x05,
49
50         HALMAC_DATA_TYPE_DRV_DEFINE_0 = 0x80,
51         HALMAC_DATA_TYPE_DRV_DEFINE_1 = 0x81,
52         HALMAC_DATA_TYPE_DRV_DEFINE_2 = 0x82,
53         HALMAC_DATA_TYPE_DRV_DEFINE_3 = 0x83,
54         HALMAC_DATA_TYPE_UNDEFINE = 0x7FFFFFFF,
55 };
56
57 enum halmac_packet_id {
58         HALMAC_PACKET_PROBE_REQ = 0x00,
59         HALMAC_PACKET_SYNC_BCN = 0x01,
60         HALMAC_PACKET_DISCOVERY_BCN = 0x02,
61
62         HALMAC_PACKET_UNDEFINE = 0x7FFFFFFF,
63 };
64
65 /* Channel Switch Action ID */
66 enum halmac_cs_action_id {
67         HALMAC_CS_ACTION_NONE = 0x00,
68         HALMAC_CS_ACTIVE_SCAN = 0x01,
69         HALMAC_CS_NAN_NONMASTER_DW = 0x02,
70         HALMAC_CS_NAN_NONMASTER_NONDW = 0x03,
71         HALMAC_CS_NAN_MASTER_NONDW = 0x04,
72         HALMAC_CS_NAN_MASTER_DW = 0x05,
73
74         HALMAC_CS_ACTION_UNDEFINE = 0x7FFFFFFF,
75 };
76
77 /* Channel Switch Extra Action ID */
78 enum halmac_cs_extra_action_id {
79         HALMAC_CS_EXTRA_ACTION_NONE = 0x00,
80         HALMAC_CS_EXTRA_UPDATE_PROBE = 0x01,
81         HALMAC_CS_EXTRA_UPDATE_BEACON = 0x02,
82
83         HALMAC_CS_EXTRA_ACTION_UNDEFINE = 0x7FFFFFFF,
84 };
85
86 enum halmac_h2c_return_code {
87         HALMAC_H2C_RETURN_SUCCESS = 0x00,
88         HALMAC_H2C_RETURN_CFG_ERR_LEN = 0x01,
89         HALMAC_H2C_RETURN_CFG_ERR_CMD = 0x02,
90
91         HALMAC_H2C_RETURN_EFUSE_ERR_DUMP = 0x03,
92
93         HALMAC_H2C_RETURN_DATAPACK_ERR_FULL = 0x04, /* DMEM buffer full */
94         HALMAC_H2C_RETURN_DATAPACK_ERR_ID = 0x05, /* Invalid pack id */
95
96         HALMAC_H2C_RETURN_RUN_ERR_EMPTY =
97                 0x06, /* No data in dedicated buffer */
98         HALMAC_H2C_RETURN_RUN_ERR_LEN = 0x07,
99         HALMAC_H2C_RETURN_RUN_ERR_CMD = 0x08,
100         HALMAC_H2C_RETURN_RUN_ERR_ID = 0x09, /* Invalid pack id */
101
102         HALMAC_H2C_RETURN_PACKET_ERR_FULL = 0x0A, /* DMEM buffer full */
103         HALMAC_H2C_RETURN_PACKET_ERR_ID = 0x0B, /* Invalid packet id */
104
105         HALMAC_H2C_RETURN_SCAN_ERR_FULL = 0x0C, /* DMEM buffer full */
106         HALMAC_H2C_RETURN_SCAN_ERR_PHYDM = 0x0D, /* PHYDM API return fail */
107
108         HALMAC_H2C_RETURN_ORIG_ERR_ID = 0x0E, /* Invalid original H2C cmd id */
109
110         HALMAC_H2C_RETURN_UNDEFINE = 0x7FFFFFFF,
111 };
112
113 enum halmac_scan_report_code {
114         HALMAC_SCAN_REPORT_DONE = 0x00,
115         HALMAC_SCAN_REPORT_ERR_PHYDM = 0x01, /* PHYDM API return fail */
116         HALMAC_SCAN_REPORT_ERR_ID = 0x02, /* Invalid ActionID */
117         HALMAC_SCAN_REPORT_ERR_TX = 0x03, /* Tx RsvdPage fail */
118
119         HALMAC_SCAN_REPORT_UNDEFINE = 0x7FFFFFFF,
120 };
121
122 #endif