aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi/acpi_bus.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/acpi/acpi_bus.h')
-rw-r--r--include/acpi/acpi_bus.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 22ba56e834e2..98db31d9f9b4 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -88,11 +88,30 @@ struct acpi_device;
88 * ----------------- 88 * -----------------
89 */ 89 */
90 90
91enum acpi_hotplug_mode {
92 AHM_GENERIC = 0,
93 AHM_CONTAINER,
94 AHM_COUNT
95};
96
97struct acpi_hotplug_profile {
98 struct kobject kobj;
99 bool enabled:1;
100 enum acpi_hotplug_mode mode;
101};
102
103static inline struct acpi_hotplug_profile *to_acpi_hotplug_profile(
104 struct kobject *kobj)
105{
106 return container_of(kobj, struct acpi_hotplug_profile, kobj);
107}
108
91struct acpi_scan_handler { 109struct acpi_scan_handler {
92 const struct acpi_device_id *ids; 110 const struct acpi_device_id *ids;
93 struct list_head list_node; 111 struct list_head list_node;
94 int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id); 112 int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id);
95 void (*detach)(struct acpi_device *dev); 113 void (*detach)(struct acpi_device *dev);
114 struct acpi_hotplug_profile hotplug;
96}; 115};
97 116
98/* 117/*
@@ -142,7 +161,6 @@ struct acpi_device_status {
142 161
143struct acpi_device_flags { 162struct acpi_device_flags {
144 u32 dynamic_status:1; 163 u32 dynamic_status:1;
145 u32 bus_address:1;
146 u32 removable:1; 164 u32 removable:1;
147 u32 ejectable:1; 165 u32 ejectable:1;
148 u32 suprise_removal_ok:1; 166 u32 suprise_removal_ok:1;
@@ -150,7 +168,7 @@ struct acpi_device_flags {
150 u32 performance_manageable:1; 168 u32 performance_manageable:1;
151 u32 eject_pending:1; 169 u32 eject_pending:1;
152 u32 match_driver:1; 170 u32 match_driver:1;
153 u32 reserved:23; 171 u32 reserved:24;
154}; 172};
155 173
156/* File System */ 174/* File System */
@@ -173,10 +191,17 @@ struct acpi_hardware_id {
173 char *id; 191 char *id;
174}; 192};
175 193
194struct acpi_pnp_type {
195 u32 hardware_id:1;
196 u32 bus_address:1;
197 u32 reserved:30;
198};
199
176struct acpi_device_pnp { 200struct acpi_device_pnp {
177 acpi_bus_id bus_id; /* Object name */ 201 acpi_bus_id bus_id; /* Object name */
202 struct acpi_pnp_type type; /* ID type */
178 acpi_bus_address bus_address; /* _ADR */ 203 acpi_bus_address bus_address; /* _ADR */
179 char *unique_id; /* _UID */ 204 char *unique_id; /* _UID */
180 struct list_head ids; /* _HID and _CIDs */ 205 struct list_head ids; /* _HID and _CIDs */
181 acpi_device_name device_name; /* Driver-determined */ 206 acpi_device_name device_name; /* Driver-determined */
182 acpi_device_class device_class; /* " */ 207 acpi_device_class device_class; /* " */