Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[safe/jmp/linux-2.6] / include / acpi / acpi_drivers.h
index 1b18c36..4f7b448 100644 (file)
 
 #define ACPI_MAX_STRING                        80
 
+/*
+ * Please update drivers/acpi/debug.c and Documentation/acpi/debug.txt
+ * if you add to this list.
+ */
 #define ACPI_BUS_COMPONENT             0x00010000
+#define ACPI_AC_COMPONENT              0x00020000
+#define ACPI_BATTERY_COMPONENT         0x00040000
+#define ACPI_BUTTON_COMPONENT          0x00080000
+#define ACPI_SBS_COMPONENT             0x00100000
+#define ACPI_FAN_COMPONENT             0x00200000
+#define ACPI_PCI_COMPONENT             0x00400000
+#define ACPI_POWER_COMPONENT           0x00800000
+#define ACPI_CONTAINER_COMPONENT       0x01000000
 #define ACPI_SYSTEM_COMPONENT          0x02000000
+#define ACPI_THERMAL_COMPONENT         0x04000000
+#define ACPI_MEMORY_DEVICE_COMPONENT   0x08000000
+#define ACPI_VIDEO_COMPONENT           0x10000000
+#define ACPI_PROCESSOR_COMPONENT       0x20000000
 
-/* _HID definitions */
+/*
+ * _HID definitions
+ * HIDs must conform to ACPI spec(6.1.4)
+ * Linux specific HIDs do not apply to this and begin with LNX:
+ */
+
+#define ACPI_POWER_HID                 "LNXPOWER"
+#define ACPI_PROCESSOR_OBJECT_HID      "LNXCPU"
+#define ACPI_SYSTEM_HID                        "LNXSYSTM"
+#define ACPI_THERMAL_HID               "LNXTHERM"
+#define ACPI_BUTTON_HID_POWERF         "LNXPWRBN"
+#define ACPI_BUTTON_HID_SLEEPF         "LNXSLPBN"
+#define ACPI_VIDEO_HID                 "LNXVIDEO"
+#define ACPI_BAY_HID                   "LNXIOBAY"
+#define ACPI_DOCK_HID                  "LNXDOCK"
+/* Quirk for broken IBM BIOSes */
+#define ACPI_SMBUS_IBM_HID             "SMBUSIBM"
+
+/*
+ * For fixed hardware buttons, we fabricate acpi_devices with HID
+ * ACPI_BUTTON_HID_POWERF or ACPI_BUTTON_HID_SLEEPF.  Fixed hardware
+ * signals only an event; it doesn't supply a notification value.
+ * To allow drivers to treat notifications from fixed hardware the
+ * same as those from real devices, we turn the events into this
+ * notification value.
+ */
+#define ACPI_FIXED_HARDWARE_EVENT      0x100
 
-#define ACPI_POWER_HID                 "power_resource"
-#define ACPI_PROCESSOR_HID             "processor"
-#define ACPI_SYSTEM_HID                        "acpi_system"
-#define ACPI_THERMAL_HID               "thermal"
-#define ACPI_BUTTON_HID_POWERF         "button_power"
-#define ACPI_BUTTON_HID_SLEEPF         "button_sleep"
-#define ACPI_VIDEO_HID                 "video"
-#define ACPI_BAY_HID                   "bay"
 /* --------------------------------------------------------------------------
                                        PCI
    -------------------------------------------------------------------------- */
 
-#define ACPI_PCI_COMPONENT             0x00400000
 
 /* ACPI PCI Interrupt Link (pci_link.c) */
 
@@ -59,41 +92,21 @@ int acpi_pci_link_free_irq(acpi_handle handle);
 
 /* ACPI PCI Interrupt Routing (pci_irq.c) */
 
-int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus);
-void acpi_pci_irq_del_prt(int segment, int bus);
+int acpi_pci_irq_add_prt(acpi_handle handle, struct pci_bus *bus);
+void acpi_pci_irq_del_prt(struct pci_bus *bus);
 
 /* ACPI PCI Device Binding (pci_bind.c) */
 
 struct pci_bus;
 
-acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id);
-int acpi_pci_bind(struct acpi_device *device);
-int acpi_pci_unbind(struct acpi_device *device);
-int acpi_pci_bind_root(struct acpi_device *device, struct acpi_pci_id *id,
-                      struct pci_bus *bus);
+struct pci_dev *acpi_get_pci_dev(acpi_handle);
+int acpi_pci_bind_root(struct acpi_device *device);
 
 /* Arch-defined function to add a bus to the system */
 
 struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain,
                                   int bus);
-
-/* --------------------------------------------------------------------------
-                                  Power Resource
-   -------------------------------------------------------------------------- */
-
-#ifdef CONFIG_ACPI_POWER
-int acpi_enable_wakeup_device_power(struct acpi_device *dev);
-int acpi_disable_wakeup_device_power(struct acpi_device *dev);
-int acpi_power_get_inferred_state(struct acpi_device *device);
-int acpi_power_transition(struct acpi_device *device, int state);
-#endif
-
-/* --------------------------------------------------------------------------
-                                  Embedded Controller
-   -------------------------------------------------------------------------- */
-#ifdef CONFIG_ACPI_EC
-int acpi_ec_ecdt_probe(void);
-#endif
+void pci_acpi_crs_quirks(void);
 
 /* --------------------------------------------------------------------------
                                     Processor
@@ -105,27 +118,43 @@ int acpi_ec_ecdt_probe(void);
 
 int acpi_processor_set_thermal_limit(acpi_handle handle, int type);
 
-/* --------------------------------------------------------------------------
-                                    Hot Keys
-   -------------------------------------------------------------------------- */
-
-extern int acpi_specific_hotkey_enabled;
-
 /*--------------------------------------------------------------------------
                                   Dock Station
   -------------------------------------------------------------------------- */
+struct acpi_dock_ops {
+       acpi_notify_handler handler;
+       acpi_notify_handler uevent;
+};
+
 #if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
 extern int is_dock_device(acpi_handle handle);
 extern int register_dock_notifier(struct notifier_block *nb);
 extern void unregister_dock_notifier(struct notifier_block *nb);
 extern int register_hotplug_dock_device(acpi_handle handle,
-       acpi_notify_handler handler, void *context);
+                                       struct acpi_dock_ops *ops,
+                                       void *context);
 extern void unregister_hotplug_dock_device(acpi_handle handle);
 #else
-#define is_dock_device(h)                      (0)
-#define register_dock_notifier(nb)             (-ENODEV)
-#define unregister_dock_notifier(nb)                   do { } while(0)
-#define register_hotplug_dock_device(h1, h2, c)        (-ENODEV)
-#define unregister_hotplug_dock_device(h)       do { } while(0)
+static inline int is_dock_device(acpi_handle handle)
+{
+       return 0;
+}
+static inline int register_dock_notifier(struct notifier_block *nb)
+{
+       return -ENODEV;
+}
+static inline void unregister_dock_notifier(struct notifier_block *nb)
+{
+}
+static inline int register_hotplug_dock_device(acpi_handle handle,
+                                              struct acpi_dock_ops *ops,
+                                              void *context)
+{
+       return -ENODEV;
+}
+static inline void unregister_hotplug_dock_device(acpi_handle handle)
+{
+}
 #endif
+
 #endif /*__ACPI_DRIVERS_H__*/