Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/drivers/acpi/utilities/utxface.c (Version 2.6.25) and /linux/drivers/acpi/utilities/utxface.c (Version 2.6.31.13)


  1 /*********************************************      1 
  2  *                                                
  3  * Module Name: utxface - External interfaces     
  4  *                                                
  5  *********************************************    
  6                                                   
  7 /*                                                
  8  * Copyright (C) 2000 - 2007, R. Byron Moore      
  9  * All rights reserved.                           
 10  *                                                
 11  * Redistribution and use in source and binary    
 12  * modification, are permitted provided that t    
 13  * are met:                                       
 14  * 1. Redistributions of source code must reta    
 15  *    notice, this list of conditions, and the    
 16  *    without modification.                       
 17  * 2. Redistributions in binary form must repr    
 18  *    substantially similar to the "NO WARRANT    
 19  *    ("Disclaimer") and any redistribution mu    
 20  *    including a substantially similar Discla    
 21  *    binary redistribution.                      
 22  * 3. Neither the names of the above-listed co    
 23  *    of any contributors may be used to endor    
 24  *    from this software without specific prio    
 25  *                                                
 26  * Alternatively, this software may be distrib    
 27  * GNU General Public License ("GPL") version     
 28  * Software Foundation.                           
 29  *                                                
 30  * NO WARRANTY                                    
 31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT     
 32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTI    
 33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCH    
 34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO     
 35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECI    
 36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PRO    
 37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS;    
 38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILI    
 39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIG    
 40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,    
 41  * POSSIBILITY OF SUCH DAMAGES.                   
 42  */                                               
 43                                                   
 44 #include <acpi/acpi.h>                            
 45 #include <acpi/acevents.h>                        
 46 #include <acpi/acnamesp.h>                        
 47 #include <acpi/acdebug.h>                         
 48                                                   
 49 #define _COMPONENT          ACPI_UTILITIES        
 50 ACPI_MODULE_NAME("utxface")                       
 51                                                   
 52 /*********************************************    
 53  *                                                
 54  * FUNCTION:    acpi_initialize_subsystem         
 55  *                                                
 56  * PARAMETERS:  None                              
 57  *                                                
 58  * RETURN:      Status                            
 59  *                                                
 60  * DESCRIPTION: Initializes all global variabl    
 61  *              called, so any early initializ    
 62  *                                                
 63  *********************************************    
 64 acpi_status __init acpi_initialize_subsystem(v    
 65 {                                                 
 66         acpi_status status;                       
 67                                                   
 68         ACPI_FUNCTION_TRACE(acpi_initialize_su    
 69                                                   
 70         acpi_gbl_startup_flags = ACPI_SUBSYSTE    
 71         ACPI_DEBUG_EXEC(acpi_ut_init_stack_ptr    
 72                                                   
 73         /* Initialize the OS-Dependent layer *    
 74                                                   
 75         status = acpi_os_initialize();            
 76         if (ACPI_FAILURE(status)) {               
 77                 ACPI_EXCEPTION((AE_INFO, statu    
 78                 return_ACPI_STATUS(status);       
 79         }                                         
 80                                                   
 81         /* Initialize all globals used by the     
 82                                                   
 83         acpi_ut_init_globals();                   
 84                                                   
 85         /* Create the default mutex objects */    
 86                                                   
 87         status = acpi_ut_mutex_initialize();      
 88         if (ACPI_FAILURE(status)) {               
 89                 ACPI_EXCEPTION((AE_INFO, statu    
 90                                 "During Global    
 91                 return_ACPI_STATUS(status);       
 92         }                                         
 93                                                   
 94         /*                                        
 95          * Initialize the namespace manager an    
 96          * the root of the namespace tree         
 97          */                                       
 98         status = acpi_ns_root_initialize();       
 99         if (ACPI_FAILURE(status)) {               
100                 ACPI_EXCEPTION((AE_INFO, statu    
101                                 "During Namesp    
102                 return_ACPI_STATUS(status);       
103         }                                         
104                                                   
105         /* If configured, initialize the AML d    
106                                                   
107         ACPI_DEBUGGER_EXEC(status = acpi_db_in    
108         return_ACPI_STATUS(status);               
109 }                                                 
110                                                   
111 /*********************************************    
112  *                                                
113  * FUNCTION:    acpi_enable_subsystem             
114  *                                                
115  * PARAMETERS:  Flags           - Init/enable     
116  *                                                
117  * RETURN:      Status                            
118  *                                                
119  * DESCRIPTION: Completes the subsystem initia    
120  *              Puts system into ACPI mode if     
121  *                                                
122  *********************************************    
123 acpi_status acpi_enable_subsystem(u32 flags)      
124 {                                                 
125         acpi_status status = AE_OK;               
126                                                   
127         ACPI_FUNCTION_TRACE(acpi_enable_subsys    
128                                                   
129         /* Enable ACPI mode */                    
130                                                   
131         if (!(flags & ACPI_NO_ACPI_ENABLE)) {     
132                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
133                                   "[Init] Goin    
134                                                   
135                 acpi_gbl_original_mode = acpi_    
136                                                   
137                 status = acpi_enable();           
138                 if (ACPI_FAILURE(status)) {       
139                         ACPI_WARNING((AE_INFO,    
140                         return_ACPI_STATUS(sta    
141                 }                                 
142         }                                         
143                                                   
144         /*                                        
145          * Install the default op_region handl    
146          * other handlers have already been in    
147          * install_address_space_handler inter    
148          */                                       
149         if (!(flags & ACPI_NO_ADDRESS_SPACE_IN    
150                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
151                                   "[Init] Inst    
152                                                   
153                 status = acpi_ev_install_regio    
154                 if (ACPI_FAILURE(status)) {       
155                         return_ACPI_STATUS(sta    
156                 }                                 
157         }                                         
158                                                   
159         /*                                        
160          * Initialize ACPI Event handling (Fix    
161          *                                        
162          * Note1: We must have the hardware an    
163          * execute any control methods safely.    
164          * ACPI hardware support, so the hardw    
165          * any method execution!                  
166          *                                        
167          * Note2: Fixed events are initialized    
168          * initialized, but cannot be enabled     
169          * completely initialized (SCI and glo    
170          */                                       
171         if (!(flags & ACPI_NO_EVENT_INIT)) {      
172                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
173                                   "[Init] Init    
174                                                   
175                 status = acpi_ev_initialize_ev    
176                 if (ACPI_FAILURE(status)) {       
177                         return_ACPI_STATUS(sta    
178                 }                                 
179         }                                         
180                                                   
181         /*                                        
182          * Install the SCI handler and Global     
183          * hardware initialization.               
184          */                                       
185         if (!(flags & ACPI_NO_HANDLER_INIT)) {    
186                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
187                                   "[Init] Inst    
188                                                   
189                 status = acpi_ev_install_xrupt    
190                 if (ACPI_FAILURE(status)) {       
191                         return_ACPI_STATUS(sta    
192                 }                                 
193         }                                         
194                                                   
195         /*                                        
196          * Complete the GPE initialization for    
197          * (GPE block 0 and 1).                   
198          *                                        
199          * Note1: This is where the _PRW metho    
200          * methods can only be executed after     
201          * installed and initialized.             
202          *                                        
203          * Note2: Currently, there seems to be    
204          * before execution of the _PRW method    
205          */                                       
206         if (!(flags & ACPI_NO_EVENT_INIT)) {      
207                 status = acpi_ev_install_fadt_    
208                 if (ACPI_FAILURE(status)) {       
209                         return (status);          
210                 }                                 
211         }                                         
212                                                   
213         return_ACPI_STATUS(status);               
214 }                                                 
215                                                   
216 ACPI_EXPORT_SYMBOL(acpi_enable_subsystem)         
217                                                   
218 /*********************************************    
219  *                                                
220  * FUNCTION:    acpi_initialize_objects           
221  *                                                
222  * PARAMETERS:  Flags           - Init/enable     
223  *                                                
224  * RETURN:      Status                            
225  *                                                
226  * DESCRIPTION: Completes namespace initializa    
227  *              objects and executing AML code    
228  *                                                
229  *********************************************    
230 acpi_status acpi_initialize_objects(u32 flags)    
231 {                                                 
232         acpi_status status = AE_OK;               
233                                                   
234         ACPI_FUNCTION_TRACE(acpi_initialize_ob    
235                                                   
236         /*                                        
237          * Run all _REG methods                   
238          *                                        
239          * Note: Any objects accessed by the _    
240          * initialized, even if they contain e    
241          * acpi_ns_initialize_objects below).     
242          */                                       
243         if (!(flags & ACPI_NO_ADDRESS_SPACE_IN    
244                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
245                                   "[Init] Exec    
246                                                   
247                 status = acpi_ev_initialize_op    
248                 if (ACPI_FAILURE(status)) {       
249                         return_ACPI_STATUS(sta    
250                 }                                 
251         }                                         
252                                                   
253         /*                                        
254          * Initialize the objects that remain     
255          * executable AML that may be part of     
256          * operation_regions, buffer_fields, B    
257          */                                       
258         if (!(flags & ACPI_NO_OBJECT_INIT)) {     
259                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
260                                   "[Init] Comp    
261                                                   
262                 status = acpi_ns_initialize_ob    
263                 if (ACPI_FAILURE(status)) {       
264                         return_ACPI_STATUS(sta    
265                 }                                 
266         }                                         
267                                                   
268         /*                                        
269          * Initialize all device objects in th    
270          * _STA and _INI methods.                 
271          */                                       
272         if (!(flags & ACPI_NO_DEVICE_INIT)) {     
273                 ACPI_DEBUG_PRINT((ACPI_DB_EXEC    
274                                   "[Init] Init    
275                                                   
276                 status = acpi_ns_initialize_de    
277                 if (ACPI_FAILURE(status)) {       
278                         return_ACPI_STATUS(sta    
279                 }                                 
280         }                                         
281                                                   
282         /*                                        
283          * Empty the caches (delete the cached    
284          * the table load filled them up more     
285          * thus wasting non-paged memory.         
286          */                                       
287         status = acpi_purge_cached_objects();     
288                                                   
289         acpi_gbl_startup_flags |= ACPI_INITIAL    
290         return_ACPI_STATUS(status);               
291 }                                                 
292                                                   
293 ACPI_EXPORT_SYMBOL(acpi_initialize_objects)       
294                                                   
295 /*********************************************    
296  *                                                
297  * FUNCTION:    acpi_terminate                    
298  *                                                
299  * PARAMETERS:  None                              
300  *                                                
301  * RETURN:      Status                            
302  *                                                
303  * DESCRIPTION: Shutdown the ACPI subsystem.      
304  *                                                
305  *********************************************    
306 acpi_status acpi_terminate(void)                  
307 {                                                 
308         acpi_status status;                       
309                                                   
310         ACPI_FUNCTION_TRACE(acpi_terminate);      
311                                                   
312         /* Terminate the AML Debugger if prese    
313                                                   
314         ACPI_DEBUGGER_EXEC(acpi_gbl_db_termina    
315                                                   
316         /* Shutdown and free all resources */     
317                                                   
318         acpi_ut_subsystem_shutdown();             
319                                                   
320         /* Free the mutex objects */              
321                                                   
322         acpi_ut_mutex_terminate();                
323                                                   
324 #ifdef ACPI_DEBUGGER                              
325                                                   
326         /* Shut down the debugger */              
327                                                   
328         acpi_db_terminate();                      
329 #endif                                            
330                                                   
331         /* Now we can shutdown the OS-dependen    
332                                                   
333         status = acpi_os_terminate();             
334         return_ACPI_STATUS(status);               
335 }                                                 
336                                                   
337 ACPI_EXPORT_SYMBOL(acpi_terminate)                
338 #ifdef ACPI_FUTURE_USAGE                          
339 /*********************************************    
340  *                                                
341  * FUNCTION:    acpi_subsystem_status             
342  *                                                
343  * PARAMETERS:  None                              
344  *                                                
345  * RETURN:      Status of the ACPI subsystem      
346  *                                                
347  * DESCRIPTION: Other drivers that use the ACP    
348  *              before making any other calls,    
349  *              initialized successfully.         
350  *                                                
351  *********************************************    
352 acpi_status acpi_subsystem_status(void)           
353 {                                                 
354                                                   
355         if (acpi_gbl_startup_flags & ACPI_INIT    
356                 return (AE_OK);                   
357         } else {                                  
358                 return (AE_ERROR);                
359         }                                         
360 }                                                 
361                                                   
362 ACPI_EXPORT_SYMBOL(acpi_subsystem_status)         
363                                                   
364 /*********************************************    
365  *                                                
366  * FUNCTION:    acpi_get_system_info              
367  *                                                
368  * PARAMETERS:  out_buffer      - A buffer to     
369  *                                device          
370  *                                                
371  * RETURN:      Status          - the status o    
372  *                                                
373  * DESCRIPTION: This function is called to get    
374  *              state of the ACPI subsystem.      
375  *              in the out_buffer.                
376  *                                                
377  *              If the function fails an appro    
378  *              and the value of out_buffer is    
379  *                                                
380  *********************************************    
381 acpi_status acpi_get_system_info(struct acpi_b    
382 {                                                 
383         struct acpi_system_info *info_ptr;        
384         acpi_status status;                       
385                                                   
386         ACPI_FUNCTION_TRACE(acpi_get_system_in    
387                                                   
388         /* Parameter validation */                
389                                                   
390         status = acpi_ut_validate_buffer(out_b    
391         if (ACPI_FAILURE(status)) {               
392                 return_ACPI_STATUS(status);       
393         }                                         
394                                                   
395         /* Validate/Allocate/Clear caller buff    
396                                                   
397         status =                                  
398             acpi_ut_initialize_buffer(out_buff    
399                                       sizeof(s    
400         if (ACPI_FAILURE(status)) {               
401                 return_ACPI_STATUS(status);       
402         }                                         
403                                                   
404         /*                                        
405          * Populate the return buffer             
406          */                                       
407         info_ptr = (struct acpi_system_info *)    
408                                                   
409         info_ptr->acpi_ca_version = ACPI_CA_VE    
410                                                   
411         /* System flags (ACPI capabilities) */    
412                                                   
413         info_ptr->flags = ACPI_SYS_MODE_ACPI;     
414                                                   
415         /* Timer resolution - 24 or 32 bits  *    
416                                                   
417         if (acpi_gbl_FADT.flags & ACPI_FADT_32    
418                 info_ptr->timer_resolution = 2    
419         } else {                                  
420                 info_ptr->timer_resolution = 3    
421         }                                         
422                                                   
423         /* Clear the reserved fields */           
424                                                   
425         info_ptr->reserved1 = 0;                  
426         info_ptr->reserved2 = 0;                  
427                                                   
428         /* Current debug levels */                
429                                                   
430         info_ptr->debug_layer = acpi_dbg_layer    
431         info_ptr->debug_level = acpi_dbg_level    
432                                                   
433         return_ACPI_STATUS(AE_OK);                
434 }                                                 
435                                                   
436 ACPI_EXPORT_SYMBOL(acpi_get_system_info)          
437                                                   
438 /*********************************************    
439  *                                                
440  * FUNCTION:    acpi_install_initialization_ha    
441  *                                                
442  * PARAMETERS:  Handler             - Callback    
443  *              Function            - Not (cur    
444  *                                                
445  * RETURN:      Status                            
446  *                                                
447  * DESCRIPTION: Install an initialization hand    
448  *                                                
449  * TBD: When a second function is added, must     
450  *                                                
451  *********************************************    
452 acpi_status                                       
453 acpi_install_initialization_handler(acpi_init_    
454 {                                                 
455                                                   
456         if (!handler) {                           
457                 return (AE_BAD_PARAMETER);        
458         }                                         
459                                                   
460         if (acpi_gbl_init_handler) {              
461                 return (AE_ALREADY_EXISTS);       
462         }                                         
463                                                   
464         acpi_gbl_init_handler = handler;          
465         return AE_OK;                             
466 }                                                 
467                                                   
468 ACPI_EXPORT_SYMBOL(acpi_install_initialization    
469 #endif                          /*  ACPI_FUTUR    
470 /*********************************************    
471  *                                                
472  * FUNCTION:    acpi_purge_cached_objects         
473  *                                                
474  * PARAMETERS:  None                              
475  *                                                
476  * RETURN:      Status                            
477  *                                                
478  * DESCRIPTION: Empty all caches (delete the c    
479  *                                                
480  *********************************************    
481 acpi_status acpi_purge_cached_objects(void)       
482 {                                                 
483         ACPI_FUNCTION_TRACE(acpi_purge_cached_    
484                                                   
485         (void)acpi_os_purge_cache(acpi_gbl_sta    
486         (void)acpi_os_purge_cache(acpi_gbl_ope    
487         (void)acpi_os_purge_cache(acpi_gbl_ps_    
488         (void)acpi_os_purge_cache(acpi_gbl_ps_    
489         return_ACPI_STATUS(AE_OK);                
490 }                                                 
491                                                   
492 ACPI_EXPORT_SYMBOL(acpi_purge_cached_objects)     
493                                                   
  This page was automatically generated by the LXR engine.