Merge branch 'acpi-general'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 29 Nov 2012 20:43:06 +0000 (21:43 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 29 Nov 2012 20:43:06 +0000 (21:43 +0100)
* acpi-general: (38 commits)
  ACPI / thermal: _TMP and _CRT/_HOT/_PSV/_ACx dependency fix
  ACPI: drop unnecessary local variable from acpi_system_write_wakeup_device()
  ACPI: Fix logging when no pci_irq is allocated
  ACPI: Update Dock hotplug error messages
  ACPI: Update Container hotplug error messages
  ACPI: Update Memory hotplug error messages
  ACPI: Update CPU hotplug error messages
  ACPI: Add acpi_handle_<level>() interfaces
  ACPI: remove use of __devexit
  ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist.
  ACPI / battery: Correct battery capacity values on Thinkpads
  Revert "ACPI / x86: Add quirk for "CheckPoint P-20-00" to not use bridge _CRS_ info"
  ACPI: create _SUN sysfs file
  ACPI / memhotplug: bind the memory device when the driver is being loaded
  ACPI / memhotplug: don't allow to eject the memory device if it is being used
  ACPI / memhotplug: free memory device if acpi_memory_enable_device() failed
  ACPI / memhotplug: fix memory leak when memory device is unbound from acpi_memhotplug
  ACPI / memhotplug: deal with eject request in hotplug queue
  ACPI / memory-hotplug: add memory offline code to acpi_memory_device_remove()
  ACPI / memory-hotplug: call acpi_bus_trim() to remove memory device
  ...

Conflicts:
include/linux/acpi.h (two additions at the end of the same file)

1  2 
drivers/acpi/internal.h
drivers/acpi/pci_irq.c
drivers/acpi/scan.c
drivers/acpi/sleep.c
include/acpi/acpi_bus.h
include/linux/acpi.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -479,41 -434,47 +483,84 @@@ acpi_status acpi_os_prepare_sleep(u8 sl
  #define acpi_os_set_prepare_sleep(func, pm1a_ctrl, pm1b_ctrl) do { } while (0)
  #endif
  
 +#if defined(CONFIG_ACPI) && defined(CONFIG_PM_RUNTIME)
 +int acpi_dev_runtime_suspend(struct device *dev);
 +int acpi_dev_runtime_resume(struct device *dev);
 +int acpi_subsys_runtime_suspend(struct device *dev);
 +int acpi_subsys_runtime_resume(struct device *dev);
 +#else
 +static inline int acpi_dev_runtime_suspend(struct device *dev) { return 0; }
 +static inline int acpi_dev_runtime_resume(struct device *dev) { return 0; }
 +static inline int acpi_subsys_runtime_suspend(struct device *dev) { return 0; }
 +static inline int acpi_subsys_runtime_resume(struct device *dev) { return 0; }
 +#endif
 +
 +#ifdef CONFIG_ACPI_SLEEP
 +int acpi_dev_suspend_late(struct device *dev);
 +int acpi_dev_resume_early(struct device *dev);
 +int acpi_subsys_prepare(struct device *dev);
 +int acpi_subsys_suspend_late(struct device *dev);
 +int acpi_subsys_resume_early(struct device *dev);
 +#else
 +static inline int acpi_dev_suspend_late(struct device *dev) { return 0; }
 +static inline int acpi_dev_resume_early(struct device *dev) { return 0; }
 +static inline int acpi_subsys_prepare(struct device *dev) { return 0; }
 +static inline int acpi_subsys_suspend_late(struct device *dev) { return 0; }
 +static inline int acpi_subsys_resume_early(struct device *dev) { return 0; }
 +#endif
 +
 +#if defined(CONFIG_ACPI) && defined(CONFIG_PM)
 +int acpi_dev_pm_attach(struct device *dev, bool power_on);
 +int acpi_dev_pm_detach(struct device *dev, bool power_off);
 +#else
 +static inline int acpi_dev_pm_attach(struct device *dev, bool power_on)
 +{
 +      return -ENODEV;
 +}
 +static inline void acpi_dev_pm_detach(struct device *dev, bool power_off) {}
 +#endif
 +
+ #ifdef CONFIG_ACPI
+ __printf(3, 4)
+ void acpi_handle_printk(const char *level, acpi_handle handle,
+                       const char *fmt, ...);
+ #else /* !CONFIG_ACPI */
+ static inline __printf(3, 4) void
+ acpi_handle_printk(const char *level, void *handle, const char *fmt, ...) {}
+ #endif        /* !CONFIG_ACPI */
+ /*
+  * acpi_handle_<level>: Print message with ACPI prefix and object path
+  *
+  * These interfaces acquire the global namespace mutex to obtain an object
+  * path.  In interrupt context, it shows the object path as <n/a>.
+  */
+ #define acpi_handle_emerg(handle, fmt, ...)                           \
+       acpi_handle_printk(KERN_EMERG, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_alert(handle, fmt, ...)                           \
+       acpi_handle_printk(KERN_ALERT, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_crit(handle, fmt, ...)                            \
+       acpi_handle_printk(KERN_CRIT, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_err(handle, fmt, ...)                             \
+       acpi_handle_printk(KERN_ERR, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_warn(handle, fmt, ...)                            \
+       acpi_handle_printk(KERN_WARNING, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_notice(handle, fmt, ...)                          \
+       acpi_handle_printk(KERN_NOTICE, handle, fmt, ##__VA_ARGS__)
+ #define acpi_handle_info(handle, fmt, ...)                            \
+       acpi_handle_printk(KERN_INFO, handle, fmt, ##__VA_ARGS__)
+ /* REVISIT: Support CONFIG_DYNAMIC_DEBUG when necessary */
+ #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
+ #define acpi_handle_debug(handle, fmt, ...)                           \
+       acpi_handle_printk(KERN_DEBUG, handle, fmt, ##__VA_ARGS__)
+ #else
+ #define acpi_handle_debug(handle, fmt, ...)                           \
+ ({                                                                    \
+       if (0)                                                          \
+               acpi_handle_printk(KERN_DEBUG, handle, fmt, ##__VA_ARGS__); \
+       0;                                                              \
+ })
+ #endif
  #endif        /*_LINUX_ACPI_H*/