1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright(c) 2009-2014 Realtek Corporation.*/ 3 4 #ifndef __RTL92E_PWRSEQ_H__ 5 #define __RTL92E_PWRSEQ_H__ 6 7 #include "../pwrseqcmd.h" 8 /** 9 * Check document WM-20110607-Paul-RTL8192E_Power_Architecture-R02.vsd 10 * There are 6 HW Power States: 11 * 0: POFF--Power Off 12 * 1: PDN--Power Down 13 * 2: CARDEMU--Card Emulation 14 * 3: ACT--Active Mode 15 * 4: LPS--Low Power State 16 * 5: SUS--Suspend 17 * 18 * The transision from different states are defined below 19 * TRANS_CARDEMU_TO_ACT 20 * TRANS_ACT_TO_CARDEMU 21 * TRANS_CARDEMU_TO_SUS 22 * TRANS_SUS_TO_CARDEMU 23 * TRANS_CARDEMU_TO_PDN 24 * TRANS_ACT_TO_LPS 25 * TRANS_LPS_TO_ACT 26 * 27 * TRANS_END 28 * PWR SEQ Version: rtl8192E_PwrSeq_V09.h 29 */ 30 31 #define RTL8192E_TRANS_CARDEMU_TO_ACT_STEPS 18 32 #define RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS 18 33 #define RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS 18 34 #define RTL8192E_TRANS_SUS_TO_CARDEMU_STEPS 18 35 #define RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS 18 36 #define RTL8192E_TRANS_PDN_TO_CARDEMU_STEPS 18 37 #define RTL8192E_TRANS_ACT_TO_LPS_STEPS 23 38 #define RTL8192E_TRANS_LPS_TO_ACT_STEPS 23 39 #define RTL8192E_TRANS_END_STEPS 1 40 41 #define RTL8192E_TRANS_CARDEMU_TO_ACT \ 42 /* format */ \ 43 /* comments here */ \ 44 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 45 /* disable HWPDN 0x04[15]=0*/ \ 46 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 47 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0}, \ 48 /* disable SW LPS 0x04[10]=0*/ \ 49 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 50 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), 0}, \ 51 /* disable WL suspend*/ \ 52 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 53 PWR_BASEADDR_MAC , PWR_CMD_WRITE, (BIT(4)|BIT(3)), 0}, \ 54 /* wait till 0x04[17] = 1 power ready*/ \ 55 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 56 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 57 /* release WLON reset 0x04[16]=1*/ \ 58 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 59 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 60 /* polling until return 0*/ \ 61 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 62 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 63 /**/ \ 64 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 65 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(0), 0}, 66 67 #define RTL8192E_TRANS_ACT_TO_CARDEMU \ 68 /* format */ \ 69 /* comments here */ \ 70 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 71 /*0x1F[7:0] = 0 turn off RF*/ \ 72 {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 73 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0}, \ 74 /*0x4C[23]=0x4E[7]=0, switch DPDT_SEL_P output from register 0x65[2] */\ 75 {0x004E, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 76 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0}, \ 77 /*0x04[9] = 1 turn off MAC by HW state machine*/ \ 78 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 79 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 80 /*wait till 0x04[9] = 0 polling until return 0 to disable*/ \ 81 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 82 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(1), 0}, 83 84 #define RTL8192E_TRANS_CARDEMU_TO_SUS \ 85 /* format */ \ 86 /* comments here */ \ 87 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 88 /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ 89 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 90 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(4) | BIT(3), (BIT(4) | BIT(3))},\ 91 /*0x04[12:11] = 2b'01 enable WL suspend*/ \ 92 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 93 PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ 94 PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)}, \ 95 /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ 96 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 97 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)},\ 98 /*Set SDIO suspend local register*/ \ 99 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 100 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 101 /*wait power state to suspend*/ \ 102 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 103 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), 0}, 104 105 #define RTL8192E_TRANS_SUS_TO_CARDEMU \ 106 /* format */ \ 107 /* comments here */ \ 108 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 109 /*Set SDIO suspend local register*/ \ 110 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 111 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), 0}, \ 112 /*wait power state to suspend*/ \ 113 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 114 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 115 /*0x04[12:11] = 2b'00 disable WL suspend*/ \ 116 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 117 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, 118 119 #define RTL8192E_TRANS_CARDEMU_TO_CARDDIS \ 120 /* format */ \ 121 /* comments here */ \ 122 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 123 /*0x07=0x20 , SOP option to disable BG/MB*/ \ 124 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 125 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x20}, \ 126 /*Unlock small LDO Register*/ \ 127 {0x00CC, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 128 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), BIT(2)}, \ 129 /*Disable small LDO*/ \ 130 {0x0011, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 131 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0}, \ 132 /*0x04[12:11] = 2b'01 enable WL suspend*/ \ 133 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 134 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ 135 PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)}, \ 136 /*0x04[10] = 1, enable SW LPS*/ \ 137 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 138 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), BIT(2)}, \ 139 /*Set SDIO suspend local register*/ \ 140 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 141 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 142 /*wait power state to suspend*/ \ 143 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 144 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), 0}, 145 146 #define RTL8192E_TRANS_CARDDIS_TO_CARDEMU \ 147 /* format */ \ 148 /* comments here */ \ 149 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 150 /*Set SDIO suspend local register*/ \ 151 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 152 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), 0}, \ 153 /*wait power state to suspend*/ \ 154 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 155 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 156 /*Enable small LDO*/ \ 157 {0x0011, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 158 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 159 /*Lock small LDO Register*/ \ 160 {0x00CC, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 161 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), 0}, \ 162 /*0x04[12:11] = 2b'00 disable WL suspend*/ \ 163 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 164 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, 165 166 #define RTL8192E_TRANS_CARDEMU_TO_PDN \ 167 /* format */ \ 168 /* comments here */ \ 169 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 170 /* 0x04[16] = 0*/ \ 171 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 172 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0}, \ 173 /* 0x04[15] = 1*/ \ 174 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 175 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), BIT(7)}, 176 177 #define RTL8192E_TRANS_PDN_TO_CARDEMU \ 178 /* format */ \ 179 /* comments here */ \ 180 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 181 /* 0x04[15] = 0*/ \ 182 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 183 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0}, 184 185 #define RTL8192E_TRANS_ACT_TO_LPS \ 186 /* format */ \ 187 /* comments here */ \ 188 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 189 /*PCIe DMA stop*/ \ 190 {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 191 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF}, \ 192 /*Tx Pause*/ \ 193 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 194 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF}, \ 195 /*Should be zero if no packet is transmitting*/ \ 196 {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 197 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0}, \ 198 /*Should be zero if no packet is transmitting*/ \ 199 {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 200 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0}, \ 201 /*Should be zero if no packet is transmitting*/ \ 202 {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 203 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0}, \ 204 /*Should be zero if no packet is transmitting*/ \ 205 {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 206 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0}, \ 207 /*CCK and OFDM are disabled,and clock are gated*/ \ 208 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 209 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0}, \ 210 /*Delay 1us*/ \ 211 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 212 PWR_BASEADDR_MAC , PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US}, \ 213 /*Whole BB is reset*/ \ 214 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 215 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), 0}, \ 216 /*Reset MAC TRX*/ \ 217 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 218 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x03}, \ 219 /*check if removed later*/ \ 220 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 221 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), 0}, \ 222 /*When driver enter Sus/ Disable, enable LOP for BT*/ \ 223 {0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 224 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x00}, \ 225 /*Respond TxOK to scheduler*/ \ 226 {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 227 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(5), BIT(5)}, 228 229 #define RTL8192E_TRANS_LPS_TO_ACT \ 230 /* format */ \ 231 /* comments here */ \ 232 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 233 /*SDIO RPWM, For Repeatly In and out, Taggle bit should be changed*/\ 234 {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 235 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, 0xFF, 0x84}, \ 236 /*USB RPWM*/ \ 237 {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 238 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x84}, \ 239 /*PCIe RPWM*/ \ 240 {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 241 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x84}, \ 242 /*Delay*/ \ 243 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 244 PWR_BASEADDR_MAC , PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, \ 245 /*0x08[4] = 0 switch TSF to 40M*/ \ 246 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 247 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(4), 0}, \ 248 /*Polling 0x109[7]=0 TSF in 40M*/ \ 249 {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 250 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(7), 0}, \ 251 /*0x101[1] = 1*/ \ 252 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 253 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 254 /*0x100[7:0] = 0xFF enable WMAC TRX*/ \ 255 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 256 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF}, \ 257 /* 0x02[1:0] = 2b'11 enable BB macro*/ \ 258 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 259 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)},\ 260 /*0x522 = 0*/ \ 261 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 262 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0}, \ 263 /*Clear ISR*/ \ 264 {0x013D, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 265 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF}, 266 267 #define RTL8192E_TRANS_END \ 268 /* format */ \ 269 /* comments here */ \ 270 /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 271 {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 272 0, PWR_CMD_END, 0, 0}, 273 274 extern struct wlan_pwr_cfg rtl8192E_power_on_flow 275 [RTL8192E_TRANS_CARDEMU_TO_ACT_STEPS + 276 RTL8192E_TRANS_END_STEPS]; 277 extern struct wlan_pwr_cfg rtl8192E_radio_off_flow 278 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 279 RTL8192E_TRANS_END_STEPS]; 280 extern struct wlan_pwr_cfg rtl8192E_card_disable_flow 281 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 282 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS + 283 RTL8192E_TRANS_END_STEPS]; 284 extern struct wlan_pwr_cfg rtl8192E_card_enable_flow 285 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 286 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS + 287 RTL8192E_TRANS_END_STEPS]; 288 extern struct wlan_pwr_cfg rtl8192E_suspend_flow 289 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 290 RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS + 291 RTL8192E_TRANS_END_STEPS]; 292 extern struct wlan_pwr_cfg rtl8192E_resume_flow 293 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 294 RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS + 295 RTL8192E_TRANS_END_STEPS]; 296 extern struct wlan_pwr_cfg rtl8192E_hwpdn_flow 297 [RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS + 298 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS + 299 RTL8192E_TRANS_END_STEPS]; 300 extern struct wlan_pwr_cfg rtl8192E_enter_lps_flow 301 [RTL8192E_TRANS_ACT_TO_LPS_STEPS + 302 RTL8192E_TRANS_END_STEPS]; 303 extern struct wlan_pwr_cfg rtl8192E_leave_lps_flow 304 [RTL8192E_TRANS_LPS_TO_ACT_STEPS + 305 RTL8192E_TRANS_END_STEPS]; 306 307 /* RTL8192EE Power Configuration CMDs for PCIe interface */ 308 #define RTL8192E_NIC_PWR_ON_FLOW rtl8192E_power_on_flow 309 #define RTL8192E_NIC_RF_OFF_FLOW rtl8192E_radio_off_flow 310 #define RTL8192E_NIC_DISABLE_FLOW rtl8192E_card_disable_flow 311 #define RTL8192E_NIC_ENABLE_FLOW rtl8192E_card_enable_flow 312 #define RTL8192E_NIC_SUSPEND_FLOW rtl8192E_suspend_flow 313 #define RTL8192E_NIC_RESUME_FLOW rtl8192E_resume_flow 314 #define RTL8192E_NIC_PDN_FLOW rtl8192E_hwpdn_flow 315 #define RTL8192E_NIC_LPS_ENTER_FLOW rtl8192E_enter_lps_flow 316 #define RTL8192E_NIC_LPS_LEAVE_FLOW rtl8192E_leave_lps_flow 317 318 #endif 319