Lines 27-32
ACPI_MODULE_NAME("evxfregn")
Link Here
|
27 |
* handler - Address of the handler |
27 |
* handler - Address of the handler |
28 |
* setup - Address of the setup function |
28 |
* setup - Address of the setup function |
29 |
* context - Value passed to the handler on each access |
29 |
* context - Value passed to the handler on each access |
|
|
30 |
* flags - Flags |
30 |
* |
31 |
* |
31 |
* RETURN: Status |
32 |
* RETURN: Status |
32 |
* |
33 |
* |
Lines 37-49
ACPI_MODULE_NAME("evxfregn")
Link Here
|
37 |
* are executed here, and these methods can only be safely executed after |
38 |
* are executed here, and these methods can only be safely executed after |
38 |
* the default handlers have been installed and the hardware has been |
39 |
* the default handlers have been installed and the hardware has been |
39 |
* initialized (via acpi_enable_subsystem.) |
40 |
* initialized (via acpi_enable_subsystem.) |
|
|
41 |
* To avoid this problem pass the ACPI_NO_EXEC__REG flag and |
42 |
* later call this function again with ACPI_NO_INSTALL_SPACE_HANDLER to |
43 |
* execute _REG. |
40 |
* |
44 |
* |
41 |
******************************************************************************/ |
45 |
******************************************************************************/ |
42 |
acpi_status |
46 |
acpi_status |
43 |
acpi_install_address_space_handler(acpi_handle device, |
47 |
acpi_install_address_space_handler_flags(acpi_handle device, |
44 |
acpi_adr_space_type space_id, |
48 |
acpi_adr_space_type space_id, |
45 |
acpi_adr_space_handler handler, |
49 |
acpi_adr_space_handler handler, |
46 |
acpi_adr_space_setup setup, void *context) |
50 |
acpi_adr_space_setup setup, |
|
|
51 |
void *context, |
52 |
u32 flags) |
47 |
{ |
53 |
{ |
48 |
struct acpi_namespace_node *node; |
54 |
struct acpi_namespace_node *node; |
49 |
acpi_status status; |
55 |
acpi_status status; |
Lines 70-93
acpi_install_address_space_handler(acpi_handle device,
Link Here
|
70 |
} |
76 |
} |
71 |
|
77 |
|
72 |
/* Install the handler for all Regions for this Space ID */ |
78 |
/* Install the handler for all Regions for this Space ID */ |
73 |
|
79 |
if (!(flags & ACPI_NO_INSTALL_SPACE_HANDLER)) { |
74 |
status = |
80 |
status = |
75 |
acpi_ev_install_space_handler(node, space_id, handler, setup, |
81 |
acpi_ev_install_space_handler(node, space_id, handler, setup, |
76 |
context); |
82 |
context); |
77 |
if (ACPI_FAILURE(status)) { |
83 |
if (ACPI_FAILURE(status)) |
78 |
goto unlock_and_exit; |
84 |
goto unlock_and_exit; |
79 |
} |
85 |
} |
80 |
|
86 |
|
81 |
/* Run all _REG methods for this address space */ |
87 |
/* Run all _REG methods for this address space */ |
82 |
|
88 |
if (!(flags & ACPI_NO_EXEC__REG)) |
83 |
acpi_ev_execute_reg_methods(node, space_id, ACPI_REG_CONNECT); |
89 |
acpi_ev_execute_reg_methods(node, space_id, ACPI_REG_CONNECT); |
84 |
|
90 |
|
85 |
unlock_and_exit: |
91 |
unlock_and_exit: |
86 |
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); |
92 |
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); |
87 |
return_ACPI_STATUS(status); |
93 |
return_ACPI_STATUS(status); |
88 |
} |
94 |
} |
89 |
|
95 |
|
90 |
ACPI_EXPORT_SYMBOL(acpi_install_address_space_handler) |
96 |
ACPI_EXPORT_SYMBOL(acpi_install_address_space_handler_flags) |
91 |
|
97 |
|
92 |
/******************************************************************************* |
98 |
/******************************************************************************* |
93 |
* |
99 |
* |