Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux/fpc-iii.git] / drivers / net / wireless / realtek / rtlwifi / rtl8821ae / pwrseq.c
blob9ddf78a187dd46e763e8a79192f3d6e956959100
1 /******************************************************************************
3 * Copyright(c) 2009-2010 Realtek Corporation.
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.
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.
14 * The full GNU General Public License is included in this distribution in the
15 * file called LICENSE.
17 * Contact Information:
18 * wlanfae <wlanfae@realtek.com>
19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20 * Hsinchu 300, Taiwan.
22 * Larry Finger <Larry.Finger@lwfinger.net>
24 *****************************************************************************/
26 #include "../pwrseqcmd.h"
27 #include "pwrseq.h"
29 /* drivers should parse below arrays and do the corresponding actions */
30 /* 3 Power on Array */
31 struct wlan_pwr_cfg rtl8812_power_on_flow[RTL8812_TRANS_CARDEMU_TO_ACT_STEPS +
32 RTL8812_TRANS_END_STEPS] = {
33 RTL8812_TRANS_CARDEMU_TO_ACT
34 RTL8812_TRANS_END
37 /* 3Radio off GPIO Array */
38 struct wlan_pwr_cfg rtl8812_radio_off_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
39 RTL8812_TRANS_END_STEPS] = {
40 RTL8812_TRANS_ACT_TO_CARDEMU
41 RTL8812_TRANS_END
44 /* 3Card Disable Array */
45 struct wlan_pwr_cfg rtl8812_card_disable_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS
46 + RTL8812_TRANS_CARDEMU_TO_PDN_STEPS
47 + RTL8812_TRANS_END_STEPS] = {
48 RTL8812_TRANS_ACT_TO_CARDEMU
49 RTL8812_TRANS_CARDEMU_TO_CARDDIS
50 RTL8812_TRANS_END
53 /* 3 Card Enable Array */
54 struct wlan_pwr_cfg rtl8812_card_enable_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS
55 + RTL8812_TRANS_CARDEMU_TO_PDN_STEPS
56 + RTL8812_TRANS_END_STEPS] = {
57 RTL8812_TRANS_CARDDIS_TO_CARDEMU
58 RTL8812_TRANS_CARDEMU_TO_ACT
59 RTL8812_TRANS_END
62 /* 3Suspend Array */
63 struct wlan_pwr_cfg rtl8812_suspend_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
64 RTL8812_TRANS_CARDEMU_TO_SUS_STEPS +
65 RTL8812_TRANS_END_STEPS] = {
66 RTL8812_TRANS_ACT_TO_CARDEMU
67 RTL8812_TRANS_CARDEMU_TO_SUS
68 RTL8812_TRANS_END
71 /* 3 Resume Array */
72 struct wlan_pwr_cfg rtl8812_resume_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
73 RTL8812_TRANS_CARDEMU_TO_SUS_STEPS +
74 RTL8812_TRANS_END_STEPS] = {
75 RTL8812_TRANS_SUS_TO_CARDEMU
76 RTL8812_TRANS_CARDEMU_TO_ACT
77 RTL8812_TRANS_END
80 /* 3HWPDN Array */
81 struct wlan_pwr_cfg rtl8812_hwpdn_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
82 RTL8812_TRANS_CARDEMU_TO_PDN_STEPS +
83 RTL8812_TRANS_END_STEPS] = {
84 RTL8812_TRANS_ACT_TO_CARDEMU
85 RTL8812_TRANS_CARDEMU_TO_PDN
86 RTL8812_TRANS_END
89 /* 3 Enter LPS */
90 struct wlan_pwr_cfg rtl8812_enter_lps_flow[RTL8812_TRANS_ACT_TO_LPS_STEPS +
91 RTL8812_TRANS_END_STEPS] = {
92 /* FW behavior */
93 RTL8812_TRANS_ACT_TO_LPS
94 RTL8812_TRANS_END
97 /* 3 Leave LPS */
98 struct wlan_pwr_cfg rtl8812_leave_lps_flow[RTL8812_TRANS_LPS_TO_ACT_STEPS +
99 RTL8812_TRANS_END_STEPS] = {
100 /* FW behavior */
101 RTL8812_TRANS_LPS_TO_ACT
102 RTL8812_TRANS_END
105 /* drivers should parse below arrays and do the corresponding actions */
106 /*3 Power on Array*/
107 struct wlan_pwr_cfg rtl8821A_power_on_flow[RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS
108 + RTL8821A_TRANS_END_STEPS] = {
109 RTL8821A_TRANS_CARDEMU_TO_ACT
110 RTL8821A_TRANS_END
113 /*3Radio off GPIO Array */
114 struct wlan_pwr_cfg rtl8821A_radio_off_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
115 + RTL8821A_TRANS_END_STEPS] = {
116 RTL8821A_TRANS_ACT_TO_CARDEMU
117 RTL8821A_TRANS_END
120 /*3Card Disable Array*/
121 struct wlan_pwr_cfg rtl8821A_card_disable_flow
122 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
123 + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS
124 + RTL8821A_TRANS_END_STEPS] = {
125 RTL8821A_TRANS_ACT_TO_CARDEMU
126 RTL8821A_TRANS_CARDEMU_TO_CARDDIS
127 RTL8821A_TRANS_END
130 /*3 Card Enable Array*/
131 /*RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS*/
132 struct wlan_pwr_cfg rtl8821A_card_enable_flow
133 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
134 + RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS
135 + RTL8821A_TRANS_END_STEPS] = {
136 RTL8821A_TRANS_CARDDIS_TO_CARDEMU
137 RTL8821A_TRANS_CARDEMU_TO_ACT
138 RTL8821A_TRANS_END
141 /*3Suspend Array*/
142 struct wlan_pwr_cfg rtl8821A_suspend_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
143 + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS
144 + RTL8821A_TRANS_END_STEPS] = {
145 RTL8821A_TRANS_ACT_TO_CARDEMU
146 RTL8821A_TRANS_CARDEMU_TO_SUS
147 RTL8821A_TRANS_END
150 /*3 Resume Array*/
151 struct wlan_pwr_cfg rtl8821A_resume_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
152 + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS
153 + RTL8821A_TRANS_END_STEPS] = {
154 RTL8821A_TRANS_SUS_TO_CARDEMU
155 RTL8821A_TRANS_CARDEMU_TO_ACT
156 RTL8821A_TRANS_END
159 /*3HWPDN Array*/
160 struct wlan_pwr_cfg rtl8821A_hwpdn_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS
161 + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS
162 + RTL8821A_TRANS_END_STEPS] = {
163 RTL8821A_TRANS_ACT_TO_CARDEMU
164 RTL8821A_TRANS_CARDEMU_TO_PDN
165 RTL8821A_TRANS_END
168 /*3 Enter LPS */
169 struct wlan_pwr_cfg rtl8821A_enter_lps_flow[RTL8821A_TRANS_ACT_TO_LPS_STEPS
170 + RTL8821A_TRANS_END_STEPS] = {
171 /*FW behavior*/
172 RTL8821A_TRANS_ACT_TO_LPS
173 RTL8821A_TRANS_END
176 /*3 Leave LPS */
177 struct wlan_pwr_cfg rtl8821A_leave_lps_flow[RTL8821A_TRANS_LPS_TO_ACT_STEPS
178 + RTL8821A_TRANS_END_STEPS] = {
179 /*FW behavior*/
180 RTL8821A_TRANS_LPS_TO_ACT
181 RTL8821A_TRANS_END