diff options
Diffstat (limited to 'include/acpi/acpi_bus.h')
| -rw-r--r-- | include/acpi/acpi_bus.h | 334 |
1 files changed, 159 insertions, 175 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 8d0e1290bc76..0b54e9a4a8a1 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
| @@ -35,48 +35,41 @@ | |||
| 35 | /* TBD: Make dynamic */ | 35 | /* TBD: Make dynamic */ |
| 36 | #define ACPI_MAX_HANDLES 10 | 36 | #define ACPI_MAX_HANDLES 10 |
| 37 | struct acpi_handle_list { | 37 | struct acpi_handle_list { |
| 38 | u32 count; | 38 | u32 count; |
| 39 | acpi_handle handles[ACPI_MAX_HANDLES]; | 39 | acpi_handle handles[ACPI_MAX_HANDLES]; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | |||
| 43 | /* acpi_utils.h */ | 42 | /* acpi_utils.h */ |
| 44 | acpi_status | 43 | acpi_status |
| 45 | acpi_extract_package ( | 44 | acpi_extract_package(union acpi_object *package, |
| 46 | union acpi_object *package, | 45 | struct acpi_buffer *format, struct acpi_buffer *buffer); |
| 47 | struct acpi_buffer *format, | ||
| 48 | struct acpi_buffer *buffer); | ||
| 49 | acpi_status | 46 | acpi_status |
| 50 | acpi_evaluate_integer ( | 47 | acpi_evaluate_integer(acpi_handle handle, |
| 51 | acpi_handle handle, | 48 | acpi_string pathname, |
| 52 | acpi_string pathname, | 49 | struct acpi_object_list *arguments, unsigned long *data); |
| 53 | struct acpi_object_list *arguments, | ||
| 54 | unsigned long *data); | ||
| 55 | acpi_status | 50 | acpi_status |
| 56 | acpi_evaluate_reference ( | 51 | acpi_evaluate_reference(acpi_handle handle, |
| 57 | acpi_handle handle, | 52 | acpi_string pathname, |
| 58 | acpi_string pathname, | 53 | struct acpi_object_list *arguments, |
| 59 | struct acpi_object_list *arguments, | 54 | struct acpi_handle_list *list); |
| 60 | struct acpi_handle_list *list); | ||
| 61 | |||
| 62 | 55 | ||
| 63 | #ifdef CONFIG_ACPI_BUS | 56 | #ifdef CONFIG_ACPI |
| 64 | 57 | ||
| 65 | #include <linux/proc_fs.h> | 58 | #include <linux/proc_fs.h> |
| 66 | 59 | ||
| 67 | #define ACPI_BUS_FILE_ROOT "acpi" | 60 | #define ACPI_BUS_FILE_ROOT "acpi" |
| 68 | extern struct proc_dir_entry *acpi_root_dir; | 61 | extern struct proc_dir_entry *acpi_root_dir; |
| 69 | extern FADT_DESCRIPTOR acpi_fadt; | 62 | extern FADT_DESCRIPTOR acpi_fadt; |
| 70 | 63 | ||
| 71 | enum acpi_bus_removal_type { | 64 | enum acpi_bus_removal_type { |
| 72 | ACPI_BUS_REMOVAL_NORMAL = 0, | 65 | ACPI_BUS_REMOVAL_NORMAL = 0, |
| 73 | ACPI_BUS_REMOVAL_EJECT, | 66 | ACPI_BUS_REMOVAL_EJECT, |
| 74 | ACPI_BUS_REMOVAL_SUPRISE, | 67 | ACPI_BUS_REMOVAL_SUPRISE, |
| 75 | ACPI_BUS_REMOVAL_TYPE_COUNT | 68 | ACPI_BUS_REMOVAL_TYPE_COUNT |
| 76 | }; | 69 | }; |
| 77 | 70 | ||
| 78 | enum acpi_bus_device_type { | 71 | enum acpi_bus_device_type { |
| 79 | ACPI_BUS_TYPE_DEVICE = 0, | 72 | ACPI_BUS_TYPE_DEVICE = 0, |
| 80 | ACPI_BUS_TYPE_POWER, | 73 | ACPI_BUS_TYPE_POWER, |
| 81 | ACPI_BUS_TYPE_PROCESSOR, | 74 | ACPI_BUS_TYPE_PROCESSOR, |
| 82 | ACPI_BUS_TYPE_THERMAL, | 75 | ACPI_BUS_TYPE_THERMAL, |
| @@ -89,61 +82,60 @@ enum acpi_bus_device_type { | |||
| 89 | struct acpi_driver; | 82 | struct acpi_driver; |
| 90 | struct acpi_device; | 83 | struct acpi_device; |
| 91 | 84 | ||
| 92 | |||
| 93 | /* | 85 | /* |
| 94 | * ACPI Driver | 86 | * ACPI Driver |
| 95 | * ----------- | 87 | * ----------- |
| 96 | */ | 88 | */ |
| 97 | 89 | ||
| 98 | typedef int (*acpi_op_add) (struct acpi_device *device); | 90 | typedef int (*acpi_op_add) (struct acpi_device * device); |
| 99 | typedef int (*acpi_op_remove) (struct acpi_device *device, int type); | 91 | typedef int (*acpi_op_remove) (struct acpi_device * device, int type); |
| 100 | typedef int (*acpi_op_lock) (struct acpi_device *device, int type); | 92 | typedef int (*acpi_op_lock) (struct acpi_device * device, int type); |
| 101 | typedef int (*acpi_op_start) (struct acpi_device *device); | 93 | typedef int (*acpi_op_start) (struct acpi_device * device); |
| 102 | typedef int (*acpi_op_stop) (struct acpi_device *device, int type); | 94 | typedef int (*acpi_op_stop) (struct acpi_device * device, int type); |
| 103 | typedef int (*acpi_op_suspend) (struct acpi_device *device, int state); | 95 | typedef int (*acpi_op_suspend) (struct acpi_device * device, int state); |
| 104 | typedef int (*acpi_op_resume) (struct acpi_device *device, int state); | 96 | typedef int (*acpi_op_resume) (struct acpi_device * device, int state); |
| 105 | typedef int (*acpi_op_scan) (struct acpi_device *device); | 97 | typedef int (*acpi_op_scan) (struct acpi_device * device); |
| 106 | typedef int (*acpi_op_bind) (struct acpi_device *device); | 98 | typedef int (*acpi_op_bind) (struct acpi_device * device); |
| 107 | typedef int (*acpi_op_unbind) (struct acpi_device *device); | 99 | typedef int (*acpi_op_unbind) (struct acpi_device * device); |
| 108 | typedef int (*acpi_op_match) (struct acpi_device *device, | 100 | typedef int (*acpi_op_match) (struct acpi_device * device, |
| 109 | struct acpi_driver *driver); | 101 | struct acpi_driver * driver); |
| 110 | 102 | ||
| 111 | struct acpi_bus_ops { | 103 | struct acpi_bus_ops { |
| 112 | u32 acpi_op_add:1; | 104 | u32 acpi_op_add:1; |
| 113 | u32 acpi_op_remove:1; | 105 | u32 acpi_op_remove:1; |
| 114 | u32 acpi_op_lock:1; | 106 | u32 acpi_op_lock:1; |
| 115 | u32 acpi_op_start:1; | 107 | u32 acpi_op_start:1; |
| 116 | u32 acpi_op_stop:1; | 108 | u32 acpi_op_stop:1; |
| 117 | u32 acpi_op_suspend:1; | 109 | u32 acpi_op_suspend:1; |
| 118 | u32 acpi_op_resume:1; | 110 | u32 acpi_op_resume:1; |
| 119 | u32 acpi_op_scan:1; | 111 | u32 acpi_op_scan:1; |
| 120 | u32 acpi_op_bind:1; | 112 | u32 acpi_op_bind:1; |
| 121 | u32 acpi_op_unbind:1; | 113 | u32 acpi_op_unbind:1; |
| 122 | u32 acpi_op_match:1; | 114 | u32 acpi_op_match:1; |
| 123 | u32 reserved:21; | 115 | u32 reserved:21; |
| 124 | }; | 116 | }; |
| 125 | 117 | ||
| 126 | struct acpi_device_ops { | 118 | struct acpi_device_ops { |
| 127 | acpi_op_add add; | 119 | acpi_op_add add; |
| 128 | acpi_op_remove remove; | 120 | acpi_op_remove remove; |
| 129 | acpi_op_lock lock; | 121 | acpi_op_lock lock; |
| 130 | acpi_op_start start; | 122 | acpi_op_start start; |
| 131 | acpi_op_stop stop; | 123 | acpi_op_stop stop; |
| 132 | acpi_op_suspend suspend; | 124 | acpi_op_suspend suspend; |
| 133 | acpi_op_resume resume; | 125 | acpi_op_resume resume; |
| 134 | acpi_op_scan scan; | 126 | acpi_op_scan scan; |
| 135 | acpi_op_bind bind; | 127 | acpi_op_bind bind; |
| 136 | acpi_op_unbind unbind; | 128 | acpi_op_unbind unbind; |
| 137 | acpi_op_match match; | 129 | acpi_op_match match; |
| 138 | }; | 130 | }; |
| 139 | 131 | ||
| 140 | struct acpi_driver { | 132 | struct acpi_driver { |
| 141 | struct list_head node; | 133 | struct list_head node; |
| 142 | char name[80]; | 134 | char name[80]; |
| 143 | char class[80]; | 135 | char class[80]; |
| 144 | atomic_t references; | 136 | atomic_t references; |
| 145 | char *ids; /* Supported Hardware IDs */ | 137 | char *ids; /* Supported Hardware IDs */ |
| 146 | struct acpi_device_ops ops; | 138 | struct acpi_device_ops ops; |
| 147 | }; | 139 | }; |
| 148 | 140 | ||
| 149 | /* | 141 | /* |
| @@ -154,60 +146,57 @@ struct acpi_driver { | |||
| 154 | /* Status (_STA) */ | 146 | /* Status (_STA) */ |
| 155 | 147 | ||
| 156 | struct acpi_device_status { | 148 | struct acpi_device_status { |
| 157 | u32 present:1; | 149 | u32 present:1; |
| 158 | u32 enabled:1; | 150 | u32 enabled:1; |
| 159 | u32 show_in_ui:1; | 151 | u32 show_in_ui:1; |
| 160 | u32 functional:1; | 152 | u32 functional:1; |
| 161 | u32 battery_present:1; | 153 | u32 battery_present:1; |
| 162 | u32 reserved:27; | 154 | u32 reserved:27; |
| 163 | }; | 155 | }; |
| 164 | 156 | ||
| 165 | |||
| 166 | /* Flags */ | 157 | /* Flags */ |
| 167 | 158 | ||
| 168 | struct acpi_device_flags { | 159 | struct acpi_device_flags { |
| 169 | u32 dynamic_status:1; | 160 | u32 dynamic_status:1; |
| 170 | u32 hardware_id:1; | 161 | u32 hardware_id:1; |
| 171 | u32 compatible_ids:1; | 162 | u32 compatible_ids:1; |
| 172 | u32 bus_address:1; | 163 | u32 bus_address:1; |
| 173 | u32 unique_id:1; | 164 | u32 unique_id:1; |
| 174 | u32 removable:1; | 165 | u32 removable:1; |
| 175 | u32 ejectable:1; | 166 | u32 ejectable:1; |
| 176 | u32 lockable:1; | 167 | u32 lockable:1; |
| 177 | u32 suprise_removal_ok:1; | 168 | u32 suprise_removal_ok:1; |
| 178 | u32 power_manageable:1; | 169 | u32 power_manageable:1; |
| 179 | u32 performance_manageable:1; | 170 | u32 performance_manageable:1; |
| 180 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ | 171 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ |
| 181 | u32 reserved:20; | 172 | u32 reserved:20; |
| 182 | }; | 173 | }; |
| 183 | 174 | ||
| 184 | |||
| 185 | /* File System */ | 175 | /* File System */ |
| 186 | 176 | ||
| 187 | struct acpi_device_dir { | 177 | struct acpi_device_dir { |
| 188 | struct proc_dir_entry *entry; | 178 | struct proc_dir_entry *entry; |
| 189 | }; | 179 | }; |
| 190 | 180 | ||
| 191 | #define acpi_device_dir(d) ((d)->dir.entry) | 181 | #define acpi_device_dir(d) ((d)->dir.entry) |
| 192 | 182 | ||
| 193 | |||
| 194 | /* Plug and Play */ | 183 | /* Plug and Play */ |
| 195 | 184 | ||
| 196 | typedef char acpi_bus_id[5]; | 185 | typedef char acpi_bus_id[5]; |
| 197 | typedef unsigned long acpi_bus_address; | 186 | typedef unsigned long acpi_bus_address; |
| 198 | typedef char acpi_hardware_id[9]; | 187 | typedef char acpi_hardware_id[9]; |
| 199 | typedef char acpi_unique_id[9]; | 188 | typedef char acpi_unique_id[9]; |
| 200 | typedef char acpi_device_name[40]; | 189 | typedef char acpi_device_name[40]; |
| 201 | typedef char acpi_device_class[20]; | 190 | typedef char acpi_device_class[20]; |
| 202 | 191 | ||
| 203 | struct acpi_device_pnp { | 192 | struct acpi_device_pnp { |
| 204 | acpi_bus_id bus_id; /* Object name */ | 193 | acpi_bus_id bus_id; /* Object name */ |
| 205 | acpi_bus_address bus_address; /* _ADR */ | 194 | acpi_bus_address bus_address; /* _ADR */ |
| 206 | acpi_hardware_id hardware_id; /* _HID */ | 195 | acpi_hardware_id hardware_id; /* _HID */ |
| 207 | struct acpi_compatible_id_list *cid_list; /* _CIDs */ | 196 | struct acpi_compatible_id_list *cid_list; /* _CIDs */ |
| 208 | acpi_unique_id unique_id; /* _UID */ | 197 | acpi_unique_id unique_id; /* _UID */ |
| 209 | acpi_device_name device_name; /* Driver-determined */ | 198 | acpi_device_name device_name; /* Driver-determined */ |
| 210 | acpi_device_class device_class; /* " */ | 199 | acpi_device_class device_class; /* " */ |
| 211 | }; | 200 | }; |
| 212 | 201 | ||
| 213 | #define acpi_device_bid(d) ((d)->pnp.bus_id) | 202 | #define acpi_device_bid(d) ((d)->pnp.bus_id) |
| @@ -217,114 +206,111 @@ struct acpi_device_pnp { | |||
| 217 | #define acpi_device_name(d) ((d)->pnp.device_name) | 206 | #define acpi_device_name(d) ((d)->pnp.device_name) |
| 218 | #define acpi_device_class(d) ((d)->pnp.device_class) | 207 | #define acpi_device_class(d) ((d)->pnp.device_class) |
| 219 | 208 | ||
| 220 | |||
| 221 | /* Power Management */ | 209 | /* Power Management */ |
| 222 | 210 | ||
| 223 | struct acpi_device_power_flags { | 211 | struct acpi_device_power_flags { |
| 224 | u32 explicit_get:1; /* _PSC present? */ | 212 | u32 explicit_get:1; /* _PSC present? */ |
| 225 | u32 power_resources:1; /* Power resources */ | 213 | u32 power_resources:1; /* Power resources */ |
| 226 | u32 inrush_current:1; /* Serialize Dx->D0 */ | 214 | u32 inrush_current:1; /* Serialize Dx->D0 */ |
| 227 | u32 power_removed:1; /* Optimize Dx->D0 */ | 215 | u32 power_removed:1; /* Optimize Dx->D0 */ |
| 228 | u32 reserved:28; | 216 | u32 reserved:28; |
| 229 | }; | 217 | }; |
| 230 | 218 | ||
| 231 | struct acpi_device_power_state { | 219 | struct acpi_device_power_state { |
| 232 | struct { | 220 | struct { |
| 233 | u8 valid:1; | 221 | u8 valid:1; |
| 234 | u8 explicit_set:1; /* _PSx present? */ | 222 | u8 explicit_set:1; /* _PSx present? */ |
| 235 | u8 reserved:6; | 223 | u8 reserved:6; |
| 236 | } flags; | 224 | } flags; |
| 237 | int power; /* % Power (compared to D0) */ | 225 | int power; /* % Power (compared to D0) */ |
| 238 | int latency; /* Dx->D0 time (microseconds) */ | 226 | int latency; /* Dx->D0 time (microseconds) */ |
| 239 | struct acpi_handle_list resources; /* Power resources referenced */ | 227 | struct acpi_handle_list resources; /* Power resources referenced */ |
| 240 | }; | 228 | }; |
| 241 | 229 | ||
| 242 | struct acpi_device_power { | 230 | struct acpi_device_power { |
| 243 | int state; /* Current state */ | 231 | int state; /* Current state */ |
| 244 | struct acpi_device_power_flags flags; | 232 | struct acpi_device_power_flags flags; |
| 245 | struct acpi_device_power_state states[4]; /* Power states (D0-D3) */ | 233 | struct acpi_device_power_state states[4]; /* Power states (D0-D3) */ |
| 246 | }; | 234 | }; |
| 247 | 235 | ||
| 248 | |||
| 249 | /* Performance Management */ | 236 | /* Performance Management */ |
| 250 | 237 | ||
| 251 | struct acpi_device_perf_flags { | 238 | struct acpi_device_perf_flags { |
| 252 | u8 reserved:8; | 239 | u8 reserved:8; |
| 253 | }; | 240 | }; |
| 254 | 241 | ||
| 255 | struct acpi_device_perf_state { | 242 | struct acpi_device_perf_state { |
| 256 | struct { | 243 | struct { |
| 257 | u8 valid:1; | 244 | u8 valid:1; |
| 258 | u8 reserved:7; | 245 | u8 reserved:7; |
| 259 | } flags; | 246 | } flags; |
| 260 | u8 power; /* % Power (compared to P0) */ | 247 | u8 power; /* % Power (compared to P0) */ |
| 261 | u8 performance; /* % Performance ( " ) */ | 248 | u8 performance; /* % Performance ( " ) */ |
| 262 | int latency; /* Px->P0 time (microseconds) */ | 249 | int latency; /* Px->P0 time (microseconds) */ |
| 263 | }; | 250 | }; |
| 264 | 251 | ||
| 265 | struct acpi_device_perf { | 252 | struct acpi_device_perf { |
| 266 | int state; | 253 | int state; |
| 267 | struct acpi_device_perf_flags flags; | 254 | struct acpi_device_perf_flags flags; |
| 268 | int state_count; | 255 | int state_count; |
| 269 | struct acpi_device_perf_state *states; | 256 | struct acpi_device_perf_state *states; |
| 270 | }; | 257 | }; |
| 271 | 258 | ||
| 272 | /* Wakeup Management */ | 259 | /* Wakeup Management */ |
| 273 | struct acpi_device_wakeup_flags { | 260 | struct acpi_device_wakeup_flags { |
| 274 | u8 valid:1; /* Can successfully enable wakeup? */ | 261 | u8 valid:1; /* Can successfully enable wakeup? */ |
| 275 | u8 run_wake:1; /* Run-Wake GPE devices */ | 262 | u8 run_wake:1; /* Run-Wake GPE devices */ |
| 276 | }; | 263 | }; |
| 277 | 264 | ||
| 278 | struct acpi_device_wakeup_state { | 265 | struct acpi_device_wakeup_state { |
| 279 | u8 enabled:1; | 266 | u8 enabled:1; |
| 280 | u8 active:1; | 267 | u8 active:1; |
| 281 | }; | 268 | }; |
| 282 | 269 | ||
| 283 | struct acpi_device_wakeup { | 270 | struct acpi_device_wakeup { |
| 284 | acpi_handle gpe_device; | 271 | acpi_handle gpe_device; |
| 285 | acpi_integer gpe_number;; | 272 | acpi_integer gpe_number;; |
| 286 | acpi_integer sleep_state; | 273 | acpi_integer sleep_state; |
| 287 | struct acpi_handle_list resources; | 274 | struct acpi_handle_list resources; |
| 288 | struct acpi_device_wakeup_state state; | 275 | struct acpi_device_wakeup_state state; |
| 289 | struct acpi_device_wakeup_flags flags; | 276 | struct acpi_device_wakeup_flags flags; |
| 290 | }; | 277 | }; |
| 291 | 278 | ||
| 292 | /* Device */ | 279 | /* Device */ |
| 293 | 280 | ||
| 294 | struct acpi_device { | 281 | struct acpi_device { |
| 295 | acpi_handle handle; | 282 | acpi_handle handle; |
| 296 | struct acpi_device *parent; | 283 | struct acpi_device *parent; |
| 297 | struct list_head children; | 284 | struct list_head children; |
| 298 | struct list_head node; | 285 | struct list_head node; |
| 299 | struct list_head wakeup_list; | 286 | struct list_head wakeup_list; |
| 300 | struct list_head g_list; | 287 | struct list_head g_list; |
| 301 | struct acpi_device_status status; | 288 | struct acpi_device_status status; |
| 302 | struct acpi_device_flags flags; | 289 | struct acpi_device_flags flags; |
| 303 | struct acpi_device_pnp pnp; | 290 | struct acpi_device_pnp pnp; |
| 304 | struct acpi_device_power power; | 291 | struct acpi_device_power power; |
| 305 | struct acpi_device_wakeup wakeup; | 292 | struct acpi_device_wakeup wakeup; |
| 306 | struct acpi_device_perf performance; | 293 | struct acpi_device_perf performance; |
| 307 | struct acpi_device_dir dir; | 294 | struct acpi_device_dir dir; |
| 308 | struct acpi_device_ops ops; | 295 | struct acpi_device_ops ops; |
| 309 | struct acpi_driver *driver; | 296 | struct acpi_driver *driver; |
| 310 | void *driver_data; | 297 | void *driver_data; |
| 311 | struct kobject kobj; | 298 | struct kobject kobj; |
| 312 | }; | 299 | }; |
| 313 | 300 | ||
| 314 | #define acpi_driver_data(d) ((d)->driver_data) | 301 | #define acpi_driver_data(d) ((d)->driver_data) |
| 315 | 302 | ||
| 316 | |||
| 317 | /* | 303 | /* |
| 318 | * Events | 304 | * Events |
| 319 | * ------ | 305 | * ------ |
| 320 | */ | 306 | */ |
| 321 | 307 | ||
| 322 | struct acpi_bus_event { | 308 | struct acpi_bus_event { |
| 323 | struct list_head node; | 309 | struct list_head node; |
| 324 | acpi_device_class device_class; | 310 | acpi_device_class device_class; |
| 325 | acpi_bus_id bus_id; | 311 | acpi_bus_id bus_id; |
| 326 | u32 type; | 312 | u32 type; |
| 327 | u32 data; | 313 | u32 data; |
| 328 | }; | 314 | }; |
| 329 | 315 | ||
| 330 | extern struct subsystem acpi_subsys; | 316 | extern struct subsystem acpi_subsys; |
| @@ -335,34 +321,32 @@ extern struct subsystem acpi_subsys; | |||
| 335 | 321 | ||
| 336 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); | 322 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); |
| 337 | void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context); | 323 | void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context); |
| 338 | int acpi_bus_get_status (struct acpi_device *device); | 324 | int acpi_bus_get_status(struct acpi_device *device); |
| 339 | int acpi_bus_get_power (acpi_handle handle, int *state); | 325 | int acpi_bus_get_power(acpi_handle handle, int *state); |
| 340 | int acpi_bus_set_power (acpi_handle handle, int state); | 326 | int acpi_bus_set_power(acpi_handle handle, int state); |
| 341 | int acpi_bus_generate_event (struct acpi_device *device, u8 type, int data); | 327 | int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data); |
| 342 | int acpi_bus_receive_event (struct acpi_bus_event *event); | 328 | int acpi_bus_receive_event(struct acpi_bus_event *event); |
| 343 | int acpi_bus_register_driver (struct acpi_driver *driver); | 329 | int acpi_bus_register_driver(struct acpi_driver *driver); |
| 344 | int acpi_bus_unregister_driver (struct acpi_driver *driver); | 330 | int acpi_bus_unregister_driver(struct acpi_driver *driver); |
| 345 | int acpi_bus_add (struct acpi_device **child, struct acpi_device *parent, | 331 | int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent, |
| 346 | acpi_handle handle, int type); | 332 | acpi_handle handle, int type); |
| 347 | int acpi_bus_start (struct acpi_device *device); | 333 | int acpi_bus_start(struct acpi_device *device); |
| 348 | 334 | ||
| 349 | 335 | int acpi_match_ids(struct acpi_device *device, char *ids); | |
| 350 | int acpi_match_ids (struct acpi_device *device, char *ids); | ||
| 351 | int acpi_create_dir(struct acpi_device *); | 336 | int acpi_create_dir(struct acpi_device *); |
| 352 | void acpi_remove_dir(struct acpi_device *); | 337 | void acpi_remove_dir(struct acpi_device *); |
| 353 | 338 | ||
| 354 | |||
| 355 | /* | 339 | /* |
| 356 | * Bind physical devices with ACPI devices | 340 | * Bind physical devices with ACPI devices |
| 357 | */ | 341 | */ |
| 358 | #include <linux/device.h> | 342 | #include <linux/device.h> |
| 359 | struct acpi_bus_type { | 343 | struct acpi_bus_type { |
| 360 | struct list_head list; | 344 | struct list_head list; |
| 361 | struct bus_type *bus; | 345 | struct bus_type *bus; |
| 362 | /* For general devices under the bus*/ | 346 | /* For general devices under the bus */ |
| 363 | int (*find_device)(struct device *, acpi_handle*); | 347 | int (*find_device) (struct device *, acpi_handle *); |
| 364 | /* For bridges, such as PCI root bridge, IDE controller */ | 348 | /* For bridges, such as PCI root bridge, IDE controller */ |
| 365 | int (*find_bridge)(struct device *, acpi_handle *); | 349 | int (*find_bridge) (struct device *, acpi_handle *); |
| 366 | }; | 350 | }; |
| 367 | int register_acpi_bus_type(struct acpi_bus_type *); | 351 | int register_acpi_bus_type(struct acpi_bus_type *); |
| 368 | int unregister_acpi_bus_type(struct acpi_bus_type *); | 352 | int unregister_acpi_bus_type(struct acpi_bus_type *); |
| @@ -372,6 +356,6 @@ acpi_handle acpi_get_child(acpi_handle, acpi_integer); | |||
| 372 | acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int); | 356 | acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int); |
| 373 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->firmware_data)) | 357 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->firmware_data)) |
| 374 | 358 | ||
| 375 | #endif /*CONFIG_ACPI_BUS*/ | 359 | #endif /* CONFIG_ACPI */ |
| 376 | 360 | ||
| 377 | #endif /*__ACPI_BUS_H__*/ | 361 | #endif /*__ACPI_BUS_H__*/ |
