@@ -52,56 +52,11 @@ ACPI_MODULE_NAME("evgpe")
52
52
/* Local prototypes */
53
53
static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method (void * context );
54
54
55
- /*******************************************************************************
56
- *
57
- * FUNCTION: acpi_ev_set_gpe_type
58
- *
59
- * PARAMETERS: gpe_event_info - GPE to set
60
- * Type - New type
61
- *
62
- * RETURN: Status
63
- *
64
- * DESCRIPTION: Sets the new type for the GPE (wake, run, or wake/run)
65
- *
66
- ******************************************************************************/
67
-
68
- acpi_status
69
- acpi_ev_set_gpe_type (struct acpi_gpe_event_info * gpe_event_info , u8 type )
70
- {
71
- acpi_status status ;
72
-
73
- ACPI_FUNCTION_TRACE (ev_set_gpe_type );
74
-
75
- /* Validate type and update register enable masks */
76
-
77
- switch (type ) {
78
- case ACPI_GPE_TYPE_WAKE :
79
- case ACPI_GPE_TYPE_RUNTIME :
80
- case ACPI_GPE_TYPE_WAKE_RUN :
81
- break ;
82
-
83
- default :
84
- return_ACPI_STATUS (AE_BAD_PARAMETER );
85
- }
86
-
87
- /* Disable the GPE if currently enabled */
88
-
89
- status = acpi_ev_disable_gpe (gpe_event_info );
90
-
91
- /* Clear the type bits and insert the new Type */
92
-
93
- gpe_event_info -> flags &= ~ACPI_GPE_TYPE_MASK ;
94
- gpe_event_info -> flags |= type ;
95
- return_ACPI_STATUS (status );
96
- }
97
-
98
55
/*******************************************************************************
99
56
*
100
57
* FUNCTION: acpi_ev_update_gpe_enable_masks
101
58
*
102
59
* PARAMETERS: gpe_event_info - GPE to update
103
- * Type - What to do: ACPI_GPE_DISABLE or
104
- * ACPI_GPE_ENABLE
105
60
*
106
61
* RETURN: Status
107
62
*
@@ -110,8 +65,7 @@ acpi_ev_set_gpe_type(struct acpi_gpe_event_info *gpe_event_info, u8 type)
110
65
******************************************************************************/
111
66
112
67
acpi_status
113
- acpi_ev_update_gpe_enable_masks (struct acpi_gpe_event_info * gpe_event_info ,
114
- u8 type )
68
+ acpi_ev_update_gpe_enable_masks (struct acpi_gpe_event_info * gpe_event_info )
115
69
{
116
70
struct acpi_gpe_register_info * gpe_register_info ;
117
71
u8 register_bit ;
@@ -127,37 +81,14 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info,
127
81
(1 <<
128
82
(gpe_event_info -> gpe_number - gpe_register_info -> base_gpe_number ));
129
83
130
- /* 1) Disable case. Simply clear all enable bits */
131
-
132
- if (type == ACPI_GPE_DISABLE ) {
133
- ACPI_CLEAR_BIT (gpe_register_info -> enable_for_wake ,
134
- register_bit );
135
- ACPI_CLEAR_BIT (gpe_register_info -> enable_for_run , register_bit );
136
- return_ACPI_STATUS (AE_OK );
137
- }
138
-
139
- /* 2) Enable case. Set/Clear the appropriate enable bits */
84
+ ACPI_CLEAR_BIT (gpe_register_info -> enable_for_wake , register_bit );
85
+ ACPI_CLEAR_BIT (gpe_register_info -> enable_for_run , register_bit );
140
86
141
- switch (gpe_event_info -> flags & ACPI_GPE_TYPE_MASK ) {
142
- case ACPI_GPE_TYPE_WAKE :
143
- ACPI_SET_BIT (gpe_register_info -> enable_for_wake , register_bit );
144
- ACPI_CLEAR_BIT (gpe_register_info -> enable_for_run , register_bit );
145
- break ;
146
-
147
- case ACPI_GPE_TYPE_RUNTIME :
148
- ACPI_CLEAR_BIT (gpe_register_info -> enable_for_wake ,
149
- register_bit );
87
+ if (gpe_event_info -> runtime_count )
150
88
ACPI_SET_BIT (gpe_register_info -> enable_for_run , register_bit );
151
- break ;
152
89
153
- case ACPI_GPE_TYPE_WAKE_RUN :
90
+ if ( gpe_event_info -> wakeup_count )
154
91
ACPI_SET_BIT (gpe_register_info -> enable_for_wake , register_bit );
155
- ACPI_SET_BIT (gpe_register_info -> enable_for_run , register_bit );
156
- break ;
157
-
158
- default :
159
- return_ACPI_STATUS (AE_BAD_PARAMETER );
160
- }
161
92
162
93
return_ACPI_STATUS (AE_OK );
163
94
}
@@ -186,47 +117,20 @@ acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info,
186
117
187
118
/* Make sure HW enable masks are updated */
188
119
189
- status =
190
- acpi_ev_update_gpe_enable_masks (gpe_event_info , ACPI_GPE_ENABLE );
191
- if (ACPI_FAILURE (status )) {
120
+ status = acpi_ev_update_gpe_enable_masks (gpe_event_info );
121
+ if (ACPI_FAILURE (status ))
192
122
return_ACPI_STATUS (status );
193
- }
194
123
195
124
/* Mark wake-enabled or HW enable, or both */
196
125
197
- switch (gpe_event_info -> flags & ACPI_GPE_TYPE_MASK ) {
198
- case ACPI_GPE_TYPE_WAKE :
199
-
200
- ACPI_SET_BIT (gpe_event_info -> flags , ACPI_GPE_WAKE_ENABLED );
201
- break ;
202
-
203
- case ACPI_GPE_TYPE_WAKE_RUN :
204
-
205
- ACPI_SET_BIT (gpe_event_info -> flags , ACPI_GPE_WAKE_ENABLED );
206
-
207
- /*lint -fallthrough */
208
-
209
- case ACPI_GPE_TYPE_RUNTIME :
210
-
211
- ACPI_SET_BIT (gpe_event_info -> flags , ACPI_GPE_RUN_ENABLED );
212
-
213
- if (write_to_hardware ) {
214
-
215
- /* Clear the GPE (of stale events), then enable it */
216
-
217
- status = acpi_hw_clear_gpe (gpe_event_info );
218
- if (ACPI_FAILURE (status )) {
219
- return_ACPI_STATUS (status );
220
- }
221
-
222
- /* Enable the requested runtime GPE */
223
-
224
- status = acpi_hw_write_gpe_enable_reg (gpe_event_info );
225
- }
226
- break ;
126
+ if (gpe_event_info -> runtime_count && write_to_hardware ) {
127
+ /* Clear the GPE (of stale events), then enable it */
128
+ status = acpi_hw_clear_gpe (gpe_event_info );
129
+ if (ACPI_FAILURE (status ))
130
+ return_ACPI_STATUS (status );
227
131
228
- default :
229
- return_ACPI_STATUS ( AE_BAD_PARAMETER );
132
+ /* Enable the requested runtime GPE */
133
+ status = acpi_hw_write_gpe_enable_reg ( gpe_event_info );
230
134
}
231
135
232
136
return_ACPI_STATUS (AE_OK );
@@ -252,34 +156,9 @@ acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info)
252
156
253
157
/* Make sure HW enable masks are updated */
254
158
255
- status =
256
- acpi_ev_update_gpe_enable_masks (gpe_event_info , ACPI_GPE_DISABLE );
257
- if (ACPI_FAILURE (status )) {
159
+ status = acpi_ev_update_gpe_enable_masks (gpe_event_info );
160
+ if (ACPI_FAILURE (status ))
258
161
return_ACPI_STATUS (status );
259
- }
260
-
261
- /* Clear the appropriate enabled flags for this GPE */
262
-
263
- switch (gpe_event_info -> flags & ACPI_GPE_TYPE_MASK ) {
264
- case ACPI_GPE_TYPE_WAKE :
265
- ACPI_CLEAR_BIT (gpe_event_info -> flags , ACPI_GPE_WAKE_ENABLED );
266
- break ;
267
-
268
- case ACPI_GPE_TYPE_WAKE_RUN :
269
- ACPI_CLEAR_BIT (gpe_event_info -> flags , ACPI_GPE_WAKE_ENABLED );
270
-
271
- /* fallthrough */
272
-
273
- case ACPI_GPE_TYPE_RUNTIME :
274
-
275
- /* Disable the requested runtime GPE */
276
-
277
- ACPI_CLEAR_BIT (gpe_event_info -> flags , ACPI_GPE_RUN_ENABLED );
278
- break ;
279
-
280
- default :
281
- break ;
282
- }
283
162
284
163
/*
285
164
* Even if we don't know the GPE type, make sure that we always
0 commit comments