ide: Requeue request after DMA timeout
[safe/jmp/linux-2.6] / include / acpi / acpi_bus.h
index 1cef139..7bf83dd 100644 (file)
@@ -70,7 +70,6 @@ enum acpi_bus_device_type {
        ACPI_BUS_TYPE_POWER,
        ACPI_BUS_TYPE_PROCESSOR,
        ACPI_BUS_TYPE_THERMAL,
-       ACPI_BUS_TYPE_SYSTEM,
        ACPI_BUS_TYPE_POWER_BUTTON,
        ACPI_BUS_TYPE_SLEEP_BUTTON,
        ACPI_BUS_DEVICE_TYPE_COUNT
@@ -142,10 +141,7 @@ struct acpi_device_status {
 
 struct acpi_device_flags {
        u32 dynamic_status:1;
-       u32 hardware_id:1;
-       u32 compatible_ids:1;
        u32 bus_address:1;
-       u32 unique_id:1;
        u32 removable:1;
        u32 ejectable:1;
        u32 lockable:1;
@@ -154,7 +150,7 @@ struct acpi_device_flags {
        u32 performance_manageable:1;
        u32 wake_capable:1;     /* Wakeup(_PRW) supported? */
        u32 force_power_state:1;
-       u32 reserved:19;
+       u32 reserved:22;
 };
 
 /* File System */
@@ -172,20 +168,23 @@ typedef unsigned long acpi_bus_address;
 typedef char acpi_device_name[40];
 typedef char acpi_device_class[20];
 
+struct acpi_hardware_id {
+       struct list_head list;
+       char *id;
+};
+
 struct acpi_device_pnp {
        acpi_bus_id bus_id;     /* Object name */
        acpi_bus_address bus_address;   /* _ADR */
-       char *hardware_id;      /* _HID */
-       struct acpica_device_id_list *cid_list; /* _CIDs */
        char *unique_id;        /* _UID */
+       struct list_head ids;           /* _HID and _CIDs */
        acpi_device_name device_name;   /* Driver-determined */
        acpi_device_class device_class; /*        "          */
 };
 
 #define acpi_device_bid(d)     ((d)->pnp.bus_id)
 #define acpi_device_adr(d)     ((d)->pnp.bus_address)
-#define acpi_device_hid(d)     ((d)->pnp.hardware_id)
-#define acpi_device_uid(d)     ((d)->pnp.unique_id)
+char *acpi_device_hid(struct acpi_device *device);
 #define acpi_device_name(d)    ((d)->pnp.device_name)
 #define acpi_device_class(d)   ((d)->pnp.device_class)
 
@@ -243,6 +242,8 @@ struct acpi_device_perf {
 struct acpi_device_wakeup_flags {
        u8 valid:1;             /* Can successfully enable wakeup? */
        u8 run_wake:1;          /* Run-Wake GPE devices */
+       u8 always_enabled:1;    /* Run-wake devices that are always enabled */
+       u8 notifier_present:1;  /* Wake-up notify handler has been installed */
 };
 
 struct acpi_device_wakeup_state {
@@ -251,18 +252,20 @@ struct acpi_device_wakeup_state {
 
 struct acpi_device_wakeup {
        acpi_handle gpe_device;
-       acpi_integer gpe_number;
-       acpi_integer sleep_state;
+       u64 gpe_number;
+       u64 sleep_state;
        struct acpi_handle_list resources;
        struct acpi_device_wakeup_state state;
        struct acpi_device_wakeup_flags flags;
        int prepare_count;
+       int run_wake_count;
 };
 
 /* Device */
 
 struct acpi_device {
-       acpi_handle handle;
+       int device_type;
+       acpi_handle handle;             /* no handle for fixed hardware */
        struct acpi_device *parent;
        struct list_head children;
        struct list_head node;
@@ -322,6 +325,8 @@ extern void unregister_acpi_bus_notifier(struct notifier_block *nb);
 
 int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device);
 void acpi_bus_data_handler(acpi_handle handle, void *context);
+acpi_status acpi_bus_get_status_handle(acpi_handle handle,
+                                      unsigned long long *sta);
 int acpi_bus_get_status(struct acpi_device *device);
 int acpi_bus_get_power(acpi_handle handle, int *state);
 int acpi_bus_set_power(acpi_handle handle, int state);
@@ -378,12 +383,15 @@ struct acpi_pci_root {
 };
 
 /* helper */
-acpi_handle acpi_get_child(acpi_handle, acpi_integer);
+acpi_handle acpi_get_child(acpi_handle, u64);
 int acpi_is_root_bridge(acpi_handle);
 acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
 struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
 #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
 
+int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
+int acpi_disable_wakeup_device_power(struct acpi_device *dev);
+
 #ifdef CONFIG_PM_SLEEP
 int acpi_pm_device_sleep_state(struct device *, int *);
 int acpi_pm_device_sleep_wake(struct device *, bool);