Commit | Line | Data |
---|---|---|
364e30eb LF |
1 | /****************************************************************************** |
2 | * | |
3 | * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved. | |
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 | ******************************************************************************/ | |
15 | #ifndef __RTL8723A_CMD_H__ | |
16 | #define __RTL8723A_CMD_H__ | |
17 | ||
18 | ||
19 | #define H2C_BT_FW_PATCH_LEN 3 | |
20 | #define H2C_BT_PWR_FORCE_LEN 3 | |
21 | ||
22 | enum cmd_msg_element_id | |
23 | { | |
24 | NONE_CMDMSG_EID, | |
25 | AP_OFFLOAD_EID = 0, | |
26 | SET_PWRMODE_EID = 1, | |
27 | JOINBSS_RPT_EID = 2, | |
28 | RSVD_PAGE_EID = 3, | |
29 | RSSI_4_EID = 4, | |
30 | RSSI_SETTING_EID = 5, | |
31 | MACID_CONFIG_EID = 6, | |
32 | MACID_PS_MODE_EID = 7, | |
33 | P2P_PS_OFFLOAD_EID = 8, | |
34 | SELECTIVE_SUSPEND_ROF_CMD = 9, | |
35 | BT_QUEUE_PKT_EID = 17, | |
36 | BT_ANT_TDMA_EID = 20, | |
37 | BT_2ANT_HID_EID = 21, | |
38 | P2P_PS_CTW_CMD_EID = 32, | |
39 | FORCE_BT_TX_PWR_EID = 33, | |
40 | SET_TDMA_WLAN_ACT_TIME_EID = 34, | |
41 | SET_BT_TX_RETRY_INDEX_EID = 35, | |
42 | HID_PROFILE_ENABLE_EID = 36, | |
43 | BT_IGNORE_WLAN_ACT_EID = 37, | |
44 | BT_PTA_MANAGER_UPDATE_ENABLE_EID = 38, | |
45 | DAC_SWING_VALUE_EID = 41, | |
46 | TRADITIONAL_TDMA_EN_EID = 51, | |
47 | H2C_BT_FW_PATCH = 54, | |
48 | B_TYPE_TDMA_EID = 58, | |
49 | SCAN_EN_EID = 59, | |
50 | LOWPWR_LPS_EID = 71, | |
51 | H2C_RESET_TSF = 75, | |
52 | MAX_CMDMSG_EID | |
53 | }; | |
54 | ||
55 | struct cmd_msg_parm { | |
56 | u8 eid; /* element id */ | |
57 | u8 sz; /* sz */ | |
58 | u8 buf[6]; | |
59 | }; | |
60 | ||
61 | struct setpwrmode_parm { | |
62 | u8 Mode; | |
63 | u8 SmartPS; | |
64 | u8 AwakeInterval; /* unit: beacon interval */ | |
65 | u8 bAllQueueUAPSD; | |
66 | ||
67 | #define SETPM_LOWRXBCN BIT(0) | |
68 | #define SETPM_AUTOANTSWITCH BIT(1) | |
69 | #define SETPM_PSALLOWBTHIGHPRI BIT(2) | |
70 | u8 BcnAntMode; | |
71 | } __packed; | |
72 | ||
73 | struct H2C_SS_RFOFF_PARAM{ | |
74 | u8 ROFOn; /* 1: on, 0:off */ | |
75 | u16 gpio_period; /* unit: 1024 us */ | |
76 | }__attribute__ ((packed)); | |
77 | ||
78 | ||
79 | struct joinbssrpt_parm { | |
80 | u8 OpMode; /* enum rt_media_status */ | |
81 | }; | |
82 | ||
83 | struct rsvdpage_loc { | |
84 | u8 LocProbeRsp; | |
85 | u8 LocPsPoll; | |
86 | u8 LocNullData; | |
87 | u8 LocQosNull; | |
88 | u8 LocBTQosNull; | |
89 | }; | |
90 | ||
91 | struct P2P_PS_Offload_t { | |
92 | u8 Offload_En:1; | |
93 | u8 role:1; /* 1: Owner, 0: Client */ | |
94 | u8 CTWindow_En:1; | |
95 | u8 NoA0_En:1; | |
96 | u8 NoA1_En:1; | |
97 | u8 AllStaSleep:1; /* Only valid in Owner */ | |
98 | u8 discovery:1; | |
99 | u8 rsvd:1; | |
100 | }; | |
101 | ||
102 | struct P2P_PS_CTWPeriod_t { | |
103 | u8 CTWPeriod; /* TU */ | |
104 | }; | |
105 | ||
106 | #define B_TDMA_EN BIT(0) | |
107 | #define B_TDMA_FIXANTINBT BIT(1) | |
108 | #define B_TDMA_TXPSPOLL BIT(2) | |
109 | #define B_TDMA_VAL870 BIT(3) | |
110 | #define B_TDMA_AUTOWAKEUP BIT(4) | |
111 | #define B_TDMA_NOPS BIT(5) | |
112 | #define B_TDMA_WLANHIGHPRI BIT(6) | |
113 | ||
114 | struct b_type_tdma_parm { | |
115 | u8 option; | |
116 | ||
117 | u8 TBTTOnPeriod; | |
118 | u8 MedPeriod; | |
119 | u8 rsvd30; | |
120 | } __packed; | |
121 | ||
122 | struct scan_en_parm { | |
123 | u8 En; | |
124 | } __packed; | |
125 | ||
126 | /* BT_PWR */ | |
127 | #define SET_H2CCMD_BT_PWR_IDX(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE_8BIT(__pH2CCmd, 0, 8, __Value) | |
128 | ||
129 | /* BT_FW_PATCH */ | |
130 | #define SET_H2CCMD_BT_FW_PATCH_ENABLE(__pH2CCmd, __Value) SET_BITS_TO_LE_4BYTE(__pH2CCmd, 0, 8, __Value) /* SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) */ | |
131 | #define SET_H2CCMD_BT_FW_PATCH_SIZE(__pH2CCmd, __Value) SET_BITS_TO_LE_4BYTE(__pH2CCmd, 8, 16, __Value) /* SET_BITS_TO_LE_2BYTE((__pH2CCmd)+1, 0, 16, __Value) */ | |
132 | ||
133 | struct lowpwr_lps_parm{ | |
134 | u8 bcn_count:4; | |
135 | u8 tb_bcn_threshold:3; | |
136 | u8 enable:1; | |
137 | u8 bcn_interval; | |
138 | u8 drop_threshold; | |
139 | u8 max_early_period; | |
140 | u8 max_bcn_timeout_period; | |
141 | } __packed; | |
142 | ||
143 | ||
144 | /* host message to firmware cmd */ | |
95d412d8 JS |
145 | void rtl8723a_set_FwPwrMode_cmd(struct rtw_adapter *padapter, u8 Mode); |
146 | void rtl8723a_set_FwJoinBssReport_cmd(struct rtw_adapter *padapter, u8 mstatus); | |
364e30eb | 147 | #ifdef CONFIG_8723AU_BT_COEXIST |
95d412d8 | 148 | void rtl8723a_set_BTCoex_AP_mode_FwRsvdPkt_cmd(struct rtw_adapter *padapter); |
ec6d6871 JS |
149 | #else |
150 | #define rtl8723a_set_BTCoex_AP_mode_FwRsvdPkt_cmd(padapter) do {} while(0) | |
364e30eb | 151 | #endif |
485b099a | 152 | int rtl8723a_set_rssi_cmd(struct rtw_adapter *padapter, u32 param); |
95d412d8 JS |
153 | int rtl8723a_set_raid_cmd(struct rtw_adapter *padapter, u32 mask, u8 arg); |
154 | void rtl8723a_add_rateatid(struct rtw_adapter *padapter, u32 bitmap, u8 arg, u8 rssi_level); | |
364e30eb | 155 | |
37987866 JS |
156 | int FillH2CCmd(struct rtw_adapter *padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer); |
157 | ||
364e30eb | 158 | #endif |