linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] ACPI: Cleanup header inclusions.
@ 2013-11-22 23:26 Lv Zheng
  2013-11-22 23:27 ` [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions Lv Zheng
                   ` (7 more replies)
  0 siblings, 8 replies; 40+ messages in thread
From: Lv Zheng @ 2013-11-22 23:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

From: Lv Zheng <lv.zheng@intel.com>

ACPICA header files are lacking in stub protections.  This makes all ACPICA
header files could only be included for CONFIG_ACPI=y environment.  This
infects new ACPI prototypes, if such prototypes referenced ACPICA defined
types, they must be incldued only in the CONFIG_ACPI=y environment.  The
<acpi/acpi_bus.h> and <acpi/acpi_drivers.h> are the monstrosity infants
born under this background, directly including them in the CONFIG_ACPI=n
environment is not safe.  The infection spreads to whole kernel source tree
that we can see "#ifdef CONFIG_ACPI" here and there.

This patchset tries to enforces <linux/acpi.h> inclusions instead of
<acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.

Lv Zheng (4):
  ACPICA: Linux: Cleanup wrong ACPICA inclusions.
  ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  ACPICA: Cleanup <acpi/acpi.h> inclusions.
  ACPI: Add support to force header inclusion rules for <linux/acpi.h>.

 arch/ia64/hp/common/aml_nfw.c                        |    3 +--
 arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
 arch/x86/kernel/apic/io_apic.c                       |    3 ---
 arch/x86/pci/mmconfig_32.c                           |    1 -
 arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
 drivers/acpi/ac.c                                    |    3 +--
 drivers/acpi/acpi_extlog.c                           |    1 -
 drivers/acpi/acpi_pad.c                              |    3 +--
 drivers/acpi/acpica/Makefile                         |    2 +-
 drivers/acpi/apei/einj.c                             |    1 -
 drivers/acpi/battery.c                               |    3 +--
 drivers/acpi/blacklist.c                             |    1 -
 drivers/acpi/bus.c                                   |    2 --
 drivers/acpi/button.c                                |    3 +--
 drivers/acpi/custom_method.c                         |    2 +-
 drivers/acpi/debugfs.c                               |    2 +-
 drivers/acpi/dock.c                                  |    2 --
 drivers/acpi/ec.c                                    |    3 +--
 drivers/acpi/event.c                                 |    2 +-
 drivers/acpi/fan.c                                   |    3 +--
 drivers/acpi/hed.c                                   |    2 --
 drivers/acpi/numa.c                                  |    1 -
 drivers/acpi/nvs.c                                   |    1 -
 drivers/acpi/osl.c                                   |    2 --
 drivers/acpi/pci_irq.c                               |    2 --
 drivers/acpi/pci_link.c                              |    3 +--
 drivers/acpi/pci_root.c                              |    2 --
 drivers/acpi/power.c                                 |    3 +--
 drivers/acpi/proc.c                                  |    3 +--
 drivers/acpi/processor_core.c                        |    2 +-
 drivers/acpi/processor_idle.c                        |    1 -
 drivers/acpi/processor_perflib.c                     |    3 +--
 drivers/acpi/processor_thermal.c                     |    3 +--
 drivers/acpi/processor_throttling.c                  |    3 +--
 drivers/acpi/sbshc.c                                 |    3 +--
 drivers/acpi/scan.c                                  |    1 -
 drivers/acpi/sleep.c                                 |    2 --
 drivers/acpi/sysfs.c                                 |    2 +-
 drivers/acpi/thermal.c                               |    3 +--
 drivers/acpi/utils.c                                 |    2 --
 drivers/acpi/video.c                                 |    3 +--
 drivers/acpi/wakeup.c                                |    1 -
 drivers/ata/libata-acpi.c                            |    1 -
 drivers/ata/pata_acpi.c                              |    2 +-
 drivers/char/hpet.c                                  |    1 -
 drivers/char/tpm/tpm_acpi.c                          |    2 +-
 drivers/char/tpm/tpm_ppi.c                           |    1 -
 drivers/gpu/drm/i915/intel_acpi.c                    |    1 -
 drivers/gpu/drm/nouveau/nouveau_acpi.c               |    3 ---
 drivers/gpu/drm/radeon/radeon_acpi.c                 |    2 --
 drivers/hv/vmbus_drv.c                               |    1 -
 drivers/hwmon/acpi_power_meter.c                     |    3 +--
 drivers/hwmon/asus_atk0110.c                         |    5 +----
 drivers/ide/ide-acpi.c                               |    1 -
 drivers/input/misc/atlas_btns.c                      |    2 +-
 drivers/iommu/amd_iommu_init.c                       |    1 -
 drivers/iommu/intel_irq_remapping.c                  |    2 +-
 drivers/pci/hotplug/acpiphp_ibm.c                    |    1 -
 drivers/pci/hotplug/pciehp.h                         |    2 --
 drivers/pci/ioapic.c                                 |    1 -
 drivers/pci/pci-acpi.c                               |    2 --
 drivers/pci/pci-label.c                              |    1 -
 drivers/platform/x86/acer-wmi.c                      |    1 -
 drivers/platform/x86/asus-laptop.c                   |    3 +--
 drivers/platform/x86/asus-wmi.c                      |    3 +--
 drivers/platform/x86/classmate-laptop.c              |    2 +-
 drivers/platform/x86/dell-wmi-aio.c                  |    1 -
 drivers/platform/x86/dell-wmi.c                      |    1 -
 drivers/platform/x86/eeepc-laptop.c                  |    3 +--
 drivers/platform/x86/eeepc-wmi.c                     |    2 +-
 drivers/platform/x86/hp_accel.c                      |    2 +-
 drivers/platform/x86/ideapad-laptop.c                |    3 +--
 drivers/platform/x86/intel-rst.c                     |    2 +-
 drivers/platform/x86/intel-smartconnect.c            |    2 +-
 drivers/platform/x86/intel_menlow.c                  |    3 +--
 drivers/platform/x86/intel_oaktrail.c                |    2 --
 drivers/platform/x86/mxm-wmi.c                       |    3 +--
 drivers/platform/x86/panasonic-laptop.c              |    3 +--
 drivers/platform/x86/pvpanic.c                       |    3 +--
 drivers/platform/x86/samsung-q10.c                   |    2 +-
 drivers/platform/x86/sony-laptop.c                   |    2 --
 drivers/platform/x86/tc1100-wmi.c                    |    4 +---
 drivers/platform/x86/thinkpad_acpi.c                 |    2 +-
 drivers/platform/x86/toshiba_acpi.c                  |    2 +-
 drivers/platform/x86/toshiba_bluetooth.c             |    3 +--
 drivers/platform/x86/wmi.c                           |    2 --
 drivers/platform/x86/xo15-ebook.c                    |    3 +--
 drivers/pnp/pnpacpi/core.c                           |    1 -
 drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
 drivers/sfi/sfi_acpi.c                               |    2 +-
 drivers/staging/quickstart/quickstart.c              |    2 +-
 drivers/usb/core/usb-acpi.c                          |    1 -
 drivers/xen/xen-acpi-cpuhotplug.c                    |    2 --
 drivers/xen/xen-acpi-memhotplug.c                    |    1 -
 drivers/xen/xen-acpi-pad.c                           |    3 +--
 drivers/xen/xen-acpi-processor.c                     |    3 +--
 include/acpi/acpi_bus.h                              |    6 +++++-
 include/acpi/acpi_drivers.h                          |    7 +++++--
 include/acpi/platform/aclinux.h                      |    6 ++++++
 include/linux/acpi_io.h                              |    2 +-
 include/linux/ide.h                                  |    3 ---
 include/linux/iscsi_ibft.h                           |    2 +-
 include/linux/pci_hotplug.h                          |    3 +--
 include/linux/sfi_acpi.h                             |    2 +-
 include/linux/tboot.h                                |    2 +-
 tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    3 +--
 106 files changed, 75 insertions(+), 166 deletions(-)

-- 
1.7.10


^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
@ 2013-11-22 23:27 ` Lv Zheng
  2013-11-25 23:54   ` Rafael J. Wysocki
  2013-11-22 23:29 ` [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Lv Zheng
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-11-22 23:27 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

From: Lv Zheng <lv.zheng@intel.com>

The header file <acpi/acpi.h> is the top level header for other kernel
subsystems to include.  It contains environemnt settings and architecture
specific implementation that should be included before including other
ACPICA headers in order to keep a consistent build environment for ACPICA
users.  All following internal ACPICA header files thus should be included
from <acpi/acpi.h> and not included by other kernel files:
  <acpi/acnames.h>
  <acpi/actypes.h>
  <acpi/acexcep.h>
  <acpi/acexcep.h>
  <acpi/acoutput.h>
  <acpi/acrestyp.h>
  <acpi/acpiosxf.h>
  <acpi/acpixf.h>
  <acpi/acconfig.h>: included by <acpi/acpixf.h>
  <acpi/acconfig.h>
  <acpi/actbl.h>
  <acpi/actbl1.h>: included by <acpi/actbl.h>
  <acpi/actbl2.h>: included by <acpi/actbl.h>
  <acpi/actbl3.h>: included by <acpi/actbl.h>
  <acpi/platform/acenv.h>
  <acpi/platform/aclinux.h>: included by <acpi/platform/acenv.h>
This patch cleans up inclusions of above files from non ACPICA source
files.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/acpi/nvs.c           |    1 -
 drivers/hwmon/asus_atk0110.c |    1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index 266bc58..386a9fe 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -13,7 +13,6 @@
 #include <linux/slab.h>
 #include <linux/acpi.h>
 #include <linux/acpi_io.h>
-#include <acpi/acpiosxf.h>
 
 /* ACPI NVS regions, APEI may use it */
 
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 1d7ff46..dafc63c 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -18,7 +18,6 @@
 #include <linux/err.h>
 
 #include <acpi/acpi.h>
-#include <acpi/acpixf.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/acpi_bus.h>
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
  2013-11-22 23:27 ` [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions Lv Zheng
@ 2013-11-22 23:29 ` Lv Zheng
  2013-11-26  0:06   ` Rafael J. Wysocki
  2013-11-22 23:32 ` [PATCH 3/4] ACPICA: Cleanup <acpi/acpi.h> inclusions Lv Zheng
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-11-22 23:29 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

From: Lv Zheng <lv.zheng@intel.com>

This patch enfoces <linux/acpi.h> inclusion instead of direct
<acpi/acpi_drivers.h> and <acpi/acpi_bus.h> inclusions.

It's required that <acpi/acpi_bus.h> included prior than
<acpi/acpi_drivers.h> to find declarations for acpi_pci_root.
It is required that <acpi/acpi.h> included prior than <acpi/acpi_drivers.h>
to find declarations for acpi_handle and acpi_notify_handler.

In order to work around this, there are <linux/acpi.h> and <acpi/acpi_bus.h>
inclusions in the <acpi/acpi_drivers.h>.
This messes up the inclusion order in the following style:

  +--<acpi/acpi_drivers.h>
  |
  |  +--<linux/acpi.h>
  |  |
  |  |  +--<acpi/acpi.h> if CONFIG_ACPI=y
  |  |  |
  |  |  +->Included if CONFIG_ACPI=y
  |  |
  |  |  +--<acpi/acpi_bus.h> if CONFIG_ACPI=y
  |  |  |
  |  |  |  +--<acpi/acpi.h> if CONFIG_ACPI=y and CONFIG_ACPI=n
  |  |  |  |
  |  |  |  +->Excluded
  |  |  |
  |  |  +->Included if CONFIG_ACPI=y
  |  |
  |  |  +--<acpi/acpi_drivers.h> if CONFIG_ACPI=y
  |  |  |
  |  |  +->Excluded
  |  |
  |  +->Included if CONFIG_ACPI=y and CONFIG_ACPI=n
  |
  |  +--<acpi/acpi_bus.h>
  |  |
  |  |  +--<acpi/acpi.h> if CONFIG_ACPI=y and CONFIG_ACPI=n
  |  |  |
  |  |  +->Inlcuded if CONFIG_ACPI=n
  |  |
  |  +->Included if CONFIG_ACPI=n
  |
  +->Included if CONFIG_ACPI=y and CONFIG_ACPI=n

              Figure 1.  Current ACPI Headers Inclusion Order

When CONFIG_ACPI is disabled, the result inclusion order of
"#include <acpi/acpi_drivers.h> turns out to be:

  <linux/acpi.h>
  <acpi/acpi.h>
  <acpi/acpi_bus.h>
  <acpi/acpi_drivers.h>

           Figure 2.  ACPI Headers Inclusion Order CONFIG_ACPI=n

When CONFIG_ACPI is enabled, the result inclusion order of
"#include <acpi/acpi_drivers.h> turns out to be:

  <acpi/acpi.h>
  <acpi/acpi_bus.h>
  <linux/acpi.h>
  <acpi/acpi_drivers.h>

           Figure 3.  ACPI Headers Inclusion Order CONFIG_ACPI=n

In order to follow the type dependencies, the best order should be:
  <acpi/acpi.h>
  <acpi/acpi_bus.h>
  <acpi/acpi_drivers.h> or <linux/acpi.h>
  <linux/acpi.h>           <acpi/acpi_drivers.h>

               Figure 4.  Best ACPI Headers Inclusion Order

By investigation, currently <acpi/acpi_drivers.h> are all included for
CONFIG_ACPI=y, thus this is not a real issue but would prevent further
header cleanup work from being achieved.

If we just include <linux/acpi.h> in the <acpi/acpi_drivers.h> and
<acpi/acpi_bus.h> to solve header inclusion order issue, it will easily
form a wrong inclusion order, and a build test would end with the
following error messages:
<stdin>:1220:2: warning: #warning syscall kcmp not implemented [-Wcpp]
<stdin>:1223:2: warning: #warning syscall finit_module not implemented [-Wcpp]
In file included from include/linux/acpi.h:38:0,
                 from include/acpi/acpi_bus.h:30,
                 from drivers/acpi/ac.c:35:
include/acpi/acpi_drivers.h:101:43: warning: 'struct acpi_pci_root' declared inside parameter list [enabled by default]
include/acpi/acpi_drivers.h:101:43: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
In file included from include/acpi/acpi_bus.h:30:0,
                 from drivers/acpi/ac.c:35:
include/linux/acpi.h:272:7: warning: 'struct acpi_device' declared inside parameter list [enabled by default]

So this patch cleans up direct <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>
inclusion by replacing them with <linux/acpi.h> inclusion and removing
<linux/acpi.h> and <acpi/acpi_bus.h> inclusion from the
<acpi/acpi_drivers.h> so that the inclusion order is:

  <acpi/acpi.h>
  <acpi/acpi_bus.h>
  <acpi/acpi_drivers.h>
  <linux/acpi.h>

           Figure 5.  ACPI Headers Inclusion Order CONFIG_ACPI=n

This matches best known ACPI header inclusion order in the Figure 4.

Note that, in some files that already include <linux/acpi.h>, this patch
deletes <acpi/acpi_drivers.h> and <acpi/acpi_bus.h> for them.  If
<linux/acpi.h> inclusion is after original <acpi/acpi_drivers.h> and
<acpi/acpi_bus.h> inclusions, it is moved up so that other ACPI header
files are able to find the definitions of the ACPICA types.

Currently <acpi/acpi_bus.h> is used to put prototypes that are referencing
ACPICA defined types.  As such types are not safe for "#ifndef CONFIG_ACPI"
code blocks, <linux/acpi.h> includes this file with "#ifdef CONFIG_ACPI"
protections.  Directly including <acpi/acpi_bus.h> should only apply to
ACPI dependent code while such code can also include <linux/acpi.h>.  This
patch tries to replace <acpi/acpi_bus.h> inclusions with <linux/acpi.h>
inclusions or delete <acpi/acpi_bus.h> inclusions if there is already
<linux/acpi.h> included for such files.  When deleting, we carefully put
<linux/acpi.h> inclusions before any other ACPI header file inclusions so
that they are able to find ACPICA defined types.

The actual cleanups are done in the following style:

1. CONFIG_ACPI dependent modules, where <linux/acpi.h> is already included.
   We could simply cleanup them by removing <acpi/acpi_drivers.h> and
   <acpi/acpi_bus.h> inclusion.
2. Not CONFIG_ACPI dependent modules, where <linux/acpi.h> is already
   included.  As there isn't code pieces surrounded by "#ifdef CONFIG_ACPI"
   we can simply cleanup them by removing <acpi/acpi_drivers.h> and
   <acpi/acpi_bus.h>.
3. CONFIG_ACPI dependent modules, where <linux/acpi.h> is not included.  We
   can simply cleanup them by replacing <acpi/acpi_drivers.h> and
   <acpi/acpi_bus.h> with <linux/acpi.h>.
4. CONFIG_ACPI enabled code, but only ACPICA types are referenced, we can
   simply cleanup them by replacing <acpi/acpi_drivers.h> and
   <acpi/acpi_bus.h> with <acpi/acpi.h>.  We carefully protect such
   inclusions with "#ifdef CONFIG_ACPI" undeleted.

Tests are done by enabling the modules listed in this patch, build the
kernel with and without this patch applied.  The build output with static
checkers enabled shows only line number differences.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 arch/ia64/hp/common/aml_nfw.c                        |    3 +--
 arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
 arch/x86/kernel/apic/io_apic.c                       |    3 ---
 arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
 drivers/acpi/ac.c                                    |    3 +--
 drivers/acpi/acpi_extlog.c                           |    1 -
 drivers/acpi/acpi_pad.c                              |    3 +--
 drivers/acpi/battery.c                               |    3 +--
 drivers/acpi/blacklist.c                             |    1 -
 drivers/acpi/bus.c                                   |    2 --
 drivers/acpi/button.c                                |    3 +--
 drivers/acpi/custom_method.c                         |    2 +-
 drivers/acpi/debugfs.c                               |    2 +-
 drivers/acpi/dock.c                                  |    2 --
 drivers/acpi/ec.c                                    |    3 +--
 drivers/acpi/event.c                                 |    2 +-
 drivers/acpi/fan.c                                   |    3 +--
 drivers/acpi/hed.c                                   |    2 --
 drivers/acpi/numa.c                                  |    1 -
 drivers/acpi/osl.c                                   |    1 -
 drivers/acpi/pci_irq.c                               |    2 --
 drivers/acpi/pci_link.c                              |    3 +--
 drivers/acpi/pci_root.c                              |    2 --
 drivers/acpi/power.c                                 |    3 +--
 drivers/acpi/proc.c                                  |    3 +--
 drivers/acpi/processor_core.c                        |    2 +-
 drivers/acpi/processor_idle.c                        |    1 -
 drivers/acpi/processor_perflib.c                     |    3 +--
 drivers/acpi/processor_thermal.c                     |    3 +--
 drivers/acpi/processor_throttling.c                  |    3 +--
 drivers/acpi/sbshc.c                                 |    3 +--
 drivers/acpi/scan.c                                  |    1 -
 drivers/acpi/sleep.c                                 |    2 --
 drivers/acpi/sysfs.c                                 |    2 +-
 drivers/acpi/thermal.c                               |    3 +--
 drivers/acpi/utils.c                                 |    2 --
 drivers/acpi/video.c                                 |    3 +--
 drivers/acpi/wakeup.c                                |    1 -
 drivers/ata/libata-acpi.c                            |    1 -
 drivers/ata/pata_acpi.c                              |    2 +-
 drivers/char/hpet.c                                  |    1 -
 drivers/char/tpm/tpm_ppi.c                           |    1 -
 drivers/gpu/drm/i915/intel_acpi.c                    |    1 -
 drivers/gpu/drm/nouveau/nouveau_acpi.c               |    2 --
 drivers/gpu/drm/radeon/radeon_acpi.c                 |    2 --
 drivers/hv/vmbus_drv.c                               |    1 -
 drivers/hwmon/acpi_power_meter.c                     |    3 +--
 drivers/hwmon/asus_atk0110.c                         |    3 +--
 drivers/input/misc/atlas_btns.c                      |    2 +-
 drivers/pci/hotplug/acpiphp_ibm.c                    |    1 -
 drivers/pci/hotplug/pciehp.h                         |    1 -
 drivers/pci/ioapic.c                                 |    1 -
 drivers/pci/pci-acpi.c                               |    1 -
 drivers/pci/pci-label.c                              |    1 -
 drivers/platform/x86/acer-wmi.c                      |    1 -
 drivers/platform/x86/asus-laptop.c                   |    3 +--
 drivers/platform/x86/asus-wmi.c                      |    3 +--
 drivers/platform/x86/classmate-laptop.c              |    2 +-
 drivers/platform/x86/dell-wmi-aio.c                  |    1 -
 drivers/platform/x86/dell-wmi.c                      |    1 -
 drivers/platform/x86/eeepc-laptop.c                  |    3 +--
 drivers/platform/x86/eeepc-wmi.c                     |    2 +-
 drivers/platform/x86/hp_accel.c                      |    2 +-
 drivers/platform/x86/ideapad-laptop.c                |    3 +--
 drivers/platform/x86/intel-rst.c                     |    2 +-
 drivers/platform/x86/intel-smartconnect.c            |    2 +-
 drivers/platform/x86/intel_menlow.c                  |    3 +--
 drivers/platform/x86/intel_oaktrail.c                |    2 --
 drivers/platform/x86/mxm-wmi.c                       |    3 +--
 drivers/platform/x86/panasonic-laptop.c              |    3 +--
 drivers/platform/x86/pvpanic.c                       |    3 +--
 drivers/platform/x86/samsung-q10.c                   |    2 +-
 drivers/platform/x86/sony-laptop.c                   |    2 --
 drivers/platform/x86/tc1100-wmi.c                    |    3 +--
 drivers/platform/x86/thinkpad_acpi.c                 |    2 +-
 drivers/platform/x86/toshiba_acpi.c                  |    2 +-
 drivers/platform/x86/toshiba_bluetooth.c             |    3 +--
 drivers/platform/x86/wmi.c                           |    2 --
 drivers/platform/x86/xo15-ebook.c                    |    3 +--
 drivers/pnp/pnpacpi/core.c                           |    1 -
 drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
 drivers/staging/quickstart/quickstart.c              |    2 +-
 drivers/usb/core/usb-acpi.c                          |    1 -
 drivers/xen/xen-acpi-cpuhotplug.c                    |    2 --
 drivers/xen/xen-acpi-memhotplug.c                    |    1 -
 drivers/xen/xen-acpi-pad.c                           |    3 +--
 drivers/xen/xen-acpi-processor.c                     |    3 +--
 include/acpi/acpi_bus.h                              |    1 -
 include/acpi/acpi_drivers.h                          |    2 --
 include/linux/pci_hotplug.h                          |    2 +-
 tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    3 +--
 91 files changed, 51 insertions(+), 142 deletions(-)

diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
index 916ffe7..84715fc 100644
--- a/arch/ia64/hp/common/aml_nfw.c
+++ b/arch/ia64/hp/common/aml_nfw.c
@@ -23,8 +23,7 @@
  */
 
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/sal.h>
 
 MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 00c77cf..ccbf857 100644
--- a/arch/x86/kernel/apic/apic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -21,9 +21,7 @@
 #include <asm/apic.h>
 #include <asm/ipi.h>
 
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
+#include <linux/acpi.h>
 
 static struct apic apic_physflat;
 static struct apic apic_flat;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index e63a5bd..4d67a75 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -37,9 +37,6 @@
 #include <linux/kthread.h>
 #include <linux/jiffies.h>	/* time_after() */
 #include <linux/slab.h>
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
 #include <linux/bootmem.h>
 #include <linux/dmar.h>
 #include <linux/hpet.h>
diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
index 649a12b..08e350e 100644
--- a/arch/x86/platform/olpc/olpc-xo15-sci.c
+++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
@@ -15,8 +15,7 @@
 #include <linux/power_supply.h>
 #include <linux/olpc-ec.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/olpc.h>
 
 #define DRV_NAME			"olpc-xo15-sci"
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 8711e37..8095943 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -32,8 +32,7 @@
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index a6869e1..2635a01 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -9,7 +9,6 @@
 
 #include <linux/module.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/cper.h>
 #include <linux/ratelimit.h>
 #include <asm/cpu.h>
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
index fc6008f..65610c0 100644
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -28,8 +28,7 @@
 #include <linux/cpu.h>
 #include <linux/clockchips.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/mwait.h>
 
 #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index fbf1ace..e90ef8b 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -36,8 +36,7 @@
 #include <linux/suspend.h>
 #include <asm/unaligned.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/power_supply.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index 078c4f7..05ee8f6 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -30,7 +30,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/dmi.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index bba9b72..cfea1c5 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -37,8 +37,6 @@
 #include <asm/mpspec.h>
 #endif
 #include <linux/pci.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/apei.h>
 #include <linux/dmi.h>
 #include <linux/suspend.h>
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index c971929..9e3a6cb 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -31,8 +31,7 @@
 #include <linux/seq_file.h>
 #include <linux/input.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/button.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
index 12b62f2..c68e724 100644
--- a/drivers/acpi/custom_method.c
+++ b/drivers/acpi/custom_method.c
@@ -7,7 +7,7 @@
 #include <linux/kernel.h>
 #include <linux/uaccess.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
index b55d6a2..6b1919f 100644
--- a/drivers/acpi/debugfs.c
+++ b/drivers/acpi/debugfs.c
@@ -5,7 +5,7 @@
 #include <linux/export.h>
 #include <linux/init.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define _COMPONENT		ACPI_SYSTEM_COMPONENT
 ACPI_MODULE_NAME("debugfs");
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index dcd73cc..9ab9e78 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -32,8 +32,6 @@
 #include <linux/jiffies.h>
 #include <linux/stddef.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index ba5b56d..1bd3de4 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -40,8 +40,7 @@
 #include <linux/spinlock.h>
 #include <linux/slab.h>
 #include <asm/io.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/dmi.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
index cae3b38..ef2d730 100644
--- a/drivers/acpi/event.c
+++ b/drivers/acpi/event.c
@@ -12,7 +12,7 @@
 #include <linux/init.h>
 #include <linux/poll.h>
 #include <linux/gfp.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <net/netlink.h>
 #include <net/genetlink.h>
 
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index ba3da88..1fb6290 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -29,8 +29,7 @@
 #include <linux/types.h>
 #include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
index 13b1d39..aafe3ca 100644
--- a/drivers/acpi/hed.c
+++ b/drivers/acpi/hed.c
@@ -25,8 +25,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/hed.h>
 
 static struct acpi_device_id acpi_hed_ids[] = {
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index a2343a1..9e6816e 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -29,7 +29,6 @@
 #include <linux/errno.h>
 #include <linux/acpi.h>
 #include <linux/numa.h>
-#include <acpi/acpi_bus.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 54a20ff..8507034 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -50,7 +50,6 @@
 #include <asm/uaccess.h>
 
 #include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <acpi/processor.h>
 #include "internal.h"
 
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 41c5e1b..52d45ea 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -37,8 +37,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 2652a61..cc5feb9 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -40,8 +40,7 @@
 #include <linux/mutex.h>
 #include <linux/slab.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 20360e4..dadd0f50 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -35,8 +35,6 @@
 #include <linux/pci-aspm.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/apei.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index c2ad391..ad7da68 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -42,8 +42,7 @@
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 #include <linux/sysfs.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "sleep.h"
 #include "internal.h"
 
diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
index 6a5b152..56d30fe 100644
--- a/drivers/acpi/proc.c
+++ b/drivers/acpi/proc.c
@@ -5,8 +5,7 @@
 #include <linux/bcd.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "sleep.h"
 
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index b3171f3..ad88410 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -11,7 +11,7 @@
 #include <linux/dmi.h>
 #include <linux/slab.h>
 
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 644516d..a1087d8 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -46,7 +46,6 @@
 #include <asm/apic.h>
 #endif
 
-#include <acpi/acpi_bus.h>
 #include <acpi/processor.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 60a7c28..df63370 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -36,8 +36,7 @@
 #include <asm/cpufeature.h>
 #endif
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
index d1d2e7f..4af89f9 100644
--- a/drivers/acpi/processor_thermal.c
+++ b/drivers/acpi/processor_thermal.c
@@ -33,9 +33,8 @@
 
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index e7dd2c1..a9de919 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -36,8 +36,7 @@
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index b78bc60..26e5b50 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -8,8 +8,7 @@
  * the Free Software Foundation version 2.
  */
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index fd39459..8870277 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -12,7 +12,6 @@
 #include <linux/dmi.h>
 #include <linux/nls.h>
 
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 721e949..281e5fd 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -21,8 +21,6 @@
 
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 #include "sleep.h"
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index 6dbc3ca..443dc93 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -5,7 +5,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/moduleparam.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 0d9f46b..ee4e467 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -43,8 +43,7 @@
 #include <linux/device.h>
 #include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 6d408bf..1336b91 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -30,8 +30,6 @@
 #include <linux/types.h>
 #include <linux/hardirq.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 995e91b..772ed29 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -39,8 +39,7 @@
 #include <linux/slab.h>
 #include <asm/uaccess.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/suspend.h>
 #include <acpi/video.h>
 
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
index 7bfbe40..1638401 100644
--- a/drivers/acpi/wakeup.c
+++ b/drivers/acpi/wakeup.c
@@ -5,7 +5,6 @@
 
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 4372cfa..8e3f8a7 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -20,7 +20,6 @@
 #include <scsi/scsi_device.h>
 #include "libata.h"
 
-#include <acpi/acpi_bus.h>
 
 unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
 module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
index 73212c9..245609f 100644
--- a/drivers/ata/pata_acpi.c
+++ b/drivers/ata/pata_acpi.c
@@ -13,7 +13,7 @@
 #include <linux/device.h>
 #include <linux/gfp.h>
 #include <scsi/scsi_host.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #include <linux/libata.h>
 #include <linux/ata.h>
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 5d9c31d..1538402 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -40,7 +40,6 @@
 #include <asm/div64.h>
 
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/hpet.h>
 
 /*
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
index 2168d15..98a56c4 100644
--- a/drivers/char/tpm/tpm_ppi.c
+++ b/drivers/char/tpm/tpm_ppi.c
@@ -1,5 +1,4 @@
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include "tpm.h"
 
 static const u8 tpm_ppi_uuid[] = {
diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
index dfff090..7fa3512 100644
--- a/drivers/gpu/drm/i915/intel_acpi.c
+++ b/drivers/gpu/drm/i915/intel_acpi.c
@@ -6,7 +6,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/vga_switcheroo.h>
-#include <acpi/acpi_drivers.h>
 
 #include <drm/drmP.h>
 #include "i915_drv.h"
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
index 95c7404..6763865 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -1,8 +1,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
 #include <acpi/video.h>
 #include <acpi/acpi.h>
 #include <linux/mxm-wmi.h>
diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
index 98a9074..f97c34f 100644
--- a/drivers/gpu/drm/radeon/radeon_acpi.c
+++ b/drivers/gpu/drm/radeon/radeon_acpi.c
@@ -25,8 +25,6 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
 #include <acpi/video.h>
 
 #include <drm/drmP.h>
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 48aad4f..244d9a2 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -30,7 +30,6 @@
 #include <linux/sysctl.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/completion.h>
 #include <linux/hyperv.h>
 #include <linux/kernel_stat.h>
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
index 8d40da3..a58a266 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -30,8 +30,7 @@
 #include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/err.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ACPI_POWER_METER_NAME		"power_meter"
 ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index dafc63c..9b64d26 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -18,8 +18,7 @@
 #include <linux/err.h>
 
 #include <acpi/acpi.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 
 #define ATK_HID "ATK0110"
diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
index 5d44023..14833f7 100644
--- a/drivers/input/misc/atlas_btns.c
+++ b/drivers/input/misc/atlas_btns.c
@@ -29,7 +29,7 @@
 #include <linux/input.h>
 #include <linux/types.h>
 #include <asm/uaccess.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define ACPI_ATLAS_NAME		"Atlas ACPI"
 #define ACPI_ATLAS_CLASS	"Atlas"
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
index 0d64c41..9b2ccfd 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
@@ -31,7 +31,6 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <acpi/acpi_bus.h>
 #include <linux/sysfs.h>
 #include <linux/kobject.h>
 #include <asm/uaccess.h>
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 541bbe6..f773254 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -164,7 +164,6 @@ static inline const char *slot_name(struct slot *slot)
 
 #ifdef CONFIG_ACPI
 #include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/pci-acpi.h>
 
 void __init pciehp_acpi_slot_detection_init(void);
diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
index 50ce680..2122b2b 100644
--- a/drivers/pci/ioapic.c
+++ b/drivers/pci/ioapic.c
@@ -20,7 +20,6 @@
 #include <linux/module.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
 
 struct ioapic {
 	acpi_handle	handle;
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index f166126..d0e4999 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -13,7 +13,6 @@
 #include <linux/module.h>
 #include <linux/pci-aspm.h>
 #include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
 
 #include <linux/pci-acpi.h>
 #include <linux/pm_runtime.h>
diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
index d51f45a..dbafcc8 100644
--- a/drivers/pci/pci-label.c
+++ b/drivers/pci/pci-label.c
@@ -29,7 +29,6 @@
 #include <linux/nls.h>
 #include <linux/acpi.h>
 #include <linux/pci-acpi.h>
-#include <acpi/acpi_bus.h>
 #include "pci.h"
 
 #define	DEVICE_LABEL_DSM	0x07
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index c9076bd..07eb2c4 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -42,7 +42,6 @@
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
 
-#include <acpi/acpi_drivers.h>
 #include <acpi/video.h>
 
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 0e9c169..430b5c3 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -53,8 +53,7 @@
 #include <linux/rfkill.h>
 #include <linux/slab.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ASUS_LAPTOP_VERSION	"0.42"
 
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 19c313b..df7ecb9 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -45,8 +45,7 @@
 #include <linux/seq_file.h>
 #include <linux/platform_device.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/video.h>
 
 #include "asus-wmi.h"
diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
index 6dfa8d3..0a16024 100644
--- a/drivers/platform/x86/classmate-laptop.c
+++ b/drivers/platform/x86/classmate-laptop.c
@@ -21,7 +21,7 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/workqueue.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/backlight.h>
 #include <linux/input.h>
 #include <linux/rfkill.h>
diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
index bcf8cc6..dbc97a3 100644
--- a/drivers/platform/x86/dell-wmi-aio.c
+++ b/drivers/platform/x86/dell-wmi-aio.c
@@ -24,7 +24,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index fa9a217..bdf483b 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -32,7 +32,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 #include <linux/dmi.h>
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index aefcc32..cabd567 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -28,8 +28,7 @@
 #include <linux/hwmon.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <linux/uaccess.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index af67e6e..6112933 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -33,7 +33,7 @@
 #include <linux/input/sparse-keymap.h>
 #include <linux/dmi.h>
 #include <linux/fb.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #include "asus-wmi.h"
 
diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
index a8e43cf..aff4d06 100644
--- a/drivers/platform/x86/hp_accel.c
+++ b/drivers/platform/x86/hp_accel.c
@@ -36,7 +36,7 @@
 #include <linux/uaccess.h>
 #include <linux/leds.h>
 #include <linux/atomic.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "../../misc/lis3lv02d/lis3lv02d.h"
 
 #define DRIVER_NAME     "hp_accel"
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 6788acc..70b5729 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -26,8 +26,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/rfkill.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
index a2083a9..d45bca3 100644
--- a/drivers/platform/x86/intel-rst.c
+++ b/drivers/platform/x86/intel-rst.c
@@ -20,7 +20,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
index 1838400..04cf5df 100644
--- a/drivers/platform/x86/intel-smartconnect.c
+++ b/drivers/platform/x86/intel-smartconnect.c
@@ -19,7 +19,7 @@
 
 #include <linux/init.h>
 #include <linux/module.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
index 11244f8..5d9ab07 100644
--- a/drivers/platform/x86/intel_menlow.c
+++ b/drivers/platform/x86/intel_menlow.c
@@ -38,8 +38,7 @@
 #include <linux/pm.h>
 
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Thomas Sujith");
 MODULE_AUTHOR("Zhang Rui");
diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
index f6f18cd..8b0d020 100644
--- a/drivers/platform/x86/intel_oaktrail.c
+++ b/drivers/platform/x86/intel_oaktrail.c
@@ -50,8 +50,6 @@
 #include <linux/platform_device.h>
 #include <linux/dmi.h>
 #include <linux/rfkill.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 
 #define DRIVER_NAME	"intel_oaktrail"
diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
index 0aea63b..3c59c0a 100644
--- a/drivers/platform/x86/mxm-wmi.c
+++ b/drivers/platform/x86/mxm-wmi.c
@@ -20,8 +20,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Dave Airlie");
 MODULE_DESCRIPTION("MXM WMI Driver");
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 10d12b2..d3c1782 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -125,8 +125,7 @@
 #include <linux/seq_file.h>
 #include <linux/uaccess.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
 
diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
index 47ae0c4..c9f6e51 100644
--- a/drivers/platform/x86/pvpanic.c
+++ b/drivers/platform/x86/pvpanic.c
@@ -24,8 +24,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
 MODULE_DESCRIPTION("pvpanic device driver");
diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
index cae7098..5413f62 100644
--- a/drivers/platform/x86/samsung-q10.c
+++ b/drivers/platform/x86/samsung-q10.c
@@ -15,7 +15,7 @@
 #include <linux/platform_device.h>
 #include <linux/backlight.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define SAMSUNGQ10_BL_MAX_INTENSITY 7
 
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 47caab0..c46f77a 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -61,8 +61,6 @@
 #include <linux/workqueue.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
 #include <asm/uaccess.h>
 #include <linux/sonypi.h>
 #include <linux/sony-laptop.h>
diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
index 9b93fdb..d16193e 100644
--- a/drivers/platform/x86/tc1100-wmi.c
+++ b/drivers/platform/x86/tc1100-wmi.c
@@ -33,8 +33,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 
 #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 05e046a..1a773f3 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -84,7 +84,7 @@
 #include <sound/control.h>
 #include <sound/initval.h>
 
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include <linux/pci_ids.h>
 
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 0cfadb6..886f600 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -57,7 +57,7 @@
 
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("John Belmonte");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
index 74dd01a..6051963 100644
--- a/drivers/platform/x86/toshiba_bluetooth.c
+++ b/drivers/platform/x86/toshiba_bluetooth.c
@@ -23,8 +23,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 62e8c22..ba13ade 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -37,8 +37,6 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 ACPI_MODULE_NAME("wmi");
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
index 4b1377b..49cbcce 100644
--- a/drivers/platform/x86/xo15-ebook.c
+++ b/drivers/platform/x86/xo15-ebook.c
@@ -18,8 +18,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/input.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define MODULE_NAME "xo15-ebook"
 
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 14655a0..e869ba6 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -24,7 +24,6 @@
 #include <linux/pnp.h>
 #include <linux/slab.h>
 #include <linux/mod_devicetable.h>
-#include <acpi/acpi_bus.h>
 
 #include "../base.h"
 #include "pnpacpi.h"
diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
index 3e60225..051ef96 100644
--- a/drivers/pnp/pnpacpi/pnpacpi.h
+++ b/drivers/pnp/pnpacpi/pnpacpi.h
@@ -1,7 +1,6 @@
 #ifndef ACPI_PNP_H
 #define ACPI_PNP_H
 
-#include <acpi/acpi_bus.h>
 #include <linux/acpi.h>
 #include <linux/pnp.h>
 
diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
index 9f6ebdb..a85c3d6 100644
--- a/drivers/staging/quickstart/quickstart.c
+++ b/drivers/staging/quickstart/quickstart.c
@@ -31,7 +31,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
 
diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
index 4e243c3..11c6569 100644
--- a/drivers/usb/core/usb-acpi.c
+++ b/drivers/usb/core/usb-acpi.c
@@ -16,7 +16,6 @@
 #include <linux/acpi.h>
 #include <linux/pci.h>
 #include <linux/usb/hcd.h>
-#include <acpi/acpi_bus.h>
 
 #include "usb.h"
 
diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
index 8dae6c1..dbb6406 100644
--- a/drivers/xen/xen-acpi-cpuhotplug.c
+++ b/drivers/xen/xen-acpi-cpuhotplug.c
@@ -24,8 +24,6 @@
 #include <linux/cpu.h>
 #include <linux/acpi.h>
 #include <linux/uaccess.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/processor.h>
 
 #include <xen/acpi.h>
diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
index 9083f1e..f2872a1 100644
--- a/drivers/xen/xen-acpi-memhotplug.c
+++ b/drivers/xen/xen-acpi-memhotplug.c
@@ -22,7 +22,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <xen/acpi.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
index 59708fd..cd7b8ad 100644
--- a/drivers/xen/xen-acpi-pad.c
+++ b/drivers/xen/xen-acpi-pad.c
@@ -18,8 +18,7 @@
 
 #include <linux/kernel.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/xen/hypercall.h>
 #include <xen/interface/version.h>
 #include <xen/xen-ops.h>
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index 13bc6c3..29b096c 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -28,8 +28,7 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/syscore_ops.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #include <xen/xen.h>
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index c602c77..0af9667 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -28,7 +28,6 @@
 
 #include <linux/device.h>
 
-#include <acpi/acpi.h>
 
 /* TBD: Make dynamic */
 #define ACPI_MAX_HANDLES	10
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index 1cedfcb..f3f1219 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -26,8 +26,6 @@
 #ifndef __ACPI_DRIVERS_H__
 #define __ACPI_DRIVERS_H__
 
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 
 #define ACPI_MAX_STRING			80
 
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index 430dd96..71294ab 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -176,7 +176,7 @@ struct hotplug_params {
 
 #ifdef CONFIG_ACPI
 #include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
 int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
 int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
index 66cace6..eafd851 100644
--- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
+++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
@@ -28,8 +28,7 @@
 
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 static int pm_tmr_ioport = 0;
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH 3/4] ACPICA: Cleanup <acpi/acpi.h> inclusions.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
  2013-11-22 23:27 ` [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions Lv Zheng
  2013-11-22 23:29 ` [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Lv Zheng
@ 2013-11-22 23:32 ` Lv Zheng
  2013-11-22 23:37 ` [PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h> Lv Zheng
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-11-22 23:32 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

From: Lv Zheng <lv.zheng@intel.com>

This patch cleans up <acpi/acpi.h> inclusions.

1. For files where <linux/acpi.h> is already included, this patch cleans up
   them by deleting <acpi/acpi.h> inclusions.  Note that if <acpi/acpi.h>
   is included before including <linux/acpi.h> in the original file, the
   inclusion of <linux/acpi.h> is moved up to avoid issues from happening.
2. The sfi_acpi files have invoked acpi_table_parse(), so this patch
   converts <acpi/acpi.h> inclusions into <linux/acpi.h> inclusions so that
   they can find the acpi_parse_table() prototypes.
3. For files where only <acpi/acpi.h> included, this patch cleans up them
   by replacing <acpi/acpi.h> inclusions with <linux/acpi.h>.  Such files
   are those include ACPICA headers to find table definitions or ACPICA
   basic types.
4. For files where no actual ACPICA references, this patch cleans up them
   by deleting <acpi/acpi.h> inclusions.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 arch/x86/pci/mmconfig_32.c             |    1 -
 drivers/acpi/apei/einj.c               |    1 -
 drivers/acpi/osl.c                     |    1 -
 drivers/char/tpm/tpm_acpi.c            |    2 +-
 drivers/gpu/drm/nouveau/nouveau_acpi.c |    1 -
 drivers/hwmon/asus_atk0110.c           |    1 -
 drivers/ide/ide-acpi.c                 |    1 -
 drivers/iommu/amd_iommu_init.c         |    1 -
 drivers/iommu/intel_irq_remapping.c    |    2 +-
 drivers/pci/hotplug/pciehp.h           |    1 -
 drivers/pci/pci-acpi.c                 |    1 -
 drivers/platform/x86/tc1100-wmi.c      |    1 -
 drivers/sfi/sfi_acpi.c                 |    2 +-
 include/linux/acpi_io.h                |    2 +-
 include/linux/ide.h                    |    3 ---
 include/linux/iscsi_ibft.h             |    2 +-
 include/linux/pci_hotplug.h            |    1 -
 include/linux/sfi_acpi.h               |    2 +-
 include/linux/tboot.h                  |    2 +-
 19 files changed, 7 insertions(+), 21 deletions(-)

diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
index 5c90975..43984bc 100644
--- a/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -14,7 +14,6 @@
 #include <linux/rcupdate.h>
 #include <asm/e820.h>
 #include <asm/pci_x86.h>
-#include <acpi/acpi.h>
 
 /* Assume systems with more busses have correct MCFG */
 #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
index fb57d03..ca0c6d7 100644
--- a/drivers/acpi/apei/einj.c
+++ b/drivers/acpi/apei/einj.c
@@ -33,7 +33,6 @@
 #include <linux/nmi.h>
 #include <linux/delay.h>
 #include <linux/mm.h>
-#include <acpi/acpi.h>
 
 #include "apei-internal.h"
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 8507034..c4a0e45 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -49,7 +49,6 @@
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi.h>
 #include <acpi/processor.h>
 #include "internal.h"
 
diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
index 64420b3..b9a57fa 100644
--- a/drivers/char/tpm/tpm_acpi.c
+++ b/drivers/char/tpm/tpm_acpi.c
@@ -23,7 +23,7 @@
 #include <linux/security.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 #include "tpm.h"
 #include "tpm_eventlog.h"
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
index 6763865..5910ef5 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -2,7 +2,6 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <acpi/video.h>
-#include <acpi/acpi.h>
 #include <linux/mxm-wmi.h>
 
 #include <linux/vga_switcheroo.h>
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 9b64d26..eea1f60 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -17,7 +17,6 @@
 #include <linux/jiffies.h>
 #include <linux/err.h>
 
-#include <acpi/acpi.h>
 #include <linux/acpi.h>
 
 
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
index d9e1f7c..333d405 100644
--- a/drivers/ide/ide-acpi.c
+++ b/drivers/ide/ide-acpi.c
@@ -14,7 +14,6 @@
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
 #include <linux/ide.h>
 #include <linux/pci.h>
 #include <linux/dmi.h>
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 8f798be..28b4bea 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -26,7 +26,6 @@
 #include <linux/msi.h>
 #include <linux/amd-iommu.h>
 #include <linux/export.h>
-#include <acpi/acpi.h>
 #include <asm/pci-direct.h>
 #include <asm/iommu.h>
 #include <asm/gart.h>
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index bab10b1..01c1dd9 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -10,7 +10,7 @@
 #include <asm/smp.h>
 #include <asm/cpu.h>
 #include <linux/intel-iommu.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 #include <asm/irq_remapping.h>
 #include <asm/pci-direct.h>
 #include <asm/msidef.h>
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index f773254..fc51cab 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -163,7 +163,6 @@ static inline const char *slot_name(struct slot *slot)
 }
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
 #include <linux/pci-acpi.h>
 
 void __init pciehp_acpi_slot_detection_init(void);
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index d0e4999..4c77380 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -12,7 +12,6 @@
 #include <linux/pci.h>
 #include <linux/module.h>
 #include <linux/pci-aspm.h>
-#include <acpi/acpi.h>
 
 #include <linux/pci-acpi.h>
 #include <linux/pm_runtime.h>
diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
index d16193e..6a6ea28 100644
--- a/drivers/platform/x86/tc1100-wmi.c
+++ b/drivers/platform/x86/tc1100-wmi.c
@@ -32,7 +32,6 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi.h>
 #include <linux/acpi.h>
 #include <linux/platform_device.h>
 
diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
index f5b4ca5..5589ec5 100644
--- a/drivers/sfi/sfi_acpi.c
+++ b/drivers/sfi/sfi_acpi.c
@@ -60,7 +60,7 @@
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/kernel.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 #include <linux/sfi.h>
 #include "sfi_core.h"
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
index b0ffa21..ded96fe 100644
--- a/include/linux/acpi_io.h
+++ b/include/linux/acpi_io.h
@@ -2,7 +2,7 @@
 #define _ACPI_IO_H_
 
 #include <linux/io.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
 					    acpi_size size)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 46a1422..f29a6de 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -18,9 +18,6 @@
 #include <linux/completion.h>
 #include <linux/pm.h>
 #include <linux/mutex.h>
-#ifdef CONFIG_BLK_DEV_IDEACPI
-#include <acpi/acpi.h>
-#endif
 #include <asm/byteorder.h>
 #include <asm/io.h>
 
diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
index 8ba7e5b..605cc5c 100644
--- a/include/linux/iscsi_ibft.h
+++ b/include/linux/iscsi_ibft.h
@@ -21,7 +21,7 @@
 #ifndef ISCSI_IBFT_H
 #define ISCSI_IBFT_H
 
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 /*
  * Logical location of iSCSI Boot Format Table.
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index 71294ab..e6a5e99 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -175,7 +175,6 @@ struct hotplug_params {
 };
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
 #include <linux/acpi.h>
 int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
 int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
index 631af63..c9cab82 100644
--- a/include/linux/sfi_acpi.h
+++ b/include/linux/sfi_acpi.h
@@ -60,7 +60,7 @@
 #define _LINUX_SFI_ACPI_H
 
 #ifdef CONFIG_SFI
-#include <acpi/acpi.h>		/* struct acpi_table_header */
+#include <linux/acpi.h>
 
 extern int sfi_acpi_table_parse(char *signature, char *oem_id,
 				char *oem_table_id,
diff --git a/include/linux/tboot.h b/include/linux/tboot.h
index c75128b..9a54b33 100644
--- a/include/linux/tboot.h
+++ b/include/linux/tboot.h
@@ -34,7 +34,7 @@ enum {
 };
 
 #ifdef CONFIG_INTEL_TXT
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 /* used to communicate between tboot and the launched kernel */
 
 #define TB_KEY_SIZE             64   /* 512 bits */
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h>.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
                   ` (2 preceding siblings ...)
  2013-11-22 23:32 ` [PATCH 3/4] ACPICA: Cleanup <acpi/acpi.h> inclusions Lv Zheng
@ 2013-11-22 23:37 ` Lv Zheng
  2013-11-26  0:09   ` [UPDATE PATCH " Rafael J. Wysocki
       [not found] ` <3c5e408cd7791ef746f462c79ce28f67734817d9.1385434808.git.lv.zheng@intel.com>
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-11-22 23:37 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

From: Lv Zheng <lv.zheng@intel.com>

As there is only CONFIG_ACPI=n processing in the <linux/acpi.h>, it is not
safe to include <acpi/acpi.h>, <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>
directly for source out of Linux ACPI subsystems.

This patch adds error messaging to warn developers of such wrong
inclusions.

In order not to be bisected and reverted as a wrong commit, warning
messages are carefully split into a seperate patch other than the wrong
inclusion cleanups.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/acpi/acpica/Makefile    |    2 +-
 include/acpi/acpi_bus.h         |    5 +++++
 include/acpi/acpi_drivers.h     |    5 +++++
 include/acpi/platform/aclinux.h |   10 ++++++++++
 4 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 4383040..7738677 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -2,7 +2,7 @@
 # Makefile for ACPICA Core interpreter
 #
 
-ccflags-y			:= -Os
+ccflags-y			:= -Os -DLINUXIZED_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
 
 # use acpi.o to put all files here into acpi.o modparam namespace
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 0af9667..0b1ea80 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -26,6 +26,11 @@
 #ifndef __ACPI_BUS_H__
 #define __ACPI_BUS_H__
 
+/* <acpi/acpi_bus.h> is not safe for CONFIG_ACPI=n environment */
+#ifndef _LINUX_ACPI_H
+#error "Please don't include <acpi/acpi_bus.h> direclty, including <linux/acpi.h> instead."
+#endif
+
 #include <linux/device.h>
 
 
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index f3f1219..f5bed3a 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -26,6 +26,11 @@
 #ifndef __ACPI_DRIVERS_H__
 #define __ACPI_DRIVERS_H__
 
+/* <acpi/acpi_drivers.h> is not safe for CONFIG_ACPI=n environment */
+#ifndef _LINUX_ACPI_H
+#error "Please don't include <acpi/acpi_drivers.h> directly, including <linux/acpi.h> instead."
+#endif
+
 
 #define ACPI_MAX_STRING			80
 
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
index 28f4f4d..0e05771 100644
--- a/include/acpi/platform/aclinux.h
+++ b/include/acpi/platform/aclinux.h
@@ -44,6 +44,16 @@
 #ifndef __ACLINUX_H__
 #define __ACLINUX_H__
 
+#ifdef __KERNEL__
+
+/* ACPICA external files should not include ACPICA headers directly. */
+
+#if !defined(LINUXIZED_ACPICA) && !defined(_LINUX_ACPI_H)
+#error "Please don't include <acpi/acpi.h> directly, including <linux/acpi.h> instead."
+#endif
+
+#endif
+
 /* Common (in-kernel/user-space) ACPICA configuration */
 
 #define ACPI_USE_SYSTEM_CLIBRARY
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions.
  2013-11-22 23:27 ` [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions Lv Zheng
@ 2013-11-25 23:54   ` Rafael J. Wysocki
  0 siblings, 0 replies; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-25 23:54 UTC (permalink / raw)
  To: Lv Zheng; +Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi

On Saturday, November 23, 2013 07:27:27 AM Lv Zheng wrote:
> From: Lv Zheng <lv.zheng@intel.com>
> 
> The header file <acpi/acpi.h> is the top level header for other kernel
> subsystems to include.  It contains environemnt settings and architecture
> specific implementation that should be included before including other
> ACPICA headers in order to keep a consistent build environment for ACPICA
> users.  All following internal ACPICA header files thus should be included
> from <acpi/acpi.h> and not included by other kernel files:
>   <acpi/acnames.h>
>   <acpi/actypes.h>
>   <acpi/acexcep.h>
>   <acpi/acexcep.h>
>   <acpi/acoutput.h>
>   <acpi/acrestyp.h>
>   <acpi/acpiosxf.h>
>   <acpi/acpixf.h>
>   <acpi/acconfig.h>: included by <acpi/acpixf.h>
>   <acpi/acconfig.h>
>   <acpi/actbl.h>
>   <acpi/actbl1.h>: included by <acpi/actbl.h>
>   <acpi/actbl2.h>: included by <acpi/actbl.h>
>   <acpi/actbl3.h>: included by <acpi/actbl.h>
>   <acpi/platform/acenv.h>
>   <acpi/platform/aclinux.h>: included by <acpi/platform/acenv.h>
> This patch cleans up inclusions of above files from non ACPICA source
> files.
> 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>

Applied with slightly modified subject/changelog.

Thanks!

> ---
>  drivers/acpi/nvs.c           |    1 -
>  drivers/hwmon/asus_atk0110.c |    1 -
>  2 files changed, 2 deletions(-)
> 
> diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
> index 266bc58..386a9fe 100644
> --- a/drivers/acpi/nvs.c
> +++ b/drivers/acpi/nvs.c
> @@ -13,7 +13,6 @@
>  #include <linux/slab.h>
>  #include <linux/acpi.h>
>  #include <linux/acpi_io.h>
> -#include <acpi/acpiosxf.h>
>  
>  /* ACPI NVS regions, APEI may use it */
>  
> diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> index 1d7ff46..dafc63c 100644
> --- a/drivers/hwmon/asus_atk0110.c
> +++ b/drivers/hwmon/asus_atk0110.c
> @@ -18,7 +18,6 @@
>  #include <linux/err.h>
>  
>  #include <acpi/acpi.h>
> -#include <acpi/acpixf.h>
>  #include <acpi/acpi_drivers.h>
>  #include <acpi/acpi_bus.h>
>  
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-22 23:29 ` [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Lv Zheng
@ 2013-11-26  0:06   ` Rafael J. Wysocki
  2013-11-26  0:29     ` Zheng, Lv
  0 siblings, 1 reply; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-26  0:06 UTC (permalink / raw)
  To: Lv Zheng; +Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi

On Saturday, November 23, 2013 07:29:08 AM Lv Zheng wrote:
> From: Lv Zheng <lv.zheng@intel.com>
> 
> This patch enfoces <linux/acpi.h> inclusion instead of direct
> <acpi/acpi_drivers.h> and <acpi/acpi_bus.h> inclusions.

First off, please make the changelog shorter.  Here's my version:

"Replace direct inclusions of <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>,
which are incorrect, with <linux/acpi.h> inclusions.

First of all, <acpi/acpi_drivers.h> and <acpi/acpi_bus.h> should not
be included directly from any files that are built for CONFIG_ACPI
unset, because that generally leads to build warnings about undefined
symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set <linux/acpi.h>
includes those files and for CONFIG_ACPI it provides stub ACPI
symbols to be used in that case.

Second, there are ordering dependencies between those files that
always have to be met.  Namely, it is required that <acpi/acpi_bus.h>
be included prior to <acpi/acpi_drivers.h> so that the acpi_pci_root
declarations the latter depends on are always there.  That also is
taken care of including <linux/acpi.h> as appropriate."

Second, please fold [3/4] into this one.  Keeping them separate is
artificial and pointless in my opinion.  [Of course, the changelog will
have to be modified then.]

[...]

Apart from the above ->

> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> ---
>  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
>  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
>  arch/x86/kernel/apic/io_apic.c                       |    3 ---
>  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
>  drivers/acpi/ac.c                                    |    3 +--
>  drivers/acpi/acpi_extlog.c                           |    1 -
>  drivers/acpi/acpi_pad.c                              |    3 +--
>  drivers/acpi/battery.c                               |    3 +--
>  drivers/acpi/blacklist.c                             |    1 -
>  drivers/acpi/bus.c                                   |    2 --
>  drivers/acpi/button.c                                |    3 +--
>  drivers/acpi/custom_method.c                         |    2 +-
>  drivers/acpi/debugfs.c                               |    2 +-
>  drivers/acpi/dock.c                                  |    2 --
>  drivers/acpi/ec.c                                    |    3 +--
>  drivers/acpi/event.c                                 |    2 +-
>  drivers/acpi/fan.c                                   |    3 +--
>  drivers/acpi/hed.c                                   |    2 --
>  drivers/acpi/numa.c                                  |    1 -
>  drivers/acpi/osl.c                                   |    1 -
>  drivers/acpi/pci_irq.c                               |    2 --
>  drivers/acpi/pci_link.c                              |    3 +--
>  drivers/acpi/pci_root.c                              |    2 --
>  drivers/acpi/power.c                                 |    3 +--
>  drivers/acpi/proc.c                                  |    3 +--
>  drivers/acpi/processor_core.c                        |    2 +-
>  drivers/acpi/processor_idle.c                        |    1 -
>  drivers/acpi/processor_perflib.c                     |    3 +--
>  drivers/acpi/processor_thermal.c                     |    3 +--
>  drivers/acpi/processor_throttling.c                  |    3 +--
>  drivers/acpi/sbshc.c                                 |    3 +--
>  drivers/acpi/scan.c                                  |    1 -
>  drivers/acpi/sleep.c                                 |    2 --
>  drivers/acpi/sysfs.c                                 |    2 +-
>  drivers/acpi/thermal.c                               |    3 +--
>  drivers/acpi/utils.c                                 |    2 --
>  drivers/acpi/video.c                                 |    3 +--
>  drivers/acpi/wakeup.c                                |    1 -
>  drivers/ata/libata-acpi.c                            |    1 -
>  drivers/ata/pata_acpi.c                              |    2 +-
>  drivers/char/hpet.c                                  |    1 -
>  drivers/char/tpm/tpm_ppi.c                           |    1 -
>  drivers/gpu/drm/i915/intel_acpi.c                    |    1 -
>  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    2 --
>  drivers/gpu/drm/radeon/radeon_acpi.c                 |    2 --
>  drivers/hv/vmbus_drv.c                               |    1 -
>  drivers/hwmon/acpi_power_meter.c                     |    3 +--
>  drivers/hwmon/asus_atk0110.c                         |    3 +--
>  drivers/input/misc/atlas_btns.c                      |    2 +-
>  drivers/pci/hotplug/acpiphp_ibm.c                    |    1 -
>  drivers/pci/hotplug/pciehp.h                         |    1 -
>  drivers/pci/ioapic.c                                 |    1 -
>  drivers/pci/pci-acpi.c                               |    1 -
>  drivers/pci/pci-label.c                              |    1 -
>  drivers/platform/x86/acer-wmi.c                      |    1 -
>  drivers/platform/x86/asus-laptop.c                   |    3 +--
>  drivers/platform/x86/asus-wmi.c                      |    3 +--
>  drivers/platform/x86/classmate-laptop.c              |    2 +-
>  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
>  drivers/platform/x86/dell-wmi.c                      |    1 -
>  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
>  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
>  drivers/platform/x86/hp_accel.c                      |    2 +-
>  drivers/platform/x86/ideapad-laptop.c                |    3 +--
>  drivers/platform/x86/intel-rst.c                     |    2 +-
>  drivers/platform/x86/intel-smartconnect.c            |    2 +-
>  drivers/platform/x86/intel_menlow.c                  |    3 +--
>  drivers/platform/x86/intel_oaktrail.c                |    2 --
>  drivers/platform/x86/mxm-wmi.c                       |    3 +--
>  drivers/platform/x86/panasonic-laptop.c              |    3 +--
>  drivers/platform/x86/pvpanic.c                       |    3 +--
>  drivers/platform/x86/samsung-q10.c                   |    2 +-
>  drivers/platform/x86/sony-laptop.c                   |    2 --
>  drivers/platform/x86/tc1100-wmi.c                    |    3 +--
>  drivers/platform/x86/thinkpad_acpi.c                 |    2 +-
>  drivers/platform/x86/toshiba_acpi.c                  |    2 +-
>  drivers/platform/x86/toshiba_bluetooth.c             |    3 +--
>  drivers/platform/x86/wmi.c                           |    2 --
>  drivers/platform/x86/xo15-ebook.c                    |    3 +--
>  drivers/pnp/pnpacpi/core.c                           |    1 -
>  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
>  drivers/staging/quickstart/quickstart.c              |    2 +-
>  drivers/usb/core/usb-acpi.c                          |    1 -
>  drivers/xen/xen-acpi-cpuhotplug.c                    |    2 --
>  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
>  drivers/xen/xen-acpi-pad.c                           |    3 +--
>  drivers/xen/xen-acpi-processor.c                     |    3 +--
>  include/acpi/acpi_bus.h                              |    1 -
>  include/acpi/acpi_drivers.h                          |    2 --
>  include/linux/pci_hotplug.h                          |    2 +-
>  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    3 +--
>  91 files changed, 51 insertions(+), 142 deletions(-)
> 
> diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> index 916ffe7..84715fc 100644
> --- a/arch/ia64/hp/common/aml_nfw.c
> +++ b/arch/ia64/hp/common/aml_nfw.c
> @@ -23,8 +23,7 @@
>   */
>  
>  #include <linux/module.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/sal.h>
>  
>  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> index 00c77cf..ccbf857 100644
> --- a/arch/x86/kernel/apic/apic_flat_64.c
> +++ b/arch/x86/kernel/apic/apic_flat_64.c
> @@ -21,9 +21,7 @@
>  #include <asm/apic.h>
>  #include <asm/ipi.h>
>  
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
> +#include <linux/acpi.h>
>  
>  static struct apic apic_physflat;
>  static struct apic apic_flat;
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index e63a5bd..4d67a75 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -37,9 +37,6 @@
>  #include <linux/kthread.h>
>  #include <linux/jiffies.h>	/* time_after() */
>  #include <linux/slab.h>
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
>  #include <linux/bootmem.h>
>  #include <linux/dmar.h>
>  #include <linux/hpet.h>
> diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> index 649a12b..08e350e 100644
> --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> @@ -15,8 +15,7 @@
>  #include <linux/power_supply.h>
>  #include <linux/olpc-ec.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/olpc.h>
>  
>  #define DRV_NAME			"olpc-xo15-sci"
> diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> index 8711e37..8095943 100644
> --- a/drivers/acpi/ac.c
> +++ b/drivers/acpi/ac.c
> @@ -32,8 +32,7 @@
>  #include <linux/delay.h>
>  #include <linux/platform_device.h>
>  #include <linux/power_supply.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> index a6869e1..2635a01 100644
> --- a/drivers/acpi/acpi_extlog.c
> +++ b/drivers/acpi/acpi_extlog.c
> @@ -9,7 +9,6 @@
>  
>  #include <linux/module.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/cper.h>
>  #include <linux/ratelimit.h>
>  #include <asm/cpu.h>
> diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> index fc6008f..65610c0 100644
> --- a/drivers/acpi/acpi_pad.c
> +++ b/drivers/acpi/acpi_pad.c
> @@ -28,8 +28,7 @@
>  #include <linux/cpu.h>
>  #include <linux/clockchips.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/mwait.h>
>  
>  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> index fbf1ace..e90ef8b 100644
> --- a/drivers/acpi/battery.c
> +++ b/drivers/acpi/battery.c
> @@ -36,8 +36,7 @@
>  #include <linux/suspend.h>
>  #include <asm/unaligned.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/power_supply.h>
>  
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> index 078c4f7..05ee8f6 100644
> --- a/drivers/acpi/blacklist.c
> +++ b/drivers/acpi/blacklist.c
> @@ -30,7 +30,6 @@
>  #include <linux/kernel.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/dmi.h>
>  
>  #include "internal.h"
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index bba9b72..cfea1c5 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -37,8 +37,6 @@
>  #include <asm/mpspec.h>
>  #endif
>  #include <linux/pci.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/apei.h>
>  #include <linux/dmi.h>
>  #include <linux/suspend.h>
> diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> index c971929..9e3a6cb 100644
> --- a/drivers/acpi/button.c
> +++ b/drivers/acpi/button.c
> @@ -31,8 +31,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/input.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/button.h>
>  
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> index 12b62f2..c68e724 100644
> --- a/drivers/acpi/custom_method.c
> +++ b/drivers/acpi/custom_method.c
> @@ -7,7 +7,7 @@
>  #include <linux/kernel.h>
>  #include <linux/uaccess.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> index b55d6a2..6b1919f 100644
> --- a/drivers/acpi/debugfs.c
> +++ b/drivers/acpi/debugfs.c
> @@ -5,7 +5,7 @@
>  #include <linux/export.h>
>  #include <linux/init.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
>  ACPI_MODULE_NAME("debugfs");
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index dcd73cc..9ab9e78 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -32,8 +32,6 @@
>  #include <linux/jiffies.h>
>  #include <linux/stddef.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index ba5b56d..1bd3de4 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -40,8 +40,7 @@
>  #include <linux/spinlock.h>
>  #include <linux/slab.h>
>  #include <asm/io.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>

-> add the new #include above the <asm/io.h> maybe?

>  #include <linux/dmi.h>
>  
>  #include "internal.h"
> diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> index cae3b38..ef2d730 100644
> --- a/drivers/acpi/event.c
> +++ b/drivers/acpi/event.c
> @@ -12,7 +12,7 @@
>  #include <linux/init.h>
>  #include <linux/poll.h>
>  #include <linux/gfp.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <net/netlink.h>
>  #include <net/genetlink.h>
>  
> diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> index ba3da88..1fb6290 100644
> --- a/drivers/acpi/fan.c
> +++ b/drivers/acpi/fan.c
> @@ -29,8 +29,7 @@
>  #include <linux/types.h>
>  #include <asm/uaccess.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> index 13b1d39..aafe3ca 100644
> --- a/drivers/acpi/hed.c
> +++ b/drivers/acpi/hed.c
> @@ -25,8 +25,6 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/hed.h>
>  
>  static struct acpi_device_id acpi_hed_ids[] = {
> diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> index a2343a1..9e6816e 100644
> --- a/drivers/acpi/numa.c
> +++ b/drivers/acpi/numa.c
> @@ -29,7 +29,6 @@
>  #include <linux/errno.h>
>  #include <linux/acpi.h>
>  #include <linux/numa.h>
> -#include <acpi/acpi_bus.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 54a20ff..8507034 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -50,7 +50,6 @@
>  #include <asm/uaccess.h>
>  
>  #include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <acpi/processor.h>

-> I guess all of these <acpi/...> inclusions may go away from here?

>  #include "internal.h"
>  
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index 41c5e1b..52d45ea 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -37,8 +37,6 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> index 2652a61..cc5feb9 100644
> --- a/drivers/acpi/pci_link.c
> +++ b/drivers/acpi/pci_link.c
> @@ -40,8 +40,7 @@
>  #include <linux/mutex.h>
>  #include <linux/slab.h>
>  

-> Remove the empty line too.

> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index 20360e4..dadd0f50 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -35,8 +35,6 @@
>  #include <linux/pci-aspm.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/apei.h>

Does <acpi/apei.h> have to be included directly here?  If not, please remove
it too.

>  
>  #include "internal.h"
> diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> index c2ad391..ad7da68 100644
> --- a/drivers/acpi/power.c
> +++ b/drivers/acpi/power.c
> @@ -42,8 +42,7 @@
>  #include <linux/slab.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/sysfs.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include "sleep.h"
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> index 6a5b152..56d30fe 100644
> --- a/drivers/acpi/proc.c
> +++ b/drivers/acpi/proc.c
> @@ -5,8 +5,7 @@
>  #include <linux/bcd.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>

-> Put the new line above the <asm/uaccess.h>

>  
>  #include "sleep.h"
>  
> diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> index b3171f3..ad88410 100644
> --- a/drivers/acpi/processor_core.c
> +++ b/drivers/acpi/processor_core.c
> @@ -11,7 +11,7 @@
>  #include <linux/dmi.h>
>  #include <linux/slab.h>
>  
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>

-> Remove the useless empty line and processor.h inclusion too.

>  
>  #include "internal.h"
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 644516d..a1087d8 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -46,7 +46,6 @@
>  #include <asm/apic.h>
>  #endif
>  
> -#include <acpi/acpi_bus.h>
>  #include <acpi/processor.h>

Is the processor.h inclusion necessary here?

>  
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> index 60a7c28..df63370 100644
> --- a/drivers/acpi/processor_perflib.c
> +++ b/drivers/acpi/processor_perflib.c
> @@ -36,8 +36,7 @@
>  #include <asm/cpufeature.h>
>  #endif
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>

And here?  And it's better to add #include <linux/acpi.h> to the other #include
<linux/...> things.

>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> index d1d2e7f..4af89f9 100644
> --- a/drivers/acpi/processor_thermal.c
> +++ b/drivers/acpi/processor_thermal.c
> @@ -33,9 +33,8 @@
>  
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> -#include <acpi/acpi_drivers.h>

Same comments as above.

>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> index e7dd2c1..a9de919 100644
> --- a/drivers/acpi/processor_throttling.c
> +++ b/drivers/acpi/processor_throttling.c
> @@ -36,8 +36,7 @@
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>

Same comments as above.

>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> index b78bc60..26e5b50 100644
> --- a/drivers/acpi/sbshc.c
> +++ b/drivers/acpi/sbshc.c
> @@ -8,8 +8,7 @@
>   * the Free Software Foundation version 2.
>   */
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/wait.h>
>  #include <linux/slab.h>
>  #include <linux/delay.h>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index fd39459..8870277 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -12,7 +12,6 @@
>  #include <linux/dmi.h>
>  #include <linux/nls.h>
>  
> -#include <acpi/acpi_drivers.h>
>  

Remove the empty line too.

>  #include "internal.h"
>  
> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> index 721e949..281e5fd 100644
> --- a/drivers/acpi/sleep.c
> +++ b/drivers/acpi/sleep.c
> @@ -21,8 +21,6 @@
>  
>  #include <asm/io.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  

Remove the empty line too.

OK, you should get the idea. Please keep things consistent and nice. :-)

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [UPDATE PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h>.
  2013-11-22 23:37 ` [PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h> Lv Zheng
@ 2013-11-26  0:09   ` Rafael J. Wysocki
  2013-11-26  0:32     ` Zheng, Lv
  0 siblings, 1 reply; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-26  0:09 UTC (permalink / raw)
  To: Lv Zheng; +Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi

On Saturday, November 23, 2013 07:54:18 AM Lv Zheng wrote:
> From: Lv Zheng <lv.zheng@intel.com>
> 
> (Update due to some typo fixes.)
> 
> As there is only CONFIG_ACPI=n processing in the <linux/acpi.h>, it is not
> safe to include <acpi/acpi.h>, <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>
> directly for source out of Linux ACPI subsystems.
> 
> This patch adds error messaging to warn developers of such wrong
> inclusions.
> 
> In order not to be bisected and reverted as a wrong commit, warning
> messages are carefully split into a seperate patch other than the wrong
> inclusion cleanups.
> 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>

I don't like this one to be honest.

> ---
>  drivers/acpi/acpica/Makefile    |    2 +-
>  include/acpi/acpi_bus.h         |    5 +++++
>  include/acpi/acpi_drivers.h     |    5 +++++
>  include/acpi/platform/aclinux.h |   10 ++++++++++
>  4 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
> index 4383040..7738677 100644
> --- a/drivers/acpi/acpica/Makefile
> +++ b/drivers/acpi/acpica/Makefile
> @@ -2,7 +2,7 @@
>  # Makefile for ACPICA Core interpreter
>  #
>  
> -ccflags-y			:= -Os
> +ccflags-y			:= -Os -DLINUXIZED_ACPICA

I don't like this (the naming and the way it is done).

>  ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
>  
>  # use acpi.o to put all files here into acpi.o modparam namespace
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index 0af9667..0b1ea80 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -26,6 +26,11 @@
>  #ifndef __ACPI_BUS_H__
>  #define __ACPI_BUS_H__
>  
> +/* <acpi/acpi_bus.h> is not safe for CONFIG_ACPI=n environment */
> +#ifndef _LINUX_ACPI_H
> +#error "Please don't include <acpi/acpi_bus.h> directly, include <linux/acpi.h> instead."
> +#endif

And this should either go into all of the <acpi/*.h> files, not only to the two
of them you chose, or to none of them.  I prefer none.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26  0:06   ` Rafael J. Wysocki
@ 2013-11-26  0:29     ` Zheng, Lv
  0 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-11-26  0:29 UTC (permalink / raw)
  To: Rafael J. Wysocki, Lv Zheng
  Cc: Wysocki, Rafael J, Brown, Len, linux-kernel, linux-acpi

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 7710 bytes --]

Hi, Rafael

Thanks for commenting.

> From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
> Sent: Tuesday, November 26, 2013 8:06 AM
> 
> On Saturday, November 23, 2013 07:29:08 AM Lv Zheng wrote:
> > From: Lv Zheng <lv.zheng@intel.com>
> >
> > This patch enfoces <linux/acpi.h> inclusion instead of direct
> > <acpi/acpi_drivers.h> and <acpi/acpi_bus.h> inclusions.
> 
> First off, please make the changelog shorter.  Here's my version:
> 
> "Replace direct inclusions of <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>,
> which are incorrect, with <linux/acpi.h> inclusions.
> 
> First of all, <acpi/acpi_drivers.h> and <acpi/acpi_bus.h> should not
> be included directly from any files that are built for CONFIG_ACPI
> unset, because that generally leads to build warnings about undefined
> symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set <linux/acpi.h>
> includes those files and for CONFIG_ACPI it provides stub ACPI
> symbols to be used in that case.
> 
> Second, there are ordering dependencies between those files that
> always have to be met.  Namely, it is required that <acpi/acpi_bus.h>
> be included prior to <acpi/acpi_drivers.h> so that the acpi_pci_root
> declarations the latter depends on are always there.  That also is
> taken care of including <linux/acpi.h> as appropriate."

OK.

> 
> Second, please fold [3/4] into this one.  Keeping them separate is
> artificial and pointless in my opinion.  [Of course, the changelog will
> have to be modified then.]

OK.

> 
> [...]
> 
> Apart from the above ->
> 
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > ---
[...]

> > diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> > index ba5b56d..1bd3de4 100644
> > --- a/drivers/acpi/ec.c
> > +++ b/drivers/acpi/ec.c
> > @@ -40,8 +40,7 @@
> >  #include <linux/spinlock.h>
> >  #include <linux/slab.h>
> >  #include <asm/io.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> 
> -> add the new #include above the <asm/io.h> maybe?

The patch was generated for people who even don't have too many ACPI header knowledge can review and determine that the modifications will not trigger regressions.
So it doesn't cleanup other existing inclusion issues for the affected files, for example:
1. empty lines.
2. asm files
3. other acpi inclusions

Do you mean I need to cleanup whole file other than what the patch description claimed to clean?
If so, I'll follow this comment and all the following ones to refresh the patch.

> 
> >  #include <linux/dmi.h>
> >
> >  #include "internal.h"

[...]

> > diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> > index 54a20ff..8507034 100644
> > --- a/drivers/acpi/osl.c
> > +++ b/drivers/acpi/osl.c
> > @@ -50,7 +50,6 @@
> >  #include <asm/uaccess.h>
> >
> >  #include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <acpi/processor.h>
> 
> -> I guess all of these <acpi/...> inclusions may go away from here?
> 
> >  #include "internal.h"
> >

[...]

> > diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > index 2652a61..cc5feb9 100644
> > --- a/drivers/acpi/pci_link.c
> > +++ b/drivers/acpi/pci_link.c
> > @@ -40,8 +40,7 @@
> >  #include <linux/mutex.h>
> >  #include <linux/slab.h>
> >
> 
> -> Remove the empty line too.
> 
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> > index 20360e4..dadd0f50 100644
> > --- a/drivers/acpi/pci_root.c
> > +++ b/drivers/acpi/pci_root.c
> > @@ -35,8 +35,6 @@
> >  #include <linux/pci-aspm.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/apei.h>
> 
> Does <acpi/apei.h> have to be included directly here?  If not, please remove
> it too.
> 
> >
> >  #include "internal.h"

[...]

> > diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> > index 6a5b152..56d30fe 100644
> > --- a/drivers/acpi/proc.c
> > +++ b/drivers/acpi/proc.c
> > @@ -5,8 +5,7 @@
> >  #include <linux/bcd.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> 
> -> Put the new line above the <asm/uaccess.h>
> 
> >
> >  #include "sleep.h"
> >
> > diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> > index b3171f3..ad88410 100644
> > --- a/drivers/acpi/processor_core.c
> > +++ b/drivers/acpi/processor_core.c
> > @@ -11,7 +11,7 @@
> >  #include <linux/dmi.h>
> >  #include <linux/slab.h>
> >
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> 
> -> Remove the useless empty line and processor.h inclusion too.
> 
> >
> >  #include "internal.h"
> > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> > index 644516d..a1087d8 100644
> > --- a/drivers/acpi/processor_idle.c
> > +++ b/drivers/acpi/processor_idle.c
> > @@ -46,7 +46,6 @@
> >  #include <asm/apic.h>
> >  #endif
> >
> > -#include <acpi/acpi_bus.h>
> >  #include <acpi/processor.h>
> 
> Is the processor.h inclusion necessary here?
> 
> >
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> > index 60a7c28..df63370 100644
> > --- a/drivers/acpi/processor_perflib.c
> > +++ b/drivers/acpi/processor_perflib.c
> > @@ -36,8 +36,7 @@
> >  #include <asm/cpufeature.h>
> >  #endif
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> 
> And here?  And it's better to add #include <linux/acpi.h> to the other #include
> <linux/...> things.
> 
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> > index d1d2e7f..4af89f9 100644
> > --- a/drivers/acpi/processor_thermal.c
> > +++ b/drivers/acpi/processor_thermal.c
> > @@ -33,9 +33,8 @@
> >
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> > -#include <acpi/acpi_drivers.h>
> 
> Same comments as above.
> 
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> > index e7dd2c1..a9de919 100644
> > --- a/drivers/acpi/processor_throttling.c
> > +++ b/drivers/acpi/processor_throttling.c
> > @@ -36,8 +36,7 @@
> >  #include <asm/io.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> 
> Same comments as above.
> 
> >  #define PREFIX "ACPI: "

[...]

> > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> > index fd39459..8870277 100644
> > --- a/drivers/acpi/scan.c
> > +++ b/drivers/acpi/scan.c
> > @@ -12,7 +12,6 @@
> >  #include <linux/dmi.h>
> >  #include <linux/nls.h>
> >
> > -#include <acpi/acpi_drivers.h>
> >
> 
> Remove the empty line too.
> 
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> > index 721e949..281e5fd 100644
> > --- a/drivers/acpi/sleep.c
> > +++ b/drivers/acpi/sleep.c
> > @@ -21,8 +21,6 @@
> >
> >  #include <asm/io.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >
> 
> Remove the empty line too.
> 
> OK, you should get the idea. Please keep things consistent and nice. :-)

Yes, I'll try to cover all above comments in 1 patch.
Thanks for the helping.

Best regards
-Lv
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [UPDATE PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h>.
  2013-11-26  0:09   ` [UPDATE PATCH " Rafael J. Wysocki
@ 2013-11-26  0:32     ` Zheng, Lv
  0 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-11-26  0:32 UTC (permalink / raw)
  To: Rafael J. Wysocki, Lv Zheng
  Cc: Wysocki, Rafael J, Brown, Len, linux-kernel, linux-acpi

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2960 bytes --]

Hi, Rafael

> From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
> Sent: Tuesday, November 26, 2013 8:10 AM
> To: Lv Zheng
> Cc: Wysocki, Rafael J; Brown, Len; Zheng, Lv; linux-kernel@vger.kernel.org; linux-acpi@vger.kernel.org
> Subject: Re: [UPDATE PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h>.
> 
> On Saturday, November 23, 2013 07:54:18 AM Lv Zheng wrote:
> > From: Lv Zheng <lv.zheng@intel.com>
> >
> > (Update due to some typo fixes.)
> >
> > As there is only CONFIG_ACPI=n processing in the <linux/acpi.h>, it is not
> > safe to include <acpi/acpi.h>, <acpi/acpi_drivers.h> and <acpi/acpi_bus.h>
> > directly for source out of Linux ACPI subsystems.
> >
> > This patch adds error messaging to warn developers of such wrong
> > inclusions.
> >
> > In order not to be bisected and reverted as a wrong commit, warning
> > messages are carefully split into a seperate patch other than the wrong
> > inclusion cleanups.
> >
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> 
> I don't like this one to be honest.

I generate this to prevent device driver writers to do stupid things before we can sort <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> out.

> 
> > ---
> >  drivers/acpi/acpica/Makefile    |    2 +-
> >  include/acpi/acpi_bus.h         |    5 +++++
> >  include/acpi/acpi_drivers.h     |    5 +++++
> >  include/acpi/platform/aclinux.h |   10 ++++++++++
> >  4 files changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
> > index 4383040..7738677 100644
> > --- a/drivers/acpi/acpica/Makefile
> > +++ b/drivers/acpi/acpica/Makefile
> > @@ -2,7 +2,7 @@
> >  # Makefile for ACPICA Core interpreter
> >  #
> >
> > -ccflags-y			:= -Os
> > +ccflags-y			:= -Os -DLINUXIZED_ACPICA
> 
> I don't like this (the naming and the way it is done).
> 
> >  ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
> >
> >  # use acpi.o to put all files here into acpi.o modparam namespace
> > diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> > index 0af9667..0b1ea80 100644
> > --- a/include/acpi/acpi_bus.h
> > +++ b/include/acpi/acpi_bus.h
> > @@ -26,6 +26,11 @@
> >  #ifndef __ACPI_BUS_H__
> >  #define __ACPI_BUS_H__
> >
> > +/* <acpi/acpi_bus.h> is not safe for CONFIG_ACPI=n environment */
> > +#ifndef _LINUX_ACPI_H
> > +#error "Please don't include <acpi/acpi_bus.h> directly, include <linux/acpi.h> instead."
> > +#endif
> 
> And this should either go into all of the <acpi/*.h> files, not only to the two
> of them you chose, or to none of them.  I prefer none.

OK, let it be done for now.  So we need to open eyes on new ACPI commits. :-)

I'll merge patch 2 and 3 and send it with your comments addressed and re-based.

Thanks and best regards
-Lv

> 
> Thanks,
> Rafael

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
@ 2013-11-26 20:27     ` Matthew Garrett
  2013-11-26 20:29     ` Konrad Rzeszutek Wilk
                       ` (3 subsequent siblings)
  4 siblings, 0 replies; 40+ messages in thread
From: Matthew Garrett @ 2013-11-26 20:27 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Lv Zheng, Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Luck, Tony, Konrad Rzeszutek Wilk, Rafael J. Wysocki, Len Brown,
	Lv Zheng, linux-acpi, LKML

On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:> 
> Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections 
> against this?

I'm fine with it.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
  2013-11-26 20:27     ` Matthew Garrett
@ 2013-11-26 20:29     ` Konrad Rzeszutek Wilk
  2013-11-27  0:29       ` Rafael J. Wysocki
  2013-11-28  2:34       ` Zheng, Lv
  2013-11-26 20:54     ` Greg Kroah-Hartman
                       ` (2 subsequent siblings)
  4 siblings, 2 replies; 40+ messages in thread
From: Konrad Rzeszutek Wilk @ 2013-11-26 20:29 UTC (permalink / raw)
  To: Rafael J. Wysocki, boris.ostrovsky, david.vrabel
  Cc: Lv Zheng, Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Rafael J. Wysocki, Len Brown,
	Lv Zheng, linux-acpi, LKML

On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:
> On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > 
> > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > should not be included directly from any files that are built for
> > CONFIG_ACPI unset, because that generally leads to build warnings about
> > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > ACPI symbols to be used in that case.
> > 
> > Second, there are ordering dependencies between those files that always
> > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > latter depends on are always there.  And <acpi/acpi.h> which provides
> > basic ACPICA type declarations should always be included prior to any other
> > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > <linux/acpi.h> as appropriate.
> > 
> > This patch also includes necessary cleanups in the affected files where
> > other ACPI headers is also included but not referenced.
> >
> 
> This looks OK to me, but it touches several other subsystems.  It's better to
> CC such things to linux-kernel at least.
> 
> Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?

CC-ing Boris and David here.

I presume the proper compilation tests to make sure they do compile properly
has been done.
> 
> Rafael
> 
>  
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > ---
> >  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
> >  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
> >  arch/x86/kernel/apic/io_apic.c                       |    3 ---
> >  arch/x86/pci/mmconfig_32.c                           |    1 -
> >  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
> >  drivers/acpi/ac.c                                    |    3 +--
> >  drivers/acpi/acpi_extlog.c                           |    1 -
> >  drivers/acpi/acpi_pad.c                              |    3 +--
> >  drivers/acpi/apei/einj.c                             |    1 -
> >  drivers/acpi/battery.c                               |    3 +--
> >  drivers/acpi/blacklist.c                             |    1 -
> >  drivers/acpi/bus.c                                   |    2 --
> >  drivers/acpi/button.c                                |    3 +--
> >  drivers/acpi/custom_method.c                         |    2 +-
> >  drivers/acpi/debugfs.c                               |    2 +-
> >  drivers/acpi/dock.c                                  |    2 --
> >  drivers/acpi/ec.c                                    |    5 ++---
> >  drivers/acpi/event.c                                 |    2 +-
> >  drivers/acpi/fan.c                                   |    3 +--
> >  drivers/acpi/hed.c                                   |    2 --
> >  drivers/acpi/numa.c                                  |    1 -
> >  drivers/acpi/osl.c                                   |    3 ---
> >  drivers/acpi/pci_irq.c                               |    2 --
> >  drivers/acpi/pci_link.c                              |    4 +---
> >  drivers/acpi/pci_root.c                              |    4 +---
> >  drivers/acpi/power.c                                 |    3 +--
> >  drivers/acpi/proc.c                                  |    4 +---
> >  drivers/acpi/processor_core.c                        |    3 +--
> >  drivers/acpi/processor_idle.c                        |    4 +---
> >  drivers/acpi/processor_perflib.c                     |    7 ++-----
> >  drivers/acpi/processor_thermal.c                     |    7 ++-----
> >  drivers/acpi/processor_throttling.c                  |    7 ++-----
> >  drivers/acpi/sbshc.c                                 |    3 +--
> >  drivers/acpi/scan.c                                  |    3 ---
> >  drivers/acpi/sleep.c                                 |    4 ----
> >  drivers/acpi/sysfs.c                                 |    2 +-
> >  drivers/acpi/thermal.c                               |    5 ++---
> >  drivers/acpi/utils.c                                 |    2 --
> >  drivers/acpi/video.c                                 |    5 ++---
> >  drivers/acpi/wakeup.c                                |    1 -
> >  drivers/ata/libata-acpi.c                            |    2 --
> >  drivers/ata/pata_acpi.c                              |    5 ++---
> >  drivers/char/hpet.c                                  |    7 ++-----
> >  drivers/char/tpm/tpm_acpi.c                          |    2 +-
> >  drivers/char/tpm/tpm_ppi.c                           |    1 -
> >  drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
> >  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
> >  drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
> >  drivers/hv/vmbus_drv.c                               |    2 --
> >  drivers/hwmon/acpi_power_meter.c                     |    3 +--
> >  drivers/hwmon/asus_atk0110.c                         |    6 +-----
> >  drivers/ide/ide-acpi.c                               |    1 -
> >  drivers/input/misc/atlas_btns.c                      |    2 +-
> >  drivers/iommu/amd_iommu_init.c                       |    1 -
> >  drivers/iommu/intel_irq_remapping.c                  |    4 ++--
> >  drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
> >  drivers/pci/hotplug/pciehp.h                         |    2 --
> >  drivers/pci/ioapic.c                                 |    1 -
> >  drivers/pci/pci-acpi.c                               |    3 ---
> >  drivers/pci/pci-label.c                              |    1 -
> >  drivers/platform/x86/acer-wmi.c                      |    2 --
> >  drivers/platform/x86/asus-laptop.c                   |    3 +--
> >  drivers/platform/x86/asus-wmi.c                      |    3 +--
> >  drivers/platform/x86/classmate-laptop.c              |    3 +--
> >  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
> >  drivers/platform/x86/dell-wmi.c                      |    1 -
> >  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
> >  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
> >  drivers/platform/x86/hp_accel.c                      |    2 +-
> >  drivers/platform/x86/ideapad-laptop.c                |    3 +--
> >  drivers/platform/x86/intel-rst.c                     |    2 +-
> >  drivers/platform/x86/intel-smartconnect.c            |    2 +-
> >  drivers/platform/x86/intel_menlow.c                  |    4 +---
> >  drivers/platform/x86/intel_oaktrail.c                |    3 ---
> >  drivers/platform/x86/mxm-wmi.c                       |    3 +--
> >  drivers/platform/x86/panasonic-laptop.c              |    4 +---
> >  drivers/platform/x86/pvpanic.c                       |    3 +--
> >  drivers/platform/x86/samsung-q10.c                   |    2 +-
> >  drivers/platform/x86/sony-laptop.c                   |    4 +---
> >  drivers/platform/x86/tc1100-wmi.c                    |    4 +---
> >  drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
> >  drivers/platform/x86/toshiba_acpi.c                  |    4 +---
> >  drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
> >  drivers/platform/x86/wmi.c                           |    2 --
> >  drivers/platform/x86/xo15-ebook.c                    |    3 +--
> >  drivers/pnp/pnpacpi/core.c                           |    1 -
> >  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
> >  drivers/sfi/sfi_acpi.c                               |    3 +--
> >  drivers/staging/quickstart/quickstart.c              |    2 +-
> >  drivers/usb/core/usb-acpi.c                          |    1 -
> >  drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
> >  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
> >  drivers/xen/xen-acpi-pad.c                           |    5 ++---
> >  drivers/xen/xen-acpi-processor.c                     |    4 +---
> >  include/acpi/acpi_bus.h                              |    2 --
> >  include/acpi/acpi_drivers.h                          |    3 ---
> >  include/linux/acpi_io.h                              |    2 +-
> >  include/linux/ide.h                                  |    8 ++------
> >  include/linux/iscsi_ibft.h                           |    2 +-
> >  include/linux/pci_hotplug.h                          |    3 +--
> >  include/linux/sfi_acpi.h                             |    2 +-
> >  include/linux/tboot.h                                |    2 +-
> >  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
> >  103 files changed, 80 insertions(+), 235 deletions(-)
> > 
> > diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> > index 916ffe7..84715fc 100644
> > --- a/arch/ia64/hp/common/aml_nfw.c
> > +++ b/arch/ia64/hp/common/aml_nfw.c
> > @@ -23,8 +23,7 @@
> >   */
> >  
> >  #include <linux/module.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/sal.h>
> >  
> >  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> > diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> > index 00c77cf..ccbf857 100644
> > --- a/arch/x86/kernel/apic/apic_flat_64.c
> > +++ b/arch/x86/kernel/apic/apic_flat_64.c
> > @@ -21,9 +21,7 @@
> >  #include <asm/apic.h>
> >  #include <asm/ipi.h>
> >  
> > -#ifdef CONFIG_ACPI
> > -#include <acpi/acpi_bus.h>
> > -#endif
> > +#include <linux/acpi.h>
> >  
> >  static struct apic apic_physflat;
> >  static struct apic apic_flat;
> > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> > index e63a5bd..4d67a75 100644
> > --- a/arch/x86/kernel/apic/io_apic.c
> > +++ b/arch/x86/kernel/apic/io_apic.c
> > @@ -37,9 +37,6 @@
> >  #include <linux/kthread.h>
> >  #include <linux/jiffies.h>	/* time_after() */
> >  #include <linux/slab.h>
> > -#ifdef CONFIG_ACPI
> > -#include <acpi/acpi_bus.h>
> > -#endif
> >  #include <linux/bootmem.h>
> >  #include <linux/dmar.h>
> >  #include <linux/hpet.h>
> > diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
> > index 5c90975..43984bc 100644
> > --- a/arch/x86/pci/mmconfig_32.c
> > +++ b/arch/x86/pci/mmconfig_32.c
> > @@ -14,7 +14,6 @@
> >  #include <linux/rcupdate.h>
> >  #include <asm/e820.h>
> >  #include <asm/pci_x86.h>
> > -#include <acpi/acpi.h>
> >  
> >  /* Assume systems with more busses have correct MCFG */
> >  #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
> > diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > index 649a12b..08e350e 100644
> > --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> > +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > @@ -15,8 +15,7 @@
> >  #include <linux/power_supply.h>
> >  #include <linux/olpc-ec.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/olpc.h>
> >  
> >  #define DRV_NAME			"olpc-xo15-sci"
> > diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> > index 8711e37..8095943 100644
> > --- a/drivers/acpi/ac.c
> > +++ b/drivers/acpi/ac.c
> > @@ -32,8 +32,7 @@
> >  #include <linux/delay.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/power_supply.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> > index a6869e1..2635a01 100644
> > --- a/drivers/acpi/acpi_extlog.c
> > +++ b/drivers/acpi/acpi_extlog.c
> > @@ -9,7 +9,6 @@
> >  
> >  #include <linux/module.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/cper.h>
> >  #include <linux/ratelimit.h>
> >  #include <asm/cpu.h>
> > diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> > index fc6008f..65610c0 100644
> > --- a/drivers/acpi/acpi_pad.c
> > +++ b/drivers/acpi/acpi_pad.c
> > @@ -28,8 +28,7 @@
> >  #include <linux/cpu.h>
> >  #include <linux/clockchips.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/mwait.h>
> >  
> >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> > diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> > index fb57d03..ca0c6d7 100644
> > --- a/drivers/acpi/apei/einj.c
> > +++ b/drivers/acpi/apei/einj.c
> > @@ -33,7 +33,6 @@
> >  #include <linux/nmi.h>
> >  #include <linux/delay.h>
> >  #include <linux/mm.h>
> > -#include <acpi/acpi.h>
> >  
> >  #include "apei-internal.h"
> >  
> > diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> > index fbf1ace..e90ef8b 100644
> > --- a/drivers/acpi/battery.c
> > +++ b/drivers/acpi/battery.c
> > @@ -36,8 +36,7 @@
> >  #include <linux/suspend.h>
> >  #include <asm/unaligned.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/power_supply.h>
> >  
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> > index 078c4f7..05ee8f6 100644
> > --- a/drivers/acpi/blacklist.c
> > +++ b/drivers/acpi/blacklist.c
> > @@ -30,7 +30,6 @@
> >  #include <linux/kernel.h>
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/dmi.h>
> >  
> >  #include "internal.h"
> > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> > index f509019..2c38ae2 100644
> > --- a/drivers/acpi/bus.c
> > +++ b/drivers/acpi/bus.c
> > @@ -37,8 +37,6 @@
> >  #include <asm/mpspec.h>
> >  #endif
> >  #include <linux/pci.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/apei.h>
> >  #include <linux/dmi.h>
> >  #include <linux/suspend.h>
> > diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> > index c971929..9e3a6cb 100644
> > --- a/drivers/acpi/button.c
> > +++ b/drivers/acpi/button.c
> > @@ -31,8 +31,7 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/input.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/button.h>
> >  
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> > index 12b62f2..c68e724 100644
> > --- a/drivers/acpi/custom_method.c
> > +++ b/drivers/acpi/custom_method.c
> > @@ -7,7 +7,7 @@
> >  #include <linux/kernel.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/debugfs.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> > index b55d6a2..6b1919f 100644
> > --- a/drivers/acpi/debugfs.c
> > +++ b/drivers/acpi/debugfs.c
> > @@ -5,7 +5,7 @@
> >  #include <linux/export.h>
> >  #include <linux/init.h>
> >  #include <linux/debugfs.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> >  ACPI_MODULE_NAME("debugfs");
> > diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> > index de03201..8da6be9 100644
> > --- a/drivers/acpi/dock.c
> > +++ b/drivers/acpi/dock.c
> > @@ -32,8 +32,6 @@
> >  #include <linux/jiffies.h>
> >  #include <linux/stddef.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> > index ba5b56d..ff40120 100644
> > --- a/drivers/acpi/ec.c
> > +++ b/drivers/acpi/ec.c
> > @@ -39,10 +39,9 @@
> >  #include <linux/list.h>
> >  #include <linux/spinlock.h>
> >  #include <linux/slab.h>
> > -#include <asm/io.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/dmi.h>
> > +#include <asm/io.h>
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> > index cae3b38..ef2d730 100644
> > --- a/drivers/acpi/event.c
> > +++ b/drivers/acpi/event.c
> > @@ -12,7 +12,7 @@
> >  #include <linux/init.h>
> >  #include <linux/poll.h>
> >  #include <linux/gfp.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <net/netlink.h>
> >  #include <net/genetlink.h>
> >  
> > diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> > index ba3da88..1fb6290 100644
> > --- a/drivers/acpi/fan.c
> > +++ b/drivers/acpi/fan.c
> > @@ -29,8 +29,7 @@
> >  #include <linux/types.h>
> >  #include <asm/uaccess.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> > index 13b1d39..aafe3ca 100644
> > --- a/drivers/acpi/hed.c
> > +++ b/drivers/acpi/hed.c
> > @@ -25,8 +25,6 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/hed.h>
> >  
> >  static struct acpi_device_id acpi_hed_ids[] = {
> > diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> > index a2343a1..9e6816e 100644
> > --- a/drivers/acpi/numa.c
> > +++ b/drivers/acpi/numa.c
> > @@ -29,7 +29,6 @@
> >  #include <linux/errno.h>
> >  #include <linux/acpi.h>
> >  #include <linux/numa.h>
> > -#include <acpi/acpi_bus.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> > index 5b9a785..7e2d814 100644
> > --- a/drivers/acpi/osl.c
> > +++ b/drivers/acpi/osl.c
> > @@ -49,9 +49,6 @@
> >  #include <asm/io.h>
> >  #include <asm/uaccess.h>
> >  
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/processor.h>
> >  #include "internal.h"
> >  
> >  #define _COMPONENT		ACPI_OS_SERVICES
> > diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> > index 41c5e1b..52d45ea 100644
> > --- a/drivers/acpi/pci_irq.c
> > +++ b/drivers/acpi/pci_irq.c
> > @@ -37,8 +37,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > index 2652a61..ea6b8d1 100644
> > --- a/drivers/acpi/pci_link.c
> > +++ b/drivers/acpi/pci_link.c
> > @@ -39,9 +39,7 @@
> >  #include <linux/pci.h>
> >  #include <linux/mutex.h>
> >  #include <linux/slab.h>
> > -
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> > index 2dd11e0..afafee5 100644
> > --- a/drivers/acpi/pci_root.c
> > +++ b/drivers/acpi/pci_root.c
> > @@ -35,9 +35,7 @@
> >  #include <linux/pci-aspm.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/apei.h>
> > +#include <acpi/apei.h>	/* for acpi_hest_init() */
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> > index c2ad391..ad7da68 100644
> > --- a/drivers/acpi/power.c
> > +++ b/drivers/acpi/power.c
> > @@ -42,8 +42,7 @@
> >  #include <linux/slab.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/sysfs.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include "sleep.h"
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> > index 6a5b152..db061bf 100644
> > --- a/drivers/acpi/proc.c
> > +++ b/drivers/acpi/proc.c
> > @@ -3,11 +3,9 @@
> >  #include <linux/export.h>
> >  #include <linux/suspend.h>
> >  #include <linux/bcd.h>
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include "sleep.h"
> >  
> >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> > diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> > index b3171f3..34e7b3c 100644
> > --- a/drivers/acpi/processor_core.c
> > +++ b/drivers/acpi/processor_core.c
> > @@ -10,8 +10,7 @@
> >  #include <linux/export.h>
> >  #include <linux/dmi.h>
> >  #include <linux/slab.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> >  
> >  #include "internal.h"
> > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> > index 644516d..d2d44e0 100644
> > --- a/drivers/acpi/processor_idle.c
> > +++ b/drivers/acpi/processor_idle.c
> > @@ -35,6 +35,7 @@
> >  #include <linux/clockchips.h>
> >  #include <linux/cpuidle.h>
> >  #include <linux/syscore_ops.h>
> > +#include <acpi/processor.h>
> >  
> >  /*
> >   * Include the apic definitions for x86 to have the APIC timer related defines
> > @@ -46,9 +47,6 @@
> >  #include <asm/apic.h>
> >  #endif
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >  
> >  #define ACPI_PROCESSOR_CLASS            "processor"
> > diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> > index 60a7c28..ff90054 100644
> > --- a/drivers/acpi/processor_perflib.c
> > +++ b/drivers/acpi/processor_perflib.c
> > @@ -31,15 +31,12 @@
> >  #include <linux/init.h>
> >  #include <linux/cpufreq.h>
> >  #include <linux/slab.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <acpi/processor.h>
> >  #ifdef CONFIG_X86
> >  #include <asm/cpufeature.h>
> >  #endif
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >  
> >  #define ACPI_PROCESSOR_CLASS		"processor"
> > diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> > index d1d2e7f..f95e758 100644
> > --- a/drivers/acpi/processor_thermal.c
> > +++ b/drivers/acpi/processor_thermal.c
> > @@ -30,12 +30,9 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/cpufreq.h>
> > -
> > -#include <asm/uaccess.h>
> > -
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <asm/uaccess.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> > index e7dd2c1..28baa05 100644
> > --- a/drivers/acpi/processor_throttling.c
> > +++ b/drivers/acpi/processor_throttling.c
> > @@ -32,14 +32,11 @@
> >  #include <linux/init.h>
> >  #include <linux/sched.h>
> >  #include <linux/cpufreq.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <acpi/processor.h>
> >  #include <asm/io.h>
> >  #include <asm/uaccess.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >  
> >  #define ACPI_PROCESSOR_CLASS            "processor"
> > diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> > index b78bc60..26e5b50 100644
> > --- a/drivers/acpi/sbshc.c
> > +++ b/drivers/acpi/sbshc.c
> > @@ -8,8 +8,7 @@
> >   * the Free Software Foundation version 2.
> >   */
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/wait.h>
> >  #include <linux/slab.h>
> >  #include <linux/delay.h>
> > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> > index 311904c..d564367 100644
> > --- a/drivers/acpi/scan.c
> > +++ b/drivers/acpi/scan.c
> > @@ -11,9 +11,6 @@
> >  #include <linux/kthread.h>
> >  #include <linux/dmi.h>
> >  #include <linux/nls.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include <asm/pgtable.h>
> >  
> >  #include "internal.h"
> > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> > index 721e949..208ac8c 100644
> > --- a/drivers/acpi/sleep.c
> > +++ b/drivers/acpi/sleep.c
> > @@ -18,12 +18,8 @@
> >  #include <linux/reboot.h>
> >  #include <linux/acpi.h>
> >  #include <linux/module.h>
> > -
> >  #include <asm/io.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include "internal.h"
> >  #include "sleep.h"
> >  
> > diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> > index 6dbc3ca..443dc93 100644
> > --- a/drivers/acpi/sysfs.c
> > +++ b/drivers/acpi/sysfs.c
> > @@ -5,7 +5,7 @@
> >  #include <linux/init.h>
> >  #include <linux/kernel.h>
> >  #include <linux/moduleparam.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> > index 0d9f46b..1fd21ad 100644
> > --- a/drivers/acpi/thermal.c
> > +++ b/drivers/acpi/thermal.c
> > @@ -41,10 +41,9 @@
> >  #include <linux/kmod.h>
> >  #include <linux/reboot.h>
> >  #include <linux/device.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> > +#include <asm/uaccess.h>
> >  
> >  #define PREFIX "ACPI: "
> >  
> > diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> > index 6d408bf..1336b91 100644
> > --- a/drivers/acpi/utils.c
> > +++ b/drivers/acpi/utils.c
> > @@ -30,8 +30,6 @@
> >  #include <linux/types.h>
> >  #include <linux/hardirq.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> > index 995e91b..b727d10 100644
> > --- a/drivers/acpi/video.c
> > +++ b/drivers/acpi/video.c
> > @@ -37,12 +37,11 @@
> >  #include <linux/pci.h>
> >  #include <linux/pci_ids.h>
> >  #include <linux/slab.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/suspend.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/video.h>
> > +#include <asm/uaccess.h>
> >  
> >  #include "internal.h"
> >  
> > diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
> > index 7bfbe40..1638401 100644
> > --- a/drivers/acpi/wakeup.c
> > +++ b/drivers/acpi/wakeup.c
> > @@ -5,7 +5,6 @@
> >  
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/kernel.h>
> >  #include <linux/types.h>
> >  
> > diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
> > index 4372cfa..8e22d97 100644
> > --- a/drivers/ata/libata-acpi.c
> > +++ b/drivers/ata/libata-acpi.c
> > @@ -20,8 +20,6 @@
> >  #include <scsi/scsi_device.h>
> >  #include "libata.h"
> >  
> > -#include <acpi/acpi_bus.h>
> > -
> >  unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
> >  module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
> >  MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
> > diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
> > index 73212c9..62c9ac8 100644
> > --- a/drivers/ata/pata_acpi.c
> > +++ b/drivers/ata/pata_acpi.c
> > @@ -12,11 +12,10 @@
> >  #include <linux/delay.h>
> >  #include <linux/device.h>
> >  #include <linux/gfp.h>
> > -#include <scsi/scsi_host.h>
> > -#include <acpi/acpi_bus.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <linux/libata.h>
> >  #include <linux/ata.h>
> > +#include <scsi/scsi_host.h>
> >  
> >  #define DRV_NAME	"pata_acpi"
> >  #define DRV_VERSION	"0.2.3"
> > diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> > index 5d9c31d..d5d4cd8 100644
> > --- a/drivers/char/hpet.c
> > +++ b/drivers/char/hpet.c
> > @@ -34,15 +34,12 @@
> >  #include <linux/uaccess.h>
> >  #include <linux/slab.h>
> >  #include <linux/io.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <linux/hpet.h>
> >  #include <asm/current.h>
> >  #include <asm/irq.h>
> >  #include <asm/div64.h>
> >  
> > -#include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <linux/hpet.h>
> > -
> >  /*
> >   * The High Precision Event Timer driver.
> >   * This driver is closely modelled after the rtc.c driver.
> > diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> > index 64420b3..b9a57fa 100644
> > --- a/drivers/char/tpm/tpm_acpi.c
> > +++ b/drivers/char/tpm/tpm_acpi.c
> > @@ -23,7 +23,7 @@
> >  #include <linux/security.h>
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >  
> >  #include "tpm.h"
> >  #include "tpm_eventlog.h"
> > diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> > index 8e562dc..dd60ef3 100644
> > --- a/drivers/char/tpm/tpm_ppi.c
> > +++ b/drivers/char/tpm/tpm_ppi.c
> > @@ -1,5 +1,4 @@
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include "tpm.h"
> >  
> >  static const u8 tpm_ppi_uuid[] = {
> > diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
> > index dfff090..5325b25 100644
> > --- a/drivers/gpu/drm/i915/intel_acpi.c
> > +++ b/drivers/gpu/drm/i915/intel_acpi.c
> > @@ -6,8 +6,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/vga_switcheroo.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include <drm/drmP.h>
> >  #include "i915_drv.h"
> >  
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > index 95c7404..1f0b6d2 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > @@ -1,15 +1,10 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/video.h>
> > -#include <acpi/acpi.h>
> >  #include <linux/mxm-wmi.h>
> > -
> >  #include <linux/vga_switcheroo.h>
> > -
> >  #include <drm/drm_edid.h>
> > +#include <acpi/video.h>
> >  
> >  #include "nouveau_drm.h"
> >  #include "nouveau_acpi.h"
> > diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
> > index 98a9074..77e9d07 100644
> > --- a/drivers/gpu/drm/radeon/radeon_acpi.c
> > +++ b/drivers/gpu/drm/radeon/radeon_acpi.c
> > @@ -25,18 +25,14 @@
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> >  #include <linux/power_supply.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/vga_switcheroo.h>
> >  #include <acpi/video.h>
> > -
> >  #include <drm/drmP.h>
> >  #include <drm/drm_crtc_helper.h>
> >  #include "radeon.h"
> >  #include "radeon_acpi.h"
> >  #include "atom.h"
> >  
> > -#include <linux/vga_switcheroo.h>
> > -
> >  #define ACPI_AC_CLASS           "ac_adapter"
> >  
> >  extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
> > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> > index 48aad4f..077bb1b 100644
> > --- a/drivers/hv/vmbus_drv.c
> > +++ b/drivers/hv/vmbus_drv.c
> > @@ -30,7 +30,6 @@
> >  #include <linux/sysctl.h>
> >  #include <linux/slab.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/completion.h>
> >  #include <linux/hyperv.h>
> >  #include <linux/kernel_stat.h>
> > @@ -39,7 +38,6 @@
> >  #include <asm/mshyperv.h>
> >  #include "hyperv_vmbus.h"
> >  
> > -
> >  static struct acpi_device  *hv_acpi_dev;
> >  
> >  static struct tasklet_struct msg_dpc;
> > diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
> > index 6a34f7f..579bdf9 100644
> > --- a/drivers/hwmon/acpi_power_meter.c
> > +++ b/drivers/hwmon/acpi_power_meter.c
> > @@ -30,8 +30,7 @@
> >  #include <linux/sched.h>
> >  #include <linux/time.h>
> >  #include <linux/err.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  
> >  #define ACPI_POWER_METER_NAME		"power_meter"
> >  ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
> > diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> > index dafc63c..ae208f6 100644
> > --- a/drivers/hwmon/asus_atk0110.c
> > +++ b/drivers/hwmon/asus_atk0110.c
> > @@ -16,11 +16,7 @@
> >  #include <linux/dmi.h>
> >  #include <linux/jiffies.h>
> >  #include <linux/err.h>
> > -
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -
> > +#include <linux/acpi.h>
> >  
> >  #define ATK_HID "ATK0110"
> >  
> > diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
> > index d9e1f7c..333d405 100644
> > --- a/drivers/ide/ide-acpi.c
> > +++ b/drivers/ide/ide-acpi.c
> > @@ -14,7 +14,6 @@
> >  #include <linux/errno.h>
> >  #include <linux/kernel.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi.h>
> >  #include <linux/ide.h>
> >  #include <linux/pci.h>
> >  #include <linux/dmi.h>
> > diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
> > index 5d44023..d781b5e 100644
> > --- a/drivers/input/misc/atlas_btns.c
> > +++ b/drivers/input/misc/atlas_btns.c
> > @@ -28,8 +28,8 @@
> >  #include <linux/init.h>
> >  #include <linux/input.h>
> >  #include <linux/types.h>
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> > -#include <acpi/acpi_drivers.h>
> >  
> >  #define ACPI_ATLAS_NAME		"Atlas ACPI"
> >  #define ACPI_ATLAS_CLASS	"Atlas"
> > diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> > index 8f798be..28b4bea 100644
> > --- a/drivers/iommu/amd_iommu_init.c
> > +++ b/drivers/iommu/amd_iommu_init.c
> > @@ -26,7 +26,6 @@
> >  #include <linux/msi.h>
> >  #include <linux/amd-iommu.h>
> >  #include <linux/export.h>
> > -#include <acpi/acpi.h>
> >  #include <asm/pci-direct.h>
> >  #include <asm/iommu.h>
> >  #include <asm/gart.h>
> > diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> > index bab10b1..0cb7528 100644
> > --- a/drivers/iommu/intel_irq_remapping.c
> > +++ b/drivers/iommu/intel_irq_remapping.c
> > @@ -6,11 +6,11 @@
> >  #include <linux/hpet.h>
> >  #include <linux/pci.h>
> >  #include <linux/irq.h>
> > +#include <linux/intel-iommu.h>
> > +#include <linux/acpi.h>
> >  #include <asm/io_apic.h>
> >  #include <asm/smp.h>
> >  #include <asm/cpu.h>
> > -#include <linux/intel-iommu.h>
> > -#include <acpi/acpi.h>
> >  #include <asm/irq_remapping.h>
> >  #include <asm/pci-direct.h>
> >  #include <asm/msidef.h>
> > diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
> > index ecfac7e..8dcccff 100644
> > --- a/drivers/pci/hotplug/acpiphp_ibm.c
> > +++ b/drivers/pci/hotplug/acpiphp_ibm.c
> > @@ -31,12 +31,11 @@
> >  #include <linux/slab.h>
> >  #include <linux/module.h>
> >  #include <linux/kernel.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/sysfs.h>
> >  #include <linux/kobject.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/moduleparam.h>
> >  #include <linux/pci.h>
> > +#include <asm/uaccess.h>
> >  
> >  #include "acpiphp.h"
> >  #include "../pci.h"
> > diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
> > index 21e865d..24e147c 100644
> > --- a/drivers/pci/hotplug/pciehp.h
> > +++ b/drivers/pci/hotplug/pciehp.h
> > @@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
> >  }
> >  
> >  #ifdef CONFIG_ACPI
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/pci-acpi.h>
> >  
> >  void __init pciehp_acpi_slot_detection_init(void);
> > diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
> > index 50ce680..2122b2b 100644
> > --- a/drivers/pci/ioapic.c
> > +++ b/drivers/pci/ioapic.c
> > @@ -20,7 +20,6 @@
> >  #include <linux/module.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> >  
> >  struct ioapic {
> >  	acpi_handle	handle;
> > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> > index 577074e..43e3179 100644
> > --- a/drivers/pci/pci-acpi.c
> > +++ b/drivers/pci/pci-acpi.c
> > @@ -12,9 +12,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/module.h>
> >  #include <linux/pci-aspm.h>
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -
> >  #include <linux/pci-acpi.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/pm_qos.h>
> > diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> > index d51f45a..dbafcc8 100644
> > --- a/drivers/pci/pci-label.c
> > +++ b/drivers/pci/pci-label.c
> > @@ -29,7 +29,6 @@
> >  #include <linux/nls.h>
> >  #include <linux/acpi.h>
> >  #include <linux/pci-acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include "pci.h"
> >  
> >  #define	DEVICE_LABEL_DSM	0x07
> > diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> > index c9076bd..c91f69b3 100644
> > --- a/drivers/platform/x86/acer-wmi.c
> > +++ b/drivers/platform/x86/acer-wmi.c
> > @@ -41,8 +41,6 @@
> >  #include <linux/slab.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/video.h>
> >  
> >  MODULE_AUTHOR("Carlos Corbacho");
> > diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> > index 0e9c169..430b5c3 100644
> > --- a/drivers/platform/x86/asus-laptop.c
> > +++ b/drivers/platform/x86/asus-laptop.c
> > @@ -53,8 +53,7 @@
> >  #include <linux/rfkill.h>
> >  #include <linux/slab.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  
> >  #define ASUS_LAPTOP_VERSION	"0.42"
> >  
> > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> > index 19c313b..df7ecb9 100644
> > --- a/drivers/platform/x86/asus-wmi.c
> > +++ b/drivers/platform/x86/asus-wmi.c
> > @@ -45,8 +45,7 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/video.h>
> >  
> >  #include "asus-wmi.h"
> > diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> > index 6dfa8d3..70d355a 100644
> > --- a/drivers/platform/x86/classmate-laptop.c
> > +++ b/drivers/platform/x86/classmate-laptop.c
> > @@ -21,14 +21,13 @@
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> >  #include <linux/workqueue.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/backlight.h>
> >  #include <linux/input.h>
> >  #include <linux/rfkill.h>
> >  
> >  MODULE_LICENSE("GPL");
> >  
> > -
> >  struct cmpc_accel {
> >  	int sensitivity;
> >  	int g_select;
> > diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
> > index bcf8cc6..dbc97a3 100644
> > --- a/drivers/platform/x86/dell-wmi-aio.c
> > +++ b/drivers/platform/x86/dell-wmi-aio.c
> > @@ -24,7 +24,6 @@
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/acpi.h>
> >  #include <linux/string.h>
> >  
> > diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> > index fa9a217..bdf483b 100644
> > --- a/drivers/platform/x86/dell-wmi.c
> > +++ b/drivers/platform/x86/dell-wmi.c
> > @@ -32,7 +32,6 @@
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/acpi.h>
> >  #include <linux/string.h>
> >  #include <linux/dmi.h>
> > diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> > index aefcc32..cabd567 100644
> > --- a/drivers/platform/x86/eeepc-laptop.c
> > +++ b/drivers/platform/x86/eeepc-laptop.c
> > @@ -28,8 +28,7 @@
> >  #include <linux/hwmon.h>
> >  #include <linux/hwmon-sysfs.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
> > index af67e6e..6112933 100644
> > --- a/drivers/platform/x86/eeepc-wmi.c
> > +++ b/drivers/platform/x86/eeepc-wmi.c
> > @@ -33,7 +33,7 @@
> >  #include <linux/input/sparse-keymap.h>
> >  #include <linux/dmi.h>
> >  #include <linux/fb.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  
> >  #include "asus-wmi.h"
> >  
> > diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> > index a8e43cf..aff4d06 100644
> > --- a/drivers/platform/x86/hp_accel.c
> > +++ b/drivers/platform/x86/hp_accel.c
> > @@ -36,7 +36,7 @@
> >  #include <linux/uaccess.h>
> >  #include <linux/leds.h>
> >  #include <linux/atomic.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include "../../misc/lis3lv02d/lis3lv02d.h"
> >  
> >  #define DRIVER_NAME     "hp_accel"
> > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > index 6788acc..70b5729 100644
> > --- a/drivers/platform/x86/ideapad-laptop.c
> > +++ b/drivers/platform/x86/ideapad-laptop.c
> > @@ -26,8 +26,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/rfkill.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/input.h>
> > diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
> > index a2083a9..d45bca3 100644
> > --- a/drivers/platform/x86/intel-rst.c
> > +++ b/drivers/platform/x86/intel-rst.c
> > @@ -20,7 +20,7 @@
> >  #include <linux/init.h>
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_LICENSE("GPL");
> >  
> > diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
> > index 1838400..04cf5df 100644
> > --- a/drivers/platform/x86/intel-smartconnect.c
> > +++ b/drivers/platform/x86/intel-smartconnect.c
> > @@ -19,7 +19,7 @@
> >  
> >  #include <linux/init.h>
> >  #include <linux/module.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_LICENSE("GPL");
> >  
> > diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
> > index 11244f8..e8b46d2 100644
> > --- a/drivers/platform/x86/intel_menlow.c
> > +++ b/drivers/platform/x86/intel_menlow.c
> > @@ -36,10 +36,8 @@
> >  #include <linux/types.h>
> >  #include <linux/pci.h>
> >  #include <linux/pm.h>
> > -
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_AUTHOR("Thomas Sujith");
> >  MODULE_AUTHOR("Zhang Rui");
> > diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
> > index f6f18cd..4bc9604 100644
> > --- a/drivers/platform/x86/intel_oaktrail.c
> > +++ b/drivers/platform/x86/intel_oaktrail.c
> > @@ -50,9 +50,6 @@
> >  #include <linux/platform_device.h>
> >  #include <linux/dmi.h>
> >  #include <linux/rfkill.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  
> >  #define DRIVER_NAME	"intel_oaktrail"
> >  #define DRIVER_VERSION	"0.4ac1"
> > diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
> > index 0aea63b..3c59c0a 100644
> > --- a/drivers/platform/x86/mxm-wmi.c
> > +++ b/drivers/platform/x86/mxm-wmi.c
> > @@ -20,8 +20,7 @@
> >  #include <linux/kernel.h>
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_AUTHOR("Dave Airlie");
> >  MODULE_DESCRIPTION("MXM WMI Driver");
> > diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
> > index 10d12b2..137d602 100644
> > --- a/drivers/platform/x86/panasonic-laptop.c
> > +++ b/drivers/platform/x86/panasonic-laptop.c
> > @@ -125,12 +125,10 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> >  
> > -
> >  #ifndef ACPI_HOTKEY_COMPONENT
> >  #define ACPI_HOTKEY_COMPONENT	0x10000000
> >  #endif
> > diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
> > index 47ae0c4..c9f6e51 100644
> > --- a/drivers/platform/x86/pvpanic.c
> > +++ b/drivers/platform/x86/pvpanic.c
> > @@ -24,8 +24,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
> >  MODULE_DESCRIPTION("pvpanic device driver");
> > diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
> > index cae7098..5413f62 100644
> > --- a/drivers/platform/x86/samsung-q10.c
> > +++ b/drivers/platform/x86/samsung-q10.c
> > @@ -15,7 +15,7 @@
> >  #include <linux/platform_device.h>
> >  #include <linux/backlight.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define SAMSUNGQ10_BL_MAX_INTENSITY 7
> >  
> > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> > index 47caab0..1d00039 100644
> > --- a/drivers/platform/x86/sony-laptop.c
> > +++ b/drivers/platform/x86/sony-laptop.c
> > @@ -61,9 +61,6 @@
> >  #include <linux/workqueue.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/sonypi.h>
> >  #include <linux/sony-laptop.h>
> >  #include <linux/rfkill.h>
> > @@ -71,6 +68,7 @@
> >  #include <linux/poll.h>
> >  #include <linux/miscdevice.h>
> >  #endif
> > +#include <asm/uaccess.h>
> >  
> >  #define dprintk(fmt, ...)			\
> >  do {						\
> > diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
> > index 9b93fdb..6a6ea28 100644
> > --- a/drivers/platform/x86/tc1100-wmi.c
> > +++ b/drivers/platform/x86/tc1100-wmi.c
> > @@ -32,9 +32,7 @@
> >  #include <linux/slab.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/platform_device.h>
> >  
> >  #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
> > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> > index 05e046a..9d7e34b 100644
> > --- a/drivers/platform/x86/thinkpad_acpi.c
> > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > @@ -61,7 +61,6 @@
> >  #include <linux/freezer.h>
> >  #include <linux/delay.h>
> >  #include <linux/slab.h>
> > -
> >  #include <linux/nvram.h>
> >  #include <linux/proc_fs.h>
> >  #include <linux/seq_file.h>
> > @@ -74,21 +73,16 @@
> >  #include <linux/input.h>
> >  #include <linux/leds.h>
> >  #include <linux/rfkill.h>
> > -#include <asm/uaccess.h>
> > -
> >  #include <linux/dmi.h>
> >  #include <linux/jiffies.h>
> >  #include <linux/workqueue.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <linux/pci_ids.h>
> > +#include <linux/thinkpad_acpi.h>
> >  #include <sound/core.h>
> >  #include <sound/control.h>
> >  #include <sound/initval.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > -
> > -#include <linux/pci_ids.h>
> > -
> > -#include <linux/thinkpad_acpi.h>
> > +#include <asm/uaccess.h>
> >  
> >  /* ThinkPad CMOS commands */
> >  #define TP_CMOS_VOLUME_DOWN	0
> > diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> > index 0cfadb6..b5f17eb 100644
> > --- a/drivers/platform/x86/toshiba_acpi.c
> > +++ b/drivers/platform/x86/toshiba_acpi.c
> > @@ -54,11 +54,9 @@
> >  #include <linux/slab.h>
> >  #include <linux/workqueue.h>
> >  #include <linux/i8042.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> >  
> > -#include <acpi/acpi_drivers.h>
> > -
> >  MODULE_AUTHOR("John Belmonte");
> >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
> >  MODULE_LICENSE("GPL");
> > diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
> > index 74dd01a..2cb1ea6 100644
> > --- a/drivers/platform/x86/toshiba_bluetooth.c
> > +++ b/drivers/platform/x86/toshiba_bluetooth.c
> > @@ -23,14 +23,12 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
> >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
> >  MODULE_LICENSE("GPL");
> >  
> > -
> >  static int toshiba_bt_rfkill_add(struct acpi_device *device);
> >  static int toshiba_bt_rfkill_remove(struct acpi_device *device);
> >  static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
> > diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> > index 62e8c22..ba13ade 100644
> > --- a/drivers/platform/x86/wmi.c
> > +++ b/drivers/platform/x86/wmi.c
> > @@ -37,8 +37,6 @@
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> >  #include <linux/module.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  
> >  ACPI_MODULE_NAME("wmi");
> >  MODULE_AUTHOR("Carlos Corbacho");
> > diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> > index 4b1377b..49cbcce 100644
> > --- a/drivers/platform/x86/xo15-ebook.c
> > +++ b/drivers/platform/x86/xo15-ebook.c
> > @@ -18,8 +18,7 @@
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  
> >  #define MODULE_NAME "xo15-ebook"
> >  
> > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> > index 14655a0..e869ba6 100644
> > --- a/drivers/pnp/pnpacpi/core.c
> > +++ b/drivers/pnp/pnpacpi/core.c
> > @@ -24,7 +24,6 @@
> >  #include <linux/pnp.h>
> >  #include <linux/slab.h>
> >  #include <linux/mod_devicetable.h>
> > -#include <acpi/acpi_bus.h>
> >  
> >  #include "../base.h"
> >  #include "pnpacpi.h"
> > diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
> > index 3e60225..051ef96 100644
> > --- a/drivers/pnp/pnpacpi/pnpacpi.h
> > +++ b/drivers/pnp/pnpacpi/pnpacpi.h
> > @@ -1,7 +1,6 @@
> >  #ifndef ACPI_PNP_H
> >  #define ACPI_PNP_H
> >  
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/acpi.h>
> >  #include <linux/pnp.h>
> >  
> > diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
> > index f5b4ca5..1c3d127 100644
> > --- a/drivers/sfi/sfi_acpi.c
> > +++ b/drivers/sfi/sfi_acpi.c
> > @@ -60,8 +60,7 @@
> >  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
> >  
> >  #include <linux/kernel.h>
> > -#include <acpi/acpi.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <linux/sfi.h>
> >  #include "sfi_core.h"
> >  
> > diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
> > index 9f6ebdb..a85c3d6 100644
> > --- a/drivers/staging/quickstart/quickstart.c
> > +++ b/drivers/staging/quickstart/quickstart.c
> > @@ -31,7 +31,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/input.h>
> >  
> > diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
> > index 4e243c3..11c6569 100644
> > --- a/drivers/usb/core/usb-acpi.c
> > +++ b/drivers/usb/core/usb-acpi.c
> > @@ -16,7 +16,6 @@
> >  #include <linux/acpi.h>
> >  #include <linux/pci.h>
> >  #include <linux/usb/hcd.h>
> > -#include <acpi/acpi_bus.h>
> >  
> >  #include "usb.h"
> >  
> > diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
> > index 73496c3..80875fb 100644
> > --- a/drivers/xen/xen-acpi-cpuhotplug.c
> > +++ b/drivers/xen/xen-acpi-cpuhotplug.c
> > @@ -24,10 +24,7 @@
> >  #include <linux/cpu.h>
> >  #include <linux/acpi.h>
> >  #include <linux/uaccess.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/processor.h>
> > -
> >  #include <xen/acpi.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
> > index 9b056f0..f8d1862 100644
> > --- a/drivers/xen/xen-acpi-memhotplug.c
> > +++ b/drivers/xen/xen-acpi-memhotplug.c
> > @@ -22,7 +22,6 @@
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <xen/acpi.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> > index 59708fd..40c4bc0 100644
> > --- a/drivers/xen/xen-acpi-pad.c
> > +++ b/drivers/xen/xen-acpi-pad.c
> > @@ -18,11 +18,10 @@
> >  
> >  #include <linux/kernel.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <asm/xen/hypercall.h>
> > +#include <linux/acpi.h>
> >  #include <xen/interface/version.h>
> >  #include <xen/xen-ops.h>
> > +#include <asm/xen/hypercall.h>
> >  
> >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> >  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
> > diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> > index 13bc6c3..7231859 100644
> > --- a/drivers/xen/xen-acpi-processor.c
> > +++ b/drivers/xen/xen-acpi-processor.c
> > @@ -28,10 +28,8 @@
> >  #include <linux/module.h>
> >  #include <linux/types.h>
> >  #include <linux/syscore_ops.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> > -
> >  #include <xen/xen.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> > index 95831e7..b241b73 100644
> > --- a/include/acpi/acpi_bus.h
> > +++ b/include/acpi/acpi_bus.h
> > @@ -28,8 +28,6 @@
> >  
> >  #include <linux/device.h>
> >  
> > -#include <acpi/acpi.h>
> > -
> >  /* TBD: Make dynamic */
> >  #define ACPI_MAX_HANDLES	10
> >  struct acpi_handle_list {
> > diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> > index 1cedfcb..b124fdb 100644
> > --- a/include/acpi/acpi_drivers.h
> > +++ b/include/acpi/acpi_drivers.h
> > @@ -26,9 +26,6 @@
> >  #ifndef __ACPI_DRIVERS_H__
> >  #define __ACPI_DRIVERS_H__
> >  
> > -#include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -
> >  #define ACPI_MAX_STRING			80
> >  
> >  /*
> > diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> > index b0ffa21..ded96fe 100644
> > --- a/include/linux/acpi_io.h
> > +++ b/include/linux/acpi_io.h
> > @@ -2,7 +2,7 @@
> >  #define _ACPI_IO_H_
> >  
> >  #include <linux/io.h>
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >  
> >  static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
> >  					    acpi_size size)
> > diff --git a/include/linux/ide.h b/include/linux/ide.h
> > index 46a1422..93b5ca7 100644
> > --- a/include/linux/ide.h
> > +++ b/include/linux/ide.h
> > @@ -18,14 +18,10 @@
> >  #include <linux/completion.h>
> >  #include <linux/pm.h>
> >  #include <linux/mutex.h>
> > -#ifdef CONFIG_BLK_DEV_IDEACPI
> > -#include <acpi/acpi.h>
> > -#endif
> > -#include <asm/byteorder.h>
> > -#include <asm/io.h>
> > -
> >  /* for request_sense */
> >  #include <linux/cdrom.h>
> > +#include <asm/byteorder.h>
> > +#include <asm/io.h>
> >  
> >  #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
> >  # define SUPPORT_VLB_SYNC 0
> > diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> > index 8ba7e5b..605cc5c 100644
> > --- a/include/linux/iscsi_ibft.h
> > +++ b/include/linux/iscsi_ibft.h
> > @@ -21,7 +21,7 @@
> >  #ifndef ISCSI_IBFT_H
> >  #define ISCSI_IBFT_H
> >  
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >  
> >  /*
> >   * Logical location of iSCSI Boot Format Table.
> > diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> > index a2e2f1d..5f2e559 100644
> > --- a/include/linux/pci_hotplug.h
> > +++ b/include/linux/pci_hotplug.h
> > @@ -175,8 +175,7 @@ struct hotplug_params {
> >  };
> >  
> >  #ifdef CONFIG_ACPI
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
> >  int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
> >  int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> > diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
> > index 631af63..c9cab82 100644
> > --- a/include/linux/sfi_acpi.h
> > +++ b/include/linux/sfi_acpi.h
> > @@ -60,7 +60,7 @@
> >  #define _LINUX_SFI_ACPI_H
> >  
> >  #ifdef CONFIG_SFI
> > -#include <acpi/acpi.h>		/* struct acpi_table_header */
> > +#include <linux/acpi.h>
> >  
> >  extern int sfi_acpi_table_parse(char *signature, char *oem_id,
> >  				char *oem_table_id,
> > diff --git a/include/linux/tboot.h b/include/linux/tboot.h
> > index c75128b..9a54b33 100644
> > --- a/include/linux/tboot.h
> > +++ b/include/linux/tboot.h
> > @@ -34,7 +34,7 @@ enum {
> >  };
> >  
> >  #ifdef CONFIG_INTEL_TXT
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >  /* used to communicate between tboot and the launched kernel */
> >  
> >  #define TB_KEY_SIZE             64   /* 512 bits */
> > diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > index 66cace6..0f10b81 100644
> > --- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > +++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > @@ -25,12 +25,9 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/delay.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <asm/io.h>
> >  
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  static int pm_tmr_ioport = 0;
> >  
> >  /*helper function to safely read acpi pm timesource*/
> > 
> -- 
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
       [not found] ` <3c5e408cd7791ef746f462c79ce28f67734817d9.1385434808.git.lv.zheng@intel.com>
@ 2013-11-26 20:29   ` Rafael J. Wysocki
  2013-11-26 20:27     ` Matthew Garrett
                       ` (4 more replies)
  0 siblings, 5 replies; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-26 20:29 UTC (permalink / raw)
  To: Lv Zheng, Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Konrad Rzeszutek Wilk
  Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-acpi, LKML

On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> 
> First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> should not be included directly from any files that are built for
> CONFIG_ACPI unset, because that generally leads to build warnings about
> undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> ACPI symbols to be used in that case.
> 
> Second, there are ordering dependencies between those files that always
> have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> latter depends on are always there.  And <acpi/acpi.h> which provides
> basic ACPICA type declarations should always be included prior to any other
> ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> <linux/acpi.h> as appropriate.
> 
> This patch also includes necessary cleanups in the affected files where
> other ACPI headers is also included but not referenced.
>

This looks OK to me, but it touches several other subsystems.  It's better to
CC such things to linux-kernel at least.

Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?

Rafael

 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> ---
>  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
>  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
>  arch/x86/kernel/apic/io_apic.c                       |    3 ---
>  arch/x86/pci/mmconfig_32.c                           |    1 -
>  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
>  drivers/acpi/ac.c                                    |    3 +--
>  drivers/acpi/acpi_extlog.c                           |    1 -
>  drivers/acpi/acpi_pad.c                              |    3 +--
>  drivers/acpi/apei/einj.c                             |    1 -
>  drivers/acpi/battery.c                               |    3 +--
>  drivers/acpi/blacklist.c                             |    1 -
>  drivers/acpi/bus.c                                   |    2 --
>  drivers/acpi/button.c                                |    3 +--
>  drivers/acpi/custom_method.c                         |    2 +-
>  drivers/acpi/debugfs.c                               |    2 +-
>  drivers/acpi/dock.c                                  |    2 --
>  drivers/acpi/ec.c                                    |    5 ++---
>  drivers/acpi/event.c                                 |    2 +-
>  drivers/acpi/fan.c                                   |    3 +--
>  drivers/acpi/hed.c                                   |    2 --
>  drivers/acpi/numa.c                                  |    1 -
>  drivers/acpi/osl.c                                   |    3 ---
>  drivers/acpi/pci_irq.c                               |    2 --
>  drivers/acpi/pci_link.c                              |    4 +---
>  drivers/acpi/pci_root.c                              |    4 +---
>  drivers/acpi/power.c                                 |    3 +--
>  drivers/acpi/proc.c                                  |    4 +---
>  drivers/acpi/processor_core.c                        |    3 +--
>  drivers/acpi/processor_idle.c                        |    4 +---
>  drivers/acpi/processor_perflib.c                     |    7 ++-----
>  drivers/acpi/processor_thermal.c                     |    7 ++-----
>  drivers/acpi/processor_throttling.c                  |    7 ++-----
>  drivers/acpi/sbshc.c                                 |    3 +--
>  drivers/acpi/scan.c                                  |    3 ---
>  drivers/acpi/sleep.c                                 |    4 ----
>  drivers/acpi/sysfs.c                                 |    2 +-
>  drivers/acpi/thermal.c                               |    5 ++---
>  drivers/acpi/utils.c                                 |    2 --
>  drivers/acpi/video.c                                 |    5 ++---
>  drivers/acpi/wakeup.c                                |    1 -
>  drivers/ata/libata-acpi.c                            |    2 --
>  drivers/ata/pata_acpi.c                              |    5 ++---
>  drivers/char/hpet.c                                  |    7 ++-----
>  drivers/char/tpm/tpm_acpi.c                          |    2 +-
>  drivers/char/tpm/tpm_ppi.c                           |    1 -
>  drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
>  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
>  drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
>  drivers/hv/vmbus_drv.c                               |    2 --
>  drivers/hwmon/acpi_power_meter.c                     |    3 +--
>  drivers/hwmon/asus_atk0110.c                         |    6 +-----
>  drivers/ide/ide-acpi.c                               |    1 -
>  drivers/input/misc/atlas_btns.c                      |    2 +-
>  drivers/iommu/amd_iommu_init.c                       |    1 -
>  drivers/iommu/intel_irq_remapping.c                  |    4 ++--
>  drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
>  drivers/pci/hotplug/pciehp.h                         |    2 --
>  drivers/pci/ioapic.c                                 |    1 -
>  drivers/pci/pci-acpi.c                               |    3 ---
>  drivers/pci/pci-label.c                              |    1 -
>  drivers/platform/x86/acer-wmi.c                      |    2 --
>  drivers/platform/x86/asus-laptop.c                   |    3 +--
>  drivers/platform/x86/asus-wmi.c                      |    3 +--
>  drivers/platform/x86/classmate-laptop.c              |    3 +--
>  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
>  drivers/platform/x86/dell-wmi.c                      |    1 -
>  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
>  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
>  drivers/platform/x86/hp_accel.c                      |    2 +-
>  drivers/platform/x86/ideapad-laptop.c                |    3 +--
>  drivers/platform/x86/intel-rst.c                     |    2 +-
>  drivers/platform/x86/intel-smartconnect.c            |    2 +-
>  drivers/platform/x86/intel_menlow.c                  |    4 +---
>  drivers/platform/x86/intel_oaktrail.c                |    3 ---
>  drivers/platform/x86/mxm-wmi.c                       |    3 +--
>  drivers/platform/x86/panasonic-laptop.c              |    4 +---
>  drivers/platform/x86/pvpanic.c                       |    3 +--
>  drivers/platform/x86/samsung-q10.c                   |    2 +-
>  drivers/platform/x86/sony-laptop.c                   |    4 +---
>  drivers/platform/x86/tc1100-wmi.c                    |    4 +---
>  drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
>  drivers/platform/x86/toshiba_acpi.c                  |    4 +---
>  drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
>  drivers/platform/x86/wmi.c                           |    2 --
>  drivers/platform/x86/xo15-ebook.c                    |    3 +--
>  drivers/pnp/pnpacpi/core.c                           |    1 -
>  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
>  drivers/sfi/sfi_acpi.c                               |    3 +--
>  drivers/staging/quickstart/quickstart.c              |    2 +-
>  drivers/usb/core/usb-acpi.c                          |    1 -
>  drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
>  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
>  drivers/xen/xen-acpi-pad.c                           |    5 ++---
>  drivers/xen/xen-acpi-processor.c                     |    4 +---
>  include/acpi/acpi_bus.h                              |    2 --
>  include/acpi/acpi_drivers.h                          |    3 ---
>  include/linux/acpi_io.h                              |    2 +-
>  include/linux/ide.h                                  |    8 ++------
>  include/linux/iscsi_ibft.h                           |    2 +-
>  include/linux/pci_hotplug.h                          |    3 +--
>  include/linux/sfi_acpi.h                             |    2 +-
>  include/linux/tboot.h                                |    2 +-
>  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
>  103 files changed, 80 insertions(+), 235 deletions(-)
> 
> diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> index 916ffe7..84715fc 100644
> --- a/arch/ia64/hp/common/aml_nfw.c
> +++ b/arch/ia64/hp/common/aml_nfw.c
> @@ -23,8 +23,7 @@
>   */
>  
>  #include <linux/module.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/sal.h>
>  
>  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> index 00c77cf..ccbf857 100644
> --- a/arch/x86/kernel/apic/apic_flat_64.c
> +++ b/arch/x86/kernel/apic/apic_flat_64.c
> @@ -21,9 +21,7 @@
>  #include <asm/apic.h>
>  #include <asm/ipi.h>
>  
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
> +#include <linux/acpi.h>
>  
>  static struct apic apic_physflat;
>  static struct apic apic_flat;
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index e63a5bd..4d67a75 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -37,9 +37,6 @@
>  #include <linux/kthread.h>
>  #include <linux/jiffies.h>	/* time_after() */
>  #include <linux/slab.h>
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
>  #include <linux/bootmem.h>
>  #include <linux/dmar.h>
>  #include <linux/hpet.h>
> diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
> index 5c90975..43984bc 100644
> --- a/arch/x86/pci/mmconfig_32.c
> +++ b/arch/x86/pci/mmconfig_32.c
> @@ -14,7 +14,6 @@
>  #include <linux/rcupdate.h>
>  #include <asm/e820.h>
>  #include <asm/pci_x86.h>
> -#include <acpi/acpi.h>
>  
>  /* Assume systems with more busses have correct MCFG */
>  #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
> diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> index 649a12b..08e350e 100644
> --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> @@ -15,8 +15,7 @@
>  #include <linux/power_supply.h>
>  #include <linux/olpc-ec.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/olpc.h>
>  
>  #define DRV_NAME			"olpc-xo15-sci"
> diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> index 8711e37..8095943 100644
> --- a/drivers/acpi/ac.c
> +++ b/drivers/acpi/ac.c
> @@ -32,8 +32,7 @@
>  #include <linux/delay.h>
>  #include <linux/platform_device.h>
>  #include <linux/power_supply.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> index a6869e1..2635a01 100644
> --- a/drivers/acpi/acpi_extlog.c
> +++ b/drivers/acpi/acpi_extlog.c
> @@ -9,7 +9,6 @@
>  
>  #include <linux/module.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/cper.h>
>  #include <linux/ratelimit.h>
>  #include <asm/cpu.h>
> diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> index fc6008f..65610c0 100644
> --- a/drivers/acpi/acpi_pad.c
> +++ b/drivers/acpi/acpi_pad.c
> @@ -28,8 +28,7 @@
>  #include <linux/cpu.h>
>  #include <linux/clockchips.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/mwait.h>
>  
>  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> index fb57d03..ca0c6d7 100644
> --- a/drivers/acpi/apei/einj.c
> +++ b/drivers/acpi/apei/einj.c
> @@ -33,7 +33,6 @@
>  #include <linux/nmi.h>
>  #include <linux/delay.h>
>  #include <linux/mm.h>
> -#include <acpi/acpi.h>
>  
>  #include "apei-internal.h"
>  
> diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> index fbf1ace..e90ef8b 100644
> --- a/drivers/acpi/battery.c
> +++ b/drivers/acpi/battery.c
> @@ -36,8 +36,7 @@
>  #include <linux/suspend.h>
>  #include <asm/unaligned.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/power_supply.h>
>  
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> index 078c4f7..05ee8f6 100644
> --- a/drivers/acpi/blacklist.c
> +++ b/drivers/acpi/blacklist.c
> @@ -30,7 +30,6 @@
>  #include <linux/kernel.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/dmi.h>
>  
>  #include "internal.h"
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index f509019..2c38ae2 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -37,8 +37,6 @@
>  #include <asm/mpspec.h>
>  #endif
>  #include <linux/pci.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/apei.h>
>  #include <linux/dmi.h>
>  #include <linux/suspend.h>
> diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> index c971929..9e3a6cb 100644
> --- a/drivers/acpi/button.c
> +++ b/drivers/acpi/button.c
> @@ -31,8 +31,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/input.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/button.h>
>  
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> index 12b62f2..c68e724 100644
> --- a/drivers/acpi/custom_method.c
> +++ b/drivers/acpi/custom_method.c
> @@ -7,7 +7,7 @@
>  #include <linux/kernel.h>
>  #include <linux/uaccess.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> index b55d6a2..6b1919f 100644
> --- a/drivers/acpi/debugfs.c
> +++ b/drivers/acpi/debugfs.c
> @@ -5,7 +5,7 @@
>  #include <linux/export.h>
>  #include <linux/init.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
>  ACPI_MODULE_NAME("debugfs");
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index de03201..8da6be9 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -32,8 +32,6 @@
>  #include <linux/jiffies.h>
>  #include <linux/stddef.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index ba5b56d..ff40120 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -39,10 +39,9 @@
>  #include <linux/list.h>
>  #include <linux/spinlock.h>
>  #include <linux/slab.h>
> -#include <asm/io.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/dmi.h>
> +#include <asm/io.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> index cae3b38..ef2d730 100644
> --- a/drivers/acpi/event.c
> +++ b/drivers/acpi/event.c
> @@ -12,7 +12,7 @@
>  #include <linux/init.h>
>  #include <linux/poll.h>
>  #include <linux/gfp.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <net/netlink.h>
>  #include <net/genetlink.h>
>  
> diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> index ba3da88..1fb6290 100644
> --- a/drivers/acpi/fan.c
> +++ b/drivers/acpi/fan.c
> @@ -29,8 +29,7 @@
>  #include <linux/types.h>
>  #include <asm/uaccess.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> index 13b1d39..aafe3ca 100644
> --- a/drivers/acpi/hed.c
> +++ b/drivers/acpi/hed.c
> @@ -25,8 +25,6 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/hed.h>
>  
>  static struct acpi_device_id acpi_hed_ids[] = {
> diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> index a2343a1..9e6816e 100644
> --- a/drivers/acpi/numa.c
> +++ b/drivers/acpi/numa.c
> @@ -29,7 +29,6 @@
>  #include <linux/errno.h>
>  #include <linux/acpi.h>
>  #include <linux/numa.h>
> -#include <acpi/acpi_bus.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 5b9a785..7e2d814 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -49,9 +49,6 @@
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/processor.h>
>  #include "internal.h"
>  
>  #define _COMPONENT		ACPI_OS_SERVICES
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index 41c5e1b..52d45ea 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -37,8 +37,6 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> index 2652a61..ea6b8d1 100644
> --- a/drivers/acpi/pci_link.c
> +++ b/drivers/acpi/pci_link.c
> @@ -39,9 +39,7 @@
>  #include <linux/pci.h>
>  #include <linux/mutex.h>
>  #include <linux/slab.h>
> -
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index 2dd11e0..afafee5 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -35,9 +35,7 @@
>  #include <linux/pci-aspm.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/apei.h>
> +#include <acpi/apei.h>	/* for acpi_hest_init() */
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> index c2ad391..ad7da68 100644
> --- a/drivers/acpi/power.c
> +++ b/drivers/acpi/power.c
> @@ -42,8 +42,7 @@
>  #include <linux/slab.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/sysfs.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include "sleep.h"
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> index 6a5b152..db061bf 100644
> --- a/drivers/acpi/proc.c
> +++ b/drivers/acpi/proc.c
> @@ -3,11 +3,9 @@
>  #include <linux/export.h>
>  #include <linux/suspend.h>
>  #include <linux/bcd.h>
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include "sleep.h"
>  
>  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> index b3171f3..34e7b3c 100644
> --- a/drivers/acpi/processor_core.c
> +++ b/drivers/acpi/processor_core.c
> @@ -10,8 +10,7 @@
>  #include <linux/export.h>
>  #include <linux/dmi.h>
>  #include <linux/slab.h>
> -
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
>  
>  #include "internal.h"
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 644516d..d2d44e0 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -35,6 +35,7 @@
>  #include <linux/clockchips.h>
>  #include <linux/cpuidle.h>
>  #include <linux/syscore_ops.h>
> +#include <acpi/processor.h>
>  
>  /*
>   * Include the apic definitions for x86 to have the APIC timer related defines
> @@ -46,9 +47,6 @@
>  #include <asm/apic.h>
>  #endif
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
>  
>  #define ACPI_PROCESSOR_CLASS            "processor"
> diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> index 60a7c28..ff90054 100644
> --- a/drivers/acpi/processor_perflib.c
> +++ b/drivers/acpi/processor_perflib.c
> @@ -31,15 +31,12 @@
>  #include <linux/init.h>
>  #include <linux/cpufreq.h>
>  #include <linux/slab.h>
> -
> +#include <linux/acpi.h>
> +#include <acpi/processor.h>
>  #ifdef CONFIG_X86
>  #include <asm/cpufeature.h>
>  #endif
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
>  
>  #define ACPI_PROCESSOR_CLASS		"processor"
> diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> index d1d2e7f..f95e758 100644
> --- a/drivers/acpi/processor_thermal.c
> +++ b/drivers/acpi/processor_thermal.c
> @@ -30,12 +30,9 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/cpufreq.h>
> -
> -#include <asm/uaccess.h>
> -
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> -#include <acpi/acpi_drivers.h>
> +#include <asm/uaccess.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> index e7dd2c1..28baa05 100644
> --- a/drivers/acpi/processor_throttling.c
> +++ b/drivers/acpi/processor_throttling.c
> @@ -32,14 +32,11 @@
>  #include <linux/init.h>
>  #include <linux/sched.h>
>  #include <linux/cpufreq.h>
> -
> +#include <linux/acpi.h>
> +#include <acpi/processor.h>
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
>  
>  #define ACPI_PROCESSOR_CLASS            "processor"
> diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> index b78bc60..26e5b50 100644
> --- a/drivers/acpi/sbshc.c
> +++ b/drivers/acpi/sbshc.c
> @@ -8,8 +8,7 @@
>   * the Free Software Foundation version 2.
>   */
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/wait.h>
>  #include <linux/slab.h>
>  #include <linux/delay.h>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 311904c..d564367 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -11,9 +11,6 @@
>  #include <linux/kthread.h>
>  #include <linux/dmi.h>
>  #include <linux/nls.h>
> -
> -#include <acpi/acpi_drivers.h>
> -
>  #include <asm/pgtable.h>
>  
>  #include "internal.h"
> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> index 721e949..208ac8c 100644
> --- a/drivers/acpi/sleep.c
> +++ b/drivers/acpi/sleep.c
> @@ -18,12 +18,8 @@
>  #include <linux/reboot.h>
>  #include <linux/acpi.h>
>  #include <linux/module.h>
> -
>  #include <asm/io.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include "internal.h"
>  #include "sleep.h"
>  
> diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> index 6dbc3ca..443dc93 100644
> --- a/drivers/acpi/sysfs.c
> +++ b/drivers/acpi/sysfs.c
> @@ -5,7 +5,7 @@
>  #include <linux/init.h>
>  #include <linux/kernel.h>
>  #include <linux/moduleparam.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 0d9f46b..1fd21ad 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -41,10 +41,9 @@
>  #include <linux/kmod.h>
>  #include <linux/reboot.h>
>  #include <linux/device.h>
> -#include <asm/uaccess.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> +#include <asm/uaccess.h>
>  
>  #define PREFIX "ACPI: "
>  
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 6d408bf..1336b91 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -30,8 +30,6 @@
>  #include <linux/types.h>
>  #include <linux/hardirq.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 995e91b..b727d10 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -37,12 +37,11 @@
>  #include <linux/pci.h>
>  #include <linux/pci_ids.h>
>  #include <linux/slab.h>
> -#include <asm/uaccess.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/suspend.h>
> +#include <linux/acpi.h>
>  #include <acpi/video.h>
> +#include <asm/uaccess.h>
>  
>  #include "internal.h"
>  
> diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
> index 7bfbe40..1638401 100644
> --- a/drivers/acpi/wakeup.c
> +++ b/drivers/acpi/wakeup.c
> @@ -5,7 +5,6 @@
>  
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/kernel.h>
>  #include <linux/types.h>
>  
> diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
> index 4372cfa..8e22d97 100644
> --- a/drivers/ata/libata-acpi.c
> +++ b/drivers/ata/libata-acpi.c
> @@ -20,8 +20,6 @@
>  #include <scsi/scsi_device.h>
>  #include "libata.h"
>  
> -#include <acpi/acpi_bus.h>
> -
>  unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
>  module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
>  MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
> diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
> index 73212c9..62c9ac8 100644
> --- a/drivers/ata/pata_acpi.c
> +++ b/drivers/ata/pata_acpi.c
> @@ -12,11 +12,10 @@
>  #include <linux/delay.h>
>  #include <linux/device.h>
>  #include <linux/gfp.h>
> -#include <scsi/scsi_host.h>
> -#include <acpi/acpi_bus.h>
> -
> +#include <linux/acpi.h>
>  #include <linux/libata.h>
>  #include <linux/ata.h>
> +#include <scsi/scsi_host.h>
>  
>  #define DRV_NAME	"pata_acpi"
>  #define DRV_VERSION	"0.2.3"
> diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> index 5d9c31d..d5d4cd8 100644
> --- a/drivers/char/hpet.c
> +++ b/drivers/char/hpet.c
> @@ -34,15 +34,12 @@
>  #include <linux/uaccess.h>
>  #include <linux/slab.h>
>  #include <linux/io.h>
> -
> +#include <linux/acpi.h>
> +#include <linux/hpet.h>
>  #include <asm/current.h>
>  #include <asm/irq.h>
>  #include <asm/div64.h>
>  
> -#include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <linux/hpet.h>
> -
>  /*
>   * The High Precision Event Timer driver.
>   * This driver is closely modelled after the rtc.c driver.
> diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> index 64420b3..b9a57fa 100644
> --- a/drivers/char/tpm/tpm_acpi.c
> +++ b/drivers/char/tpm/tpm_acpi.c
> @@ -23,7 +23,7 @@
>  #include <linux/security.h>
>  #include <linux/module.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
>  
>  #include "tpm.h"
>  #include "tpm_eventlog.h"
> diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> index 8e562dc..dd60ef3 100644
> --- a/drivers/char/tpm/tpm_ppi.c
> +++ b/drivers/char/tpm/tpm_ppi.c
> @@ -1,5 +1,4 @@
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include "tpm.h"
>  
>  static const u8 tpm_ppi_uuid[] = {
> diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
> index dfff090..5325b25 100644
> --- a/drivers/gpu/drm/i915/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/intel_acpi.c
> @@ -6,8 +6,6 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/vga_switcheroo.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include <drm/drmP.h>
>  #include "i915_drv.h"
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> index 95c7404..1f0b6d2 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> @@ -1,15 +1,10 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/video.h>
> -#include <acpi/acpi.h>
>  #include <linux/mxm-wmi.h>
> -
>  #include <linux/vga_switcheroo.h>
> -
>  #include <drm/drm_edid.h>
> +#include <acpi/video.h>
>  
>  #include "nouveau_drm.h"
>  #include "nouveau_acpi.h"
> diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
> index 98a9074..77e9d07 100644
> --- a/drivers/gpu/drm/radeon/radeon_acpi.c
> +++ b/drivers/gpu/drm/radeon/radeon_acpi.c
> @@ -25,18 +25,14 @@
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
>  #include <linux/power_supply.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/vga_switcheroo.h>
>  #include <acpi/video.h>
> -
>  #include <drm/drmP.h>
>  #include <drm/drm_crtc_helper.h>
>  #include "radeon.h"
>  #include "radeon_acpi.h"
>  #include "atom.h"
>  
> -#include <linux/vga_switcheroo.h>
> -
>  #define ACPI_AC_CLASS           "ac_adapter"
>  
>  extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index 48aad4f..077bb1b 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -30,7 +30,6 @@
>  #include <linux/sysctl.h>
>  #include <linux/slab.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/completion.h>
>  #include <linux/hyperv.h>
>  #include <linux/kernel_stat.h>
> @@ -39,7 +38,6 @@
>  #include <asm/mshyperv.h>
>  #include "hyperv_vmbus.h"
>  
> -
>  static struct acpi_device  *hv_acpi_dev;
>  
>  static struct tasklet_struct msg_dpc;
> diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
> index 6a34f7f..579bdf9 100644
> --- a/drivers/hwmon/acpi_power_meter.c
> +++ b/drivers/hwmon/acpi_power_meter.c
> @@ -30,8 +30,7 @@
>  #include <linux/sched.h>
>  #include <linux/time.h>
>  #include <linux/err.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  
>  #define ACPI_POWER_METER_NAME		"power_meter"
>  ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
> diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> index dafc63c..ae208f6 100644
> --- a/drivers/hwmon/asus_atk0110.c
> +++ b/drivers/hwmon/asus_atk0110.c
> @@ -16,11 +16,7 @@
>  #include <linux/dmi.h>
>  #include <linux/jiffies.h>
>  #include <linux/err.h>
> -
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -
> +#include <linux/acpi.h>
>  
>  #define ATK_HID "ATK0110"
>  
> diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
> index d9e1f7c..333d405 100644
> --- a/drivers/ide/ide-acpi.c
> +++ b/drivers/ide/ide-acpi.c
> @@ -14,7 +14,6 @@
>  #include <linux/errno.h>
>  #include <linux/kernel.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi.h>
>  #include <linux/ide.h>
>  #include <linux/pci.h>
>  #include <linux/dmi.h>
> diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
> index 5d44023..d781b5e 100644
> --- a/drivers/input/misc/atlas_btns.c
> +++ b/drivers/input/misc/atlas_btns.c
> @@ -28,8 +28,8 @@
>  #include <linux/init.h>
>  #include <linux/input.h>
>  #include <linux/types.h>
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
> -#include <acpi/acpi_drivers.h>
>  
>  #define ACPI_ATLAS_NAME		"Atlas ACPI"
>  #define ACPI_ATLAS_CLASS	"Atlas"
> diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> index 8f798be..28b4bea 100644
> --- a/drivers/iommu/amd_iommu_init.c
> +++ b/drivers/iommu/amd_iommu_init.c
> @@ -26,7 +26,6 @@
>  #include <linux/msi.h>
>  #include <linux/amd-iommu.h>
>  #include <linux/export.h>
> -#include <acpi/acpi.h>
>  #include <asm/pci-direct.h>
>  #include <asm/iommu.h>
>  #include <asm/gart.h>
> diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> index bab10b1..0cb7528 100644
> --- a/drivers/iommu/intel_irq_remapping.c
> +++ b/drivers/iommu/intel_irq_remapping.c
> @@ -6,11 +6,11 @@
>  #include <linux/hpet.h>
>  #include <linux/pci.h>
>  #include <linux/irq.h>
> +#include <linux/intel-iommu.h>
> +#include <linux/acpi.h>
>  #include <asm/io_apic.h>
>  #include <asm/smp.h>
>  #include <asm/cpu.h>
> -#include <linux/intel-iommu.h>
> -#include <acpi/acpi.h>
>  #include <asm/irq_remapping.h>
>  #include <asm/pci-direct.h>
>  #include <asm/msidef.h>
> diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
> index ecfac7e..8dcccff 100644
> --- a/drivers/pci/hotplug/acpiphp_ibm.c
> +++ b/drivers/pci/hotplug/acpiphp_ibm.c
> @@ -31,12 +31,11 @@
>  #include <linux/slab.h>
>  #include <linux/module.h>
>  #include <linux/kernel.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/sysfs.h>
>  #include <linux/kobject.h>
> -#include <asm/uaccess.h>
>  #include <linux/moduleparam.h>
>  #include <linux/pci.h>
> +#include <asm/uaccess.h>
>  
>  #include "acpiphp.h"
>  #include "../pci.h"
> diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
> index 21e865d..24e147c 100644
> --- a/drivers/pci/hotplug/pciehp.h
> +++ b/drivers/pci/hotplug/pciehp.h
> @@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
>  }
>  
>  #ifdef CONFIG_ACPI
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/pci-acpi.h>
>  
>  void __init pciehp_acpi_slot_detection_init(void);
> diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
> index 50ce680..2122b2b 100644
> --- a/drivers/pci/ioapic.c
> +++ b/drivers/pci/ioapic.c
> @@ -20,7 +20,6 @@
>  #include <linux/module.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
>  
>  struct ioapic {
>  	acpi_handle	handle;
> diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> index 577074e..43e3179 100644
> --- a/drivers/pci/pci-acpi.c
> +++ b/drivers/pci/pci-acpi.c
> @@ -12,9 +12,6 @@
>  #include <linux/pci.h>
>  #include <linux/module.h>
>  #include <linux/pci-aspm.h>
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -
>  #include <linux/pci-acpi.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/pm_qos.h>
> diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> index d51f45a..dbafcc8 100644
> --- a/drivers/pci/pci-label.c
> +++ b/drivers/pci/pci-label.c
> @@ -29,7 +29,6 @@
>  #include <linux/nls.h>
>  #include <linux/acpi.h>
>  #include <linux/pci-acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include "pci.h"
>  
>  #define	DEVICE_LABEL_DSM	0x07
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index c9076bd..c91f69b3 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -41,8 +41,6 @@
>  #include <linux/slab.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/video.h>
>  
>  MODULE_AUTHOR("Carlos Corbacho");
> diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> index 0e9c169..430b5c3 100644
> --- a/drivers/platform/x86/asus-laptop.c
> +++ b/drivers/platform/x86/asus-laptop.c
> @@ -53,8 +53,7 @@
>  #include <linux/rfkill.h>
>  #include <linux/slab.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  
>  #define ASUS_LAPTOP_VERSION	"0.42"
>  
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 19c313b..df7ecb9 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -45,8 +45,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/platform_device.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/video.h>
>  
>  #include "asus-wmi.h"
> diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> index 6dfa8d3..70d355a 100644
> --- a/drivers/platform/x86/classmate-laptop.c
> +++ b/drivers/platform/x86/classmate-laptop.c
> @@ -21,14 +21,13 @@
>  #include <linux/module.h>
>  #include <linux/slab.h>
>  #include <linux/workqueue.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/backlight.h>
>  #include <linux/input.h>
>  #include <linux/rfkill.h>
>  
>  MODULE_LICENSE("GPL");
>  
> -
>  struct cmpc_accel {
>  	int sensitivity;
>  	int g_select;
> diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
> index bcf8cc6..dbc97a3 100644
> --- a/drivers/platform/x86/dell-wmi-aio.c
> +++ b/drivers/platform/x86/dell-wmi-aio.c
> @@ -24,7 +24,6 @@
>  #include <linux/types.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/acpi.h>
>  #include <linux/string.h>
>  
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index fa9a217..bdf483b 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -32,7 +32,6 @@
>  #include <linux/types.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/acpi.h>
>  #include <linux/string.h>
>  #include <linux/dmi.h>
> diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> index aefcc32..cabd567 100644
> --- a/drivers/platform/x86/eeepc-laptop.c
> +++ b/drivers/platform/x86/eeepc-laptop.c
> @@ -28,8 +28,7 @@
>  #include <linux/hwmon.h>
>  #include <linux/hwmon-sysfs.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  #include <linux/uaccess.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
> index af67e6e..6112933 100644
> --- a/drivers/platform/x86/eeepc-wmi.c
> +++ b/drivers/platform/x86/eeepc-wmi.c
> @@ -33,7 +33,7 @@
>  #include <linux/input/sparse-keymap.h>
>  #include <linux/dmi.h>
>  #include <linux/fb.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  
>  #include "asus-wmi.h"
>  
> diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> index a8e43cf..aff4d06 100644
> --- a/drivers/platform/x86/hp_accel.c
> +++ b/drivers/platform/x86/hp_accel.c
> @@ -36,7 +36,7 @@
>  #include <linux/uaccess.h>
>  #include <linux/leds.h>
>  #include <linux/atomic.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include "../../misc/lis3lv02d/lis3lv02d.h"
>  
>  #define DRIVER_NAME     "hp_accel"
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index 6788acc..70b5729 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -26,8 +26,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/rfkill.h>
>  #include <linux/platform_device.h>
>  #include <linux/input.h>
> diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
> index a2083a9..d45bca3 100644
> --- a/drivers/platform/x86/intel-rst.c
> +++ b/drivers/platform/x86/intel-rst.c
> @@ -20,7 +20,7 @@
>  #include <linux/init.h>
>  #include <linux/module.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_LICENSE("GPL");
>  
> diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
> index 1838400..04cf5df 100644
> --- a/drivers/platform/x86/intel-smartconnect.c
> +++ b/drivers/platform/x86/intel-smartconnect.c
> @@ -19,7 +19,7 @@
>  
>  #include <linux/init.h>
>  #include <linux/module.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_LICENSE("GPL");
>  
> diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
> index 11244f8..e8b46d2 100644
> --- a/drivers/platform/x86/intel_menlow.c
> +++ b/drivers/platform/x86/intel_menlow.c
> @@ -36,10 +36,8 @@
>  #include <linux/types.h>
>  #include <linux/pci.h>
>  #include <linux/pm.h>
> -
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_AUTHOR("Thomas Sujith");
>  MODULE_AUTHOR("Zhang Rui");
> diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
> index f6f18cd..4bc9604 100644
> --- a/drivers/platform/x86/intel_oaktrail.c
> +++ b/drivers/platform/x86/intel_oaktrail.c
> @@ -50,9 +50,6 @@
>  #include <linux/platform_device.h>
>  #include <linux/dmi.h>
>  #include <linux/rfkill.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  
>  #define DRIVER_NAME	"intel_oaktrail"
>  #define DRIVER_VERSION	"0.4ac1"
> diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
> index 0aea63b..3c59c0a 100644
> --- a/drivers/platform/x86/mxm-wmi.c
> +++ b/drivers/platform/x86/mxm-wmi.c
> @@ -20,8 +20,7 @@
>  #include <linux/kernel.h>
>  #include <linux/module.h>
>  #include <linux/init.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_AUTHOR("Dave Airlie");
>  MODULE_DESCRIPTION("MXM WMI Driver");
> diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
> index 10d12b2..137d602 100644
> --- a/drivers/platform/x86/panasonic-laptop.c
> +++ b/drivers/platform/x86/panasonic-laptop.c
> @@ -125,12 +125,10 @@
>  #include <linux/seq_file.h>
>  #include <linux/uaccess.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
>  
> -
>  #ifndef ACPI_HOTKEY_COMPONENT
>  #define ACPI_HOTKEY_COMPONENT	0x10000000
>  #endif
> diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
> index 47ae0c4..c9f6e51 100644
> --- a/drivers/platform/x86/pvpanic.c
> +++ b/drivers/platform/x86/pvpanic.c
> @@ -24,8 +24,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
>  MODULE_DESCRIPTION("pvpanic device driver");
> diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
> index cae7098..5413f62 100644
> --- a/drivers/platform/x86/samsung-q10.c
> +++ b/drivers/platform/x86/samsung-q10.c
> @@ -15,7 +15,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/backlight.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define SAMSUNGQ10_BL_MAX_INTENSITY 7
>  
> diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> index 47caab0..1d00039 100644
> --- a/drivers/platform/x86/sony-laptop.c
> +++ b/drivers/platform/x86/sony-laptop.c
> @@ -61,9 +61,6 @@
>  #include <linux/workqueue.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -#include <asm/uaccess.h>
>  #include <linux/sonypi.h>
>  #include <linux/sony-laptop.h>
>  #include <linux/rfkill.h>
> @@ -71,6 +68,7 @@
>  #include <linux/poll.h>
>  #include <linux/miscdevice.h>
>  #endif
> +#include <asm/uaccess.h>
>  
>  #define dprintk(fmt, ...)			\
>  do {						\
> diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
> index 9b93fdb..6a6ea28 100644
> --- a/drivers/platform/x86/tc1100-wmi.c
> +++ b/drivers/platform/x86/tc1100-wmi.c
> @@ -32,9 +32,7 @@
>  #include <linux/slab.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/platform_device.h>
>  
>  #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 05e046a..9d7e34b 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -61,7 +61,6 @@
>  #include <linux/freezer.h>
>  #include <linux/delay.h>
>  #include <linux/slab.h>
> -
>  #include <linux/nvram.h>
>  #include <linux/proc_fs.h>
>  #include <linux/seq_file.h>
> @@ -74,21 +73,16 @@
>  #include <linux/input.h>
>  #include <linux/leds.h>
>  #include <linux/rfkill.h>
> -#include <asm/uaccess.h>
> -
>  #include <linux/dmi.h>
>  #include <linux/jiffies.h>
>  #include <linux/workqueue.h>
> -
> +#include <linux/acpi.h>
> +#include <linux/pci_ids.h>
> +#include <linux/thinkpad_acpi.h>
>  #include <sound/core.h>
>  #include <sound/control.h>
>  #include <sound/initval.h>
> -
> -#include <acpi/acpi_drivers.h>
> -
> -#include <linux/pci_ids.h>
> -
> -#include <linux/thinkpad_acpi.h>
> +#include <asm/uaccess.h>
>  
>  /* ThinkPad CMOS commands */
>  #define TP_CMOS_VOLUME_DOWN	0
> diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> index 0cfadb6..b5f17eb 100644
> --- a/drivers/platform/x86/toshiba_acpi.c
> +++ b/drivers/platform/x86/toshiba_acpi.c
> @@ -54,11 +54,9 @@
>  #include <linux/slab.h>
>  #include <linux/workqueue.h>
>  #include <linux/i8042.h>
> -
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
>  
> -#include <acpi/acpi_drivers.h>
> -
>  MODULE_AUTHOR("John Belmonte");
>  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
>  MODULE_LICENSE("GPL");
> diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
> index 74dd01a..2cb1ea6 100644
> --- a/drivers/platform/x86/toshiba_bluetooth.c
> +++ b/drivers/platform/x86/toshiba_bluetooth.c
> @@ -23,14 +23,12 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
>  MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
>  MODULE_LICENSE("GPL");
>  
> -
>  static int toshiba_bt_rfkill_add(struct acpi_device *device);
>  static int toshiba_bt_rfkill_remove(struct acpi_device *device);
>  static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
> diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> index 62e8c22..ba13ade 100644
> --- a/drivers/platform/x86/wmi.c
> +++ b/drivers/platform/x86/wmi.c
> @@ -37,8 +37,6 @@
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
>  #include <linux/module.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  
>  ACPI_MODULE_NAME("wmi");
>  MODULE_AUTHOR("Carlos Corbacho");
> diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> index 4b1377b..49cbcce 100644
> --- a/drivers/platform/x86/xo15-ebook.c
> +++ b/drivers/platform/x86/xo15-ebook.c
> @@ -18,8 +18,7 @@
>  #include <linux/init.h>
>  #include <linux/types.h>
>  #include <linux/input.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  
>  #define MODULE_NAME "xo15-ebook"
>  
> diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> index 14655a0..e869ba6 100644
> --- a/drivers/pnp/pnpacpi/core.c
> +++ b/drivers/pnp/pnpacpi/core.c
> @@ -24,7 +24,6 @@
>  #include <linux/pnp.h>
>  #include <linux/slab.h>
>  #include <linux/mod_devicetable.h>
> -#include <acpi/acpi_bus.h>
>  
>  #include "../base.h"
>  #include "pnpacpi.h"
> diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
> index 3e60225..051ef96 100644
> --- a/drivers/pnp/pnpacpi/pnpacpi.h
> +++ b/drivers/pnp/pnpacpi/pnpacpi.h
> @@ -1,7 +1,6 @@
>  #ifndef ACPI_PNP_H
>  #define ACPI_PNP_H
>  
> -#include <acpi/acpi_bus.h>
>  #include <linux/acpi.h>
>  #include <linux/pnp.h>
>  
> diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
> index f5b4ca5..1c3d127 100644
> --- a/drivers/sfi/sfi_acpi.c
> +++ b/drivers/sfi/sfi_acpi.c
> @@ -60,8 +60,7 @@
>  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
>  
>  #include <linux/kernel.h>
> -#include <acpi/acpi.h>
> -
> +#include <linux/acpi.h>
>  #include <linux/sfi.h>
>  #include "sfi_core.h"
>  
> diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
> index 9f6ebdb..a85c3d6 100644
> --- a/drivers/staging/quickstart/quickstart.c
> +++ b/drivers/staging/quickstart/quickstart.c
> @@ -31,7 +31,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/platform_device.h>
>  #include <linux/input.h>
>  
> diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
> index 4e243c3..11c6569 100644
> --- a/drivers/usb/core/usb-acpi.c
> +++ b/drivers/usb/core/usb-acpi.c
> @@ -16,7 +16,6 @@
>  #include <linux/acpi.h>
>  #include <linux/pci.h>
>  #include <linux/usb/hcd.h>
> -#include <acpi/acpi_bus.h>
>  
>  #include "usb.h"
>  
> diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
> index 73496c3..80875fb 100644
> --- a/drivers/xen/xen-acpi-cpuhotplug.c
> +++ b/drivers/xen/xen-acpi-cpuhotplug.c
> @@ -24,10 +24,7 @@
>  #include <linux/cpu.h>
>  #include <linux/acpi.h>
>  #include <linux/uaccess.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/processor.h>
> -
>  #include <xen/acpi.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
> index 9b056f0..f8d1862 100644
> --- a/drivers/xen/xen-acpi-memhotplug.c
> +++ b/drivers/xen/xen-acpi-memhotplug.c
> @@ -22,7 +22,6 @@
>  #include <linux/init.h>
>  #include <linux/types.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include <xen/acpi.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> index 59708fd..40c4bc0 100644
> --- a/drivers/xen/xen-acpi-pad.c
> +++ b/drivers/xen/xen-acpi-pad.c
> @@ -18,11 +18,10 @@
>  
>  #include <linux/kernel.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <asm/xen/hypercall.h>
> +#include <linux/acpi.h>
>  #include <xen/interface/version.h>
>  #include <xen/xen-ops.h>
> +#include <asm/xen/hypercall.h>
>  
>  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
>  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
> diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> index 13bc6c3..7231859 100644
> --- a/drivers/xen/xen-acpi-processor.c
> +++ b/drivers/xen/xen-acpi-processor.c
> @@ -28,10 +28,8 @@
>  #include <linux/module.h>
>  #include <linux/types.h>
>  #include <linux/syscore_ops.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> -
>  #include <xen/xen.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index 95831e7..b241b73 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -28,8 +28,6 @@
>  
>  #include <linux/device.h>
>  
> -#include <acpi/acpi.h>
> -
>  /* TBD: Make dynamic */
>  #define ACPI_MAX_HANDLES	10
>  struct acpi_handle_list {
> diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> index 1cedfcb..b124fdb 100644
> --- a/include/acpi/acpi_drivers.h
> +++ b/include/acpi/acpi_drivers.h
> @@ -26,9 +26,6 @@
>  #ifndef __ACPI_DRIVERS_H__
>  #define __ACPI_DRIVERS_H__
>  
> -#include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -
>  #define ACPI_MAX_STRING			80
>  
>  /*
> diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> index b0ffa21..ded96fe 100644
> --- a/include/linux/acpi_io.h
> +++ b/include/linux/acpi_io.h
> @@ -2,7 +2,7 @@
>  #define _ACPI_IO_H_
>  
>  #include <linux/io.h>
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
>  
>  static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
>  					    acpi_size size)
> diff --git a/include/linux/ide.h b/include/linux/ide.h
> index 46a1422..93b5ca7 100644
> --- a/include/linux/ide.h
> +++ b/include/linux/ide.h
> @@ -18,14 +18,10 @@
>  #include <linux/completion.h>
>  #include <linux/pm.h>
>  #include <linux/mutex.h>
> -#ifdef CONFIG_BLK_DEV_IDEACPI
> -#include <acpi/acpi.h>
> -#endif
> -#include <asm/byteorder.h>
> -#include <asm/io.h>
> -
>  /* for request_sense */
>  #include <linux/cdrom.h>
> +#include <asm/byteorder.h>
> +#include <asm/io.h>
>  
>  #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
>  # define SUPPORT_VLB_SYNC 0
> diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> index 8ba7e5b..605cc5c 100644
> --- a/include/linux/iscsi_ibft.h
> +++ b/include/linux/iscsi_ibft.h
> @@ -21,7 +21,7 @@
>  #ifndef ISCSI_IBFT_H
>  #define ISCSI_IBFT_H
>  
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
>  
>  /*
>   * Logical location of iSCSI Boot Format Table.
> diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> index a2e2f1d..5f2e559 100644
> --- a/include/linux/pci_hotplug.h
> +++ b/include/linux/pci_hotplug.h
> @@ -175,8 +175,7 @@ struct hotplug_params {
>  };
>  
>  #ifdef CONFIG_ACPI
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
>  int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
>  int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
> index 631af63..c9cab82 100644
> --- a/include/linux/sfi_acpi.h
> +++ b/include/linux/sfi_acpi.h
> @@ -60,7 +60,7 @@
>  #define _LINUX_SFI_ACPI_H
>  
>  #ifdef CONFIG_SFI
> -#include <acpi/acpi.h>		/* struct acpi_table_header */
> +#include <linux/acpi.h>
>  
>  extern int sfi_acpi_table_parse(char *signature, char *oem_id,
>  				char *oem_table_id,
> diff --git a/include/linux/tboot.h b/include/linux/tboot.h
> index c75128b..9a54b33 100644
> --- a/include/linux/tboot.h
> +++ b/include/linux/tboot.h
> @@ -34,7 +34,7 @@ enum {
>  };
>  
>  #ifdef CONFIG_INTEL_TXT
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
>  /* used to communicate between tboot and the launched kernel */
>  
>  #define TB_KEY_SIZE             64   /* 512 bits */
> diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> index 66cace6..0f10b81 100644
> --- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> +++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> @@ -25,12 +25,9 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/delay.h>
> -
> +#include <linux/acpi.h>
>  #include <asm/io.h>
>  
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  static int pm_tmr_ioport = 0;
>  
>  /*helper function to safely read acpi pm timesource*/
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
  2013-11-26 20:27     ` Matthew Garrett
  2013-11-26 20:29     ` Konrad Rzeszutek Wilk
@ 2013-11-26 20:54     ` Greg Kroah-Hartman
  2013-11-28  0:54     ` Zheng, Lv
  2013-11-28 14:18     ` Rafael J. Wysocki
  4 siblings, 0 replies; 40+ messages in thread
From: Greg Kroah-Hartman @ 2013-11-26 20:54 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Lv Zheng, Bjorn Helgaas, H. Peter Anvin, Matthew Garrett, Luck,
	Tony, Konrad Rzeszutek Wilk, Rafael J. Wysocki, Len Brown,
	Lv Zheng, linux-acpi, LKML

On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:
> On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > 
> > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > should not be included directly from any files that are built for
> > CONFIG_ACPI unset, because that generally leads to build warnings about
> > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > ACPI symbols to be used in that case.
> > 
> > Second, there are ordering dependencies between those files that always
> > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > latter depends on are always there.  And <acpi/acpi.h> which provides
> > basic ACPICA type declarations should always be included prior to any other
> > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > <linux/acpi.h> as appropriate.
> > 
> > This patch also includes necessary cleanups in the affected files where
> > other ACPI headers is also included but not referenced.
> >
> 
> This looks OK to me, but it touches several other subsystems.  It's better to
> CC such things to linux-kernel at least.
> 
> Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?

None from me, nice cleanups.

greg k-h

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29     ` Konrad Rzeszutek Wilk
@ 2013-11-27  0:29       ` Rafael J. Wysocki
  2013-11-28  1:12         ` Zheng, Lv
  2013-11-28  2:34       ` Zheng, Lv
  1 sibling, 1 reply; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-27  0:29 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk
  Cc: boris.ostrovsky, david.vrabel, Lv Zheng, Greg Kroah-Hartman,
	Bjorn Helgaas, H. Peter Anvin, Matthew Garrett, Luck, Tony,
	Rafael J. Wysocki, Len Brown, Lv Zheng, linux-acpi, LKML

On Tuesday, November 26, 2013 03:29:05 PM Konrad Rzeszutek Wilk wrote:
> On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:
> > On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > > 
> > > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > > should not be included directly from any files that are built for
> > > CONFIG_ACPI unset, because that generally leads to build warnings about
> > > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > > ACPI symbols to be used in that case.
> > > 
> > > Second, there are ordering dependencies between those files that always
> > > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > > latter depends on are always there.  And <acpi/acpi.h> which provides
> > > basic ACPICA type declarations should always be included prior to any other
> > > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > > <linux/acpi.h> as appropriate.
> > > 
> > > This patch also includes necessary cleanups in the affected files where
> > > other ACPI headers is also included but not referenced.
> > >
> > 
> > This looks OK to me, but it touches several other subsystems.  It's better to
> > CC such things to linux-kernel at least.
> > 
> > Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> 
> CC-ing Boris and David here.
> 
> I presume the proper compilation tests to make sure they do compile properly
> has been done.

Yes and we're going to run it through the auto build machinery anyway.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
                       ` (2 preceding siblings ...)
  2013-11-26 20:54     ` Greg Kroah-Hartman
@ 2013-11-28  0:54     ` Zheng, Lv
  2013-11-28 14:18     ` Rafael J. Wysocki
  4 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-11-28  0:54 UTC (permalink / raw)
  To: Rafael J. Wysocki, Greg Kroah-Hartman, Bjorn Helgaas,
	H. Peter Anvin, Matthew Garrett, Luck, Tony,
	Konrad Rzeszutek Wilk
  Cc: Wysocki, Rafael J, Brown, Len, Lv Zheng, linux-acpi, LKML

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 59383 bytes --]

Hi,

> -----Original Message-----
> From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
> Sent: Wednesday, November 27, 2013 4:30 AM
> To: Zheng, Lv; Greg Kroah-Hartman; Bjorn Helgaas; H. Peter Anvin; Matthew Garrett; Luck, Tony; Konrad Rzeszutek Wilk
> Cc: Wysocki, Rafael J; Brown, Len; Lv Zheng; linux-acpi@vger.kernel.org; LKML
> Subject: Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
> 
> On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> >
> > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > should not be included directly from any files that are built for
> > CONFIG_ACPI unset, because that generally leads to build warnings about
> > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > ACPI symbols to be used in that case.
> >
> > Second, there are ordering dependencies between those files that always
> > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > latter depends on are always there.  And <acpi/acpi.h> which provides
> > basic ACPICA type declarations should always be included prior to any other
> > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > <linux/acpi.h> as appropriate.
> >
> > This patch also includes necessary cleanups in the affected files where
> > other ACPI headers is also included but not referenced.
> >
> 
> This looks OK to me, but it touches several other subsystems.  It's better to
> CC such things to linux-kernel at least.

OK, I'll take care of updated revision.

Thanks
-Lv

> 
> Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> 
> Rafael
> 
> 
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > ---
> >  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
> >  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
> >  arch/x86/kernel/apic/io_apic.c                       |    3 ---
> >  arch/x86/pci/mmconfig_32.c                           |    1 -
> >  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
> >  drivers/acpi/ac.c                                    |    3 +--
> >  drivers/acpi/acpi_extlog.c                           |    1 -
> >  drivers/acpi/acpi_pad.c                              |    3 +--
> >  drivers/acpi/apei/einj.c                             |    1 -
> >  drivers/acpi/battery.c                               |    3 +--
> >  drivers/acpi/blacklist.c                             |    1 -
> >  drivers/acpi/bus.c                                   |    2 --
> >  drivers/acpi/button.c                                |    3 +--
> >  drivers/acpi/custom_method.c                         |    2 +-
> >  drivers/acpi/debugfs.c                               |    2 +-
> >  drivers/acpi/dock.c                                  |    2 --
> >  drivers/acpi/ec.c                                    |    5 ++---
> >  drivers/acpi/event.c                                 |    2 +-
> >  drivers/acpi/fan.c                                   |    3 +--
> >  drivers/acpi/hed.c                                   |    2 --
> >  drivers/acpi/numa.c                                  |    1 -
> >  drivers/acpi/osl.c                                   |    3 ---
> >  drivers/acpi/pci_irq.c                               |    2 --
> >  drivers/acpi/pci_link.c                              |    4 +---
> >  drivers/acpi/pci_root.c                              |    4 +---
> >  drivers/acpi/power.c                                 |    3 +--
> >  drivers/acpi/proc.c                                  |    4 +---
> >  drivers/acpi/processor_core.c                        |    3 +--
> >  drivers/acpi/processor_idle.c                        |    4 +---
> >  drivers/acpi/processor_perflib.c                     |    7 ++-----
> >  drivers/acpi/processor_thermal.c                     |    7 ++-----
> >  drivers/acpi/processor_throttling.c                  |    7 ++-----
> >  drivers/acpi/sbshc.c                                 |    3 +--
> >  drivers/acpi/scan.c                                  |    3 ---
> >  drivers/acpi/sleep.c                                 |    4 ----
> >  drivers/acpi/sysfs.c                                 |    2 +-
> >  drivers/acpi/thermal.c                               |    5 ++---
> >  drivers/acpi/utils.c                                 |    2 --
> >  drivers/acpi/video.c                                 |    5 ++---
> >  drivers/acpi/wakeup.c                                |    1 -
> >  drivers/ata/libata-acpi.c                            |    2 --
> >  drivers/ata/pata_acpi.c                              |    5 ++---
> >  drivers/char/hpet.c                                  |    7 ++-----
> >  drivers/char/tpm/tpm_acpi.c                          |    2 +-
> >  drivers/char/tpm/tpm_ppi.c                           |    1 -
> >  drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
> >  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
> >  drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
> >  drivers/hv/vmbus_drv.c                               |    2 --
> >  drivers/hwmon/acpi_power_meter.c                     |    3 +--
> >  drivers/hwmon/asus_atk0110.c                         |    6 +-----
> >  drivers/ide/ide-acpi.c                               |    1 -
> >  drivers/input/misc/atlas_btns.c                      |    2 +-
> >  drivers/iommu/amd_iommu_init.c                       |    1 -
> >  drivers/iommu/intel_irq_remapping.c                  |    4 ++--
> >  drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
> >  drivers/pci/hotplug/pciehp.h                         |    2 --
> >  drivers/pci/ioapic.c                                 |    1 -
> >  drivers/pci/pci-acpi.c                               |    3 ---
> >  drivers/pci/pci-label.c                              |    1 -
> >  drivers/platform/x86/acer-wmi.c                      |    2 --
> >  drivers/platform/x86/asus-laptop.c                   |    3 +--
> >  drivers/platform/x86/asus-wmi.c                      |    3 +--
> >  drivers/platform/x86/classmate-laptop.c              |    3 +--
> >  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
> >  drivers/platform/x86/dell-wmi.c                      |    1 -
> >  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
> >  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
> >  drivers/platform/x86/hp_accel.c                      |    2 +-
> >  drivers/platform/x86/ideapad-laptop.c                |    3 +--
> >  drivers/platform/x86/intel-rst.c                     |    2 +-
> >  drivers/platform/x86/intel-smartconnect.c            |    2 +-
> >  drivers/platform/x86/intel_menlow.c                  |    4 +---
> >  drivers/platform/x86/intel_oaktrail.c                |    3 ---
> >  drivers/platform/x86/mxm-wmi.c                       |    3 +--
> >  drivers/platform/x86/panasonic-laptop.c              |    4 +---
> >  drivers/platform/x86/pvpanic.c                       |    3 +--
> >  drivers/platform/x86/samsung-q10.c                   |    2 +-
> >  drivers/platform/x86/sony-laptop.c                   |    4 +---
> >  drivers/platform/x86/tc1100-wmi.c                    |    4 +---
> >  drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
> >  drivers/platform/x86/toshiba_acpi.c                  |    4 +---
> >  drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
> >  drivers/platform/x86/wmi.c                           |    2 --
> >  drivers/platform/x86/xo15-ebook.c                    |    3 +--
> >  drivers/pnp/pnpacpi/core.c                           |    1 -
> >  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
> >  drivers/sfi/sfi_acpi.c                               |    3 +--
> >  drivers/staging/quickstart/quickstart.c              |    2 +-
> >  drivers/usb/core/usb-acpi.c                          |    1 -
> >  drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
> >  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
> >  drivers/xen/xen-acpi-pad.c                           |    5 ++---
> >  drivers/xen/xen-acpi-processor.c                     |    4 +---
> >  include/acpi/acpi_bus.h                              |    2 --
> >  include/acpi/acpi_drivers.h                          |    3 ---
> >  include/linux/acpi_io.h                              |    2 +-
> >  include/linux/ide.h                                  |    8 ++------
> >  include/linux/iscsi_ibft.h                           |    2 +-
> >  include/linux/pci_hotplug.h                          |    3 +--
> >  include/linux/sfi_acpi.h                             |    2 +-
> >  include/linux/tboot.h                                |    2 +-
> >  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
> >  103 files changed, 80 insertions(+), 235 deletions(-)
> >
> > diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> > index 916ffe7..84715fc 100644
> > --- a/arch/ia64/hp/common/aml_nfw.c
> > +++ b/arch/ia64/hp/common/aml_nfw.c
> > @@ -23,8 +23,7 @@
> >   */
> >
> >  #include <linux/module.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/sal.h>
> >
> >  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> > diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> > index 00c77cf..ccbf857 100644
> > --- a/arch/x86/kernel/apic/apic_flat_64.c
> > +++ b/arch/x86/kernel/apic/apic_flat_64.c
> > @@ -21,9 +21,7 @@
> >  #include <asm/apic.h>
> >  #include <asm/ipi.h>
> >
> > -#ifdef CONFIG_ACPI
> > -#include <acpi/acpi_bus.h>
> > -#endif
> > +#include <linux/acpi.h>
> >
> >  static struct apic apic_physflat;
> >  static struct apic apic_flat;
> > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> > index e63a5bd..4d67a75 100644
> > --- a/arch/x86/kernel/apic/io_apic.c
> > +++ b/arch/x86/kernel/apic/io_apic.c
> > @@ -37,9 +37,6 @@
> >  #include <linux/kthread.h>
> >  #include <linux/jiffies.h>	/* time_after() */
> >  #include <linux/slab.h>
> > -#ifdef CONFIG_ACPI
> > -#include <acpi/acpi_bus.h>
> > -#endif
> >  #include <linux/bootmem.h>
> >  #include <linux/dmar.h>
> >  #include <linux/hpet.h>
> > diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
> > index 5c90975..43984bc 100644
> > --- a/arch/x86/pci/mmconfig_32.c
> > +++ b/arch/x86/pci/mmconfig_32.c
> > @@ -14,7 +14,6 @@
> >  #include <linux/rcupdate.h>
> >  #include <asm/e820.h>
> >  #include <asm/pci_x86.h>
> > -#include <acpi/acpi.h>
> >
> >  /* Assume systems with more busses have correct MCFG */
> >  #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
> > diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > index 649a12b..08e350e 100644
> > --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> > +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > @@ -15,8 +15,7 @@
> >  #include <linux/power_supply.h>
> >  #include <linux/olpc-ec.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/olpc.h>
> >
> >  #define DRV_NAME			"olpc-xo15-sci"
> > diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> > index 8711e37..8095943 100644
> > --- a/drivers/acpi/ac.c
> > +++ b/drivers/acpi/ac.c
> > @@ -32,8 +32,7 @@
> >  #include <linux/delay.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/power_supply.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> > index a6869e1..2635a01 100644
> > --- a/drivers/acpi/acpi_extlog.c
> > +++ b/drivers/acpi/acpi_extlog.c
> > @@ -9,7 +9,6 @@
> >
> >  #include <linux/module.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/cper.h>
> >  #include <linux/ratelimit.h>
> >  #include <asm/cpu.h>
> > diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> > index fc6008f..65610c0 100644
> > --- a/drivers/acpi/acpi_pad.c
> > +++ b/drivers/acpi/acpi_pad.c
> > @@ -28,8 +28,7 @@
> >  #include <linux/cpu.h>
> >  #include <linux/clockchips.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <asm/mwait.h>
> >
> >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> > diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> > index fb57d03..ca0c6d7 100644
> > --- a/drivers/acpi/apei/einj.c
> > +++ b/drivers/acpi/apei/einj.c
> > @@ -33,7 +33,6 @@
> >  #include <linux/nmi.h>
> >  #include <linux/delay.h>
> >  #include <linux/mm.h>
> > -#include <acpi/acpi.h>
> >
> >  #include "apei-internal.h"
> >
> > diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> > index fbf1ace..e90ef8b 100644
> > --- a/drivers/acpi/battery.c
> > +++ b/drivers/acpi/battery.c
> > @@ -36,8 +36,7 @@
> >  #include <linux/suspend.h>
> >  #include <asm/unaligned.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/power_supply.h>
> >
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> > index 078c4f7..05ee8f6 100644
> > --- a/drivers/acpi/blacklist.c
> > +++ b/drivers/acpi/blacklist.c
> > @@ -30,7 +30,6 @@
> >  #include <linux/kernel.h>
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/dmi.h>
> >
> >  #include "internal.h"
> > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> > index f509019..2c38ae2 100644
> > --- a/drivers/acpi/bus.c
> > +++ b/drivers/acpi/bus.c
> > @@ -37,8 +37,6 @@
> >  #include <asm/mpspec.h>
> >  #endif
> >  #include <linux/pci.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/apei.h>
> >  #include <linux/dmi.h>
> >  #include <linux/suspend.h>
> > diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> > index c971929..9e3a6cb 100644
> > --- a/drivers/acpi/button.c
> > +++ b/drivers/acpi/button.c
> > @@ -31,8 +31,7 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/input.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/button.h>
> >
> >  #define PREFIX "ACPI: "
> > diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> > index 12b62f2..c68e724 100644
> > --- a/drivers/acpi/custom_method.c
> > +++ b/drivers/acpi/custom_method.c
> > @@ -7,7 +7,7 @@
> >  #include <linux/kernel.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/debugfs.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> > index b55d6a2..6b1919f 100644
> > --- a/drivers/acpi/debugfs.c
> > +++ b/drivers/acpi/debugfs.c
> > @@ -5,7 +5,7 @@
> >  #include <linux/export.h>
> >  #include <linux/init.h>
> >  #include <linux/debugfs.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> >  ACPI_MODULE_NAME("debugfs");
> > diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> > index de03201..8da6be9 100644
> > --- a/drivers/acpi/dock.c
> > +++ b/drivers/acpi/dock.c
> > @@ -32,8 +32,6 @@
> >  #include <linux/jiffies.h>
> >  #include <linux/stddef.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> > index ba5b56d..ff40120 100644
> > --- a/drivers/acpi/ec.c
> > +++ b/drivers/acpi/ec.c
> > @@ -39,10 +39,9 @@
> >  #include <linux/list.h>
> >  #include <linux/spinlock.h>
> >  #include <linux/slab.h>
> > -#include <asm/io.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/dmi.h>
> > +#include <asm/io.h>
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> > index cae3b38..ef2d730 100644
> > --- a/drivers/acpi/event.c
> > +++ b/drivers/acpi/event.c
> > @@ -12,7 +12,7 @@
> >  #include <linux/init.h>
> >  #include <linux/poll.h>
> >  #include <linux/gfp.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <net/netlink.h>
> >  #include <net/genetlink.h>
> >
> > diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> > index ba3da88..1fb6290 100644
> > --- a/drivers/acpi/fan.c
> > +++ b/drivers/acpi/fan.c
> > @@ -29,8 +29,7 @@
> >  #include <linux/types.h>
> >  #include <asm/uaccess.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> > index 13b1d39..aafe3ca 100644
> > --- a/drivers/acpi/hed.c
> > +++ b/drivers/acpi/hed.c
> > @@ -25,8 +25,6 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/hed.h>
> >
> >  static struct acpi_device_id acpi_hed_ids[] = {
> > diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> > index a2343a1..9e6816e 100644
> > --- a/drivers/acpi/numa.c
> > +++ b/drivers/acpi/numa.c
> > @@ -29,7 +29,6 @@
> >  #include <linux/errno.h>
> >  #include <linux/acpi.h>
> >  #include <linux/numa.h>
> > -#include <acpi/acpi_bus.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> > index 5b9a785..7e2d814 100644
> > --- a/drivers/acpi/osl.c
> > +++ b/drivers/acpi/osl.c
> > @@ -49,9 +49,6 @@
> >  #include <asm/io.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/processor.h>
> >  #include "internal.h"
> >
> >  #define _COMPONENT		ACPI_OS_SERVICES
> > diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> > index 41c5e1b..52d45ea 100644
> > --- a/drivers/acpi/pci_irq.c
> > +++ b/drivers/acpi/pci_irq.c
> > @@ -37,8 +37,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > index 2652a61..ea6b8d1 100644
> > --- a/drivers/acpi/pci_link.c
> > +++ b/drivers/acpi/pci_link.c
> > @@ -39,9 +39,7 @@
> >  #include <linux/pci.h>
> >  #include <linux/mutex.h>
> >  #include <linux/slab.h>
> > -
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> > index 2dd11e0..afafee5 100644
> > --- a/drivers/acpi/pci_root.c
> > +++ b/drivers/acpi/pci_root.c
> > @@ -35,9 +35,7 @@
> >  #include <linux/pci-aspm.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/apei.h>
> > +#include <acpi/apei.h>	/* for acpi_hest_init() */
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> > index c2ad391..ad7da68 100644
> > --- a/drivers/acpi/power.c
> > +++ b/drivers/acpi/power.c
> > @@ -42,8 +42,7 @@
> >  #include <linux/slab.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/sysfs.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include "sleep.h"
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> > index 6a5b152..db061bf 100644
> > --- a/drivers/acpi/proc.c
> > +++ b/drivers/acpi/proc.c
> > @@ -3,11 +3,9 @@
> >  #include <linux/export.h>
> >  #include <linux/suspend.h>
> >  #include <linux/bcd.h>
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include "sleep.h"
> >
> >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> > diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> > index b3171f3..34e7b3c 100644
> > --- a/drivers/acpi/processor_core.c
> > +++ b/drivers/acpi/processor_core.c
> > @@ -10,8 +10,7 @@
> >  #include <linux/export.h>
> >  #include <linux/dmi.h>
> >  #include <linux/slab.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> >
> >  #include "internal.h"
> > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> > index 644516d..d2d44e0 100644
> > --- a/drivers/acpi/processor_idle.c
> > +++ b/drivers/acpi/processor_idle.c
> > @@ -35,6 +35,7 @@
> >  #include <linux/clockchips.h>
> >  #include <linux/cpuidle.h>
> >  #include <linux/syscore_ops.h>
> > +#include <acpi/processor.h>
> >
> >  /*
> >   * Include the apic definitions for x86 to have the APIC timer related defines
> > @@ -46,9 +47,6 @@
> >  #include <asm/apic.h>
> >  #endif
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >
> >  #define ACPI_PROCESSOR_CLASS            "processor"
> > diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> > index 60a7c28..ff90054 100644
> > --- a/drivers/acpi/processor_perflib.c
> > +++ b/drivers/acpi/processor_perflib.c
> > @@ -31,15 +31,12 @@
> >  #include <linux/init.h>
> >  #include <linux/cpufreq.h>
> >  #include <linux/slab.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <acpi/processor.h>
> >  #ifdef CONFIG_X86
> >  #include <asm/cpufeature.h>
> >  #endif
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >
> >  #define ACPI_PROCESSOR_CLASS		"processor"
> > diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> > index d1d2e7f..f95e758 100644
> > --- a/drivers/acpi/processor_thermal.c
> > +++ b/drivers/acpi/processor_thermal.c
> > @@ -30,12 +30,9 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/cpufreq.h>
> > -
> > -#include <asm/uaccess.h>
> > -
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <asm/uaccess.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> > index e7dd2c1..28baa05 100644
> > --- a/drivers/acpi/processor_throttling.c
> > +++ b/drivers/acpi/processor_throttling.c
> > @@ -32,14 +32,11 @@
> >  #include <linux/init.h>
> >  #include <linux/sched.h>
> >  #include <linux/cpufreq.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <acpi/processor.h>
> >  #include <asm/io.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/processor.h>
> > -
> >  #define PREFIX "ACPI: "
> >
> >  #define ACPI_PROCESSOR_CLASS            "processor"
> > diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> > index b78bc60..26e5b50 100644
> > --- a/drivers/acpi/sbshc.c
> > +++ b/drivers/acpi/sbshc.c
> > @@ -8,8 +8,7 @@
> >   * the Free Software Foundation version 2.
> >   */
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/wait.h>
> >  #include <linux/slab.h>
> >  #include <linux/delay.h>
> > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> > index 311904c..d564367 100644
> > --- a/drivers/acpi/scan.c
> > +++ b/drivers/acpi/scan.c
> > @@ -11,9 +11,6 @@
> >  #include <linux/kthread.h>
> >  #include <linux/dmi.h>
> >  #include <linux/nls.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include <asm/pgtable.h>
> >
> >  #include "internal.h"
> > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> > index 721e949..208ac8c 100644
> > --- a/drivers/acpi/sleep.c
> > +++ b/drivers/acpi/sleep.c
> > @@ -18,12 +18,8 @@
> >  #include <linux/reboot.h>
> >  #include <linux/acpi.h>
> >  #include <linux/module.h>
> > -
> >  #include <asm/io.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include "internal.h"
> >  #include "sleep.h"
> >
> > diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> > index 6dbc3ca..443dc93 100644
> > --- a/drivers/acpi/sysfs.c
> > +++ b/drivers/acpi/sysfs.c
> > @@ -5,7 +5,7 @@
> >  #include <linux/init.h>
> >  #include <linux/kernel.h>
> >  #include <linux/moduleparam.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> > index 0d9f46b..1fd21ad 100644
> > --- a/drivers/acpi/thermal.c
> > +++ b/drivers/acpi/thermal.c
> > @@ -41,10 +41,9 @@
> >  #include <linux/kmod.h>
> >  #include <linux/reboot.h>
> >  #include <linux/device.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> > +#include <asm/uaccess.h>
> >
> >  #define PREFIX "ACPI: "
> >
> > diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> > index 6d408bf..1336b91 100644
> > --- a/drivers/acpi/utils.c
> > +++ b/drivers/acpi/utils.c
> > @@ -30,8 +30,6 @@
> >  #include <linux/types.h>
> >  #include <linux/hardirq.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> > index 995e91b..b727d10 100644
> > --- a/drivers/acpi/video.c
> > +++ b/drivers/acpi/video.c
> > @@ -37,12 +37,11 @@
> >  #include <linux/pci.h>
> >  #include <linux/pci_ids.h>
> >  #include <linux/slab.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/suspend.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/video.h>
> > +#include <asm/uaccess.h>
> >
> >  #include "internal.h"
> >
> > diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
> > index 7bfbe40..1638401 100644
> > --- a/drivers/acpi/wakeup.c
> > +++ b/drivers/acpi/wakeup.c
> > @@ -5,7 +5,6 @@
> >
> >  #include <linux/init.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/kernel.h>
> >  #include <linux/types.h>
> >
> > diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
> > index 4372cfa..8e22d97 100644
> > --- a/drivers/ata/libata-acpi.c
> > +++ b/drivers/ata/libata-acpi.c
> > @@ -20,8 +20,6 @@
> >  #include <scsi/scsi_device.h>
> >  #include "libata.h"
> >
> > -#include <acpi/acpi_bus.h>
> > -
> >  unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
> >  module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
> >  MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze
> lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
> > diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
> > index 73212c9..62c9ac8 100644
> > --- a/drivers/ata/pata_acpi.c
> > +++ b/drivers/ata/pata_acpi.c
> > @@ -12,11 +12,10 @@
> >  #include <linux/delay.h>
> >  #include <linux/device.h>
> >  #include <linux/gfp.h>
> > -#include <scsi/scsi_host.h>
> > -#include <acpi/acpi_bus.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <linux/libata.h>
> >  #include <linux/ata.h>
> > +#include <scsi/scsi_host.h>
> >
> >  #define DRV_NAME	"pata_acpi"
> >  #define DRV_VERSION	"0.2.3"
> > diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> > index 5d9c31d..d5d4cd8 100644
> > --- a/drivers/char/hpet.c
> > +++ b/drivers/char/hpet.c
> > @@ -34,15 +34,12 @@
> >  #include <linux/uaccess.h>
> >  #include <linux/slab.h>
> >  #include <linux/io.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <linux/hpet.h>
> >  #include <asm/current.h>
> >  #include <asm/irq.h>
> >  #include <asm/div64.h>
> >
> > -#include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <linux/hpet.h>
> > -
> >  /*
> >   * The High Precision Event Timer driver.
> >   * This driver is closely modelled after the rtc.c driver.
> > diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> > index 64420b3..b9a57fa 100644
> > --- a/drivers/char/tpm/tpm_acpi.c
> > +++ b/drivers/char/tpm/tpm_acpi.c
> > @@ -23,7 +23,7 @@
> >  #include <linux/security.h>
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >
> >  #include "tpm.h"
> >  #include "tpm_eventlog.h"
> > diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> > index 8e562dc..dd60ef3 100644
> > --- a/drivers/char/tpm/tpm_ppi.c
> > +++ b/drivers/char/tpm/tpm_ppi.c
> > @@ -1,5 +1,4 @@
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include "tpm.h"
> >
> >  static const u8 tpm_ppi_uuid[] = {
> > diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
> > index dfff090..5325b25 100644
> > --- a/drivers/gpu/drm/i915/intel_acpi.c
> > +++ b/drivers/gpu/drm/i915/intel_acpi.c
> > @@ -6,8 +6,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/vga_switcheroo.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  #include <drm/drmP.h>
> >  #include "i915_drv.h"
> >
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > index 95c7404..1f0b6d2 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > @@ -1,15 +1,10 @@
> >  #include <linux/pci.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/video.h>
> > -#include <acpi/acpi.h>
> >  #include <linux/mxm-wmi.h>
> > -
> >  #include <linux/vga_switcheroo.h>
> > -
> >  #include <drm/drm_edid.h>
> > +#include <acpi/video.h>
> >
> >  #include "nouveau_drm.h"
> >  #include "nouveau_acpi.h"
> > diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
> > index 98a9074..77e9d07 100644
> > --- a/drivers/gpu/drm/radeon/radeon_acpi.c
> > +++ b/drivers/gpu/drm/radeon/radeon_acpi.c
> > @@ -25,18 +25,14 @@
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> >  #include <linux/power_supply.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/vga_switcheroo.h>
> >  #include <acpi/video.h>
> > -
> >  #include <drm/drmP.h>
> >  #include <drm/drm_crtc_helper.h>
> >  #include "radeon.h"
> >  #include "radeon_acpi.h"
> >  #include "atom.h"
> >
> > -#include <linux/vga_switcheroo.h>
> > -
> >  #define ACPI_AC_CLASS           "ac_adapter"
> >
> >  extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
> > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> > index 48aad4f..077bb1b 100644
> > --- a/drivers/hv/vmbus_drv.c
> > +++ b/drivers/hv/vmbus_drv.c
> > @@ -30,7 +30,6 @@
> >  #include <linux/sysctl.h>
> >  #include <linux/slab.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/completion.h>
> >  #include <linux/hyperv.h>
> >  #include <linux/kernel_stat.h>
> > @@ -39,7 +38,6 @@
> >  #include <asm/mshyperv.h>
> >  #include "hyperv_vmbus.h"
> >
> > -
> >  static struct acpi_device  *hv_acpi_dev;
> >
> >  static struct tasklet_struct msg_dpc;
> > diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
> > index 6a34f7f..579bdf9 100644
> > --- a/drivers/hwmon/acpi_power_meter.c
> > +++ b/drivers/hwmon/acpi_power_meter.c
> > @@ -30,8 +30,7 @@
> >  #include <linux/sched.h>
> >  #include <linux/time.h>
> >  #include <linux/err.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >
> >  #define ACPI_POWER_METER_NAME		"power_meter"
> >  ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
> > diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> > index dafc63c..ae208f6 100644
> > --- a/drivers/hwmon/asus_atk0110.c
> > +++ b/drivers/hwmon/asus_atk0110.c
> > @@ -16,11 +16,7 @@
> >  #include <linux/dmi.h>
> >  #include <linux/jiffies.h>
> >  #include <linux/err.h>
> > -
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -
> > +#include <linux/acpi.h>
> >
> >  #define ATK_HID "ATK0110"
> >
> > diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
> > index d9e1f7c..333d405 100644
> > --- a/drivers/ide/ide-acpi.c
> > +++ b/drivers/ide/ide-acpi.c
> > @@ -14,7 +14,6 @@
> >  #include <linux/errno.h>
> >  #include <linux/kernel.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi.h>
> >  #include <linux/ide.h>
> >  #include <linux/pci.h>
> >  #include <linux/dmi.h>
> > diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
> > index 5d44023..d781b5e 100644
> > --- a/drivers/input/misc/atlas_btns.c
> > +++ b/drivers/input/misc/atlas_btns.c
> > @@ -28,8 +28,8 @@
> >  #include <linux/init.h>
> >  #include <linux/input.h>
> >  #include <linux/types.h>
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> > -#include <acpi/acpi_drivers.h>
> >
> >  #define ACPI_ATLAS_NAME		"Atlas ACPI"
> >  #define ACPI_ATLAS_CLASS	"Atlas"
> > diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> > index 8f798be..28b4bea 100644
> > --- a/drivers/iommu/amd_iommu_init.c
> > +++ b/drivers/iommu/amd_iommu_init.c
> > @@ -26,7 +26,6 @@
> >  #include <linux/msi.h>
> >  #include <linux/amd-iommu.h>
> >  #include <linux/export.h>
> > -#include <acpi/acpi.h>
> >  #include <asm/pci-direct.h>
> >  #include <asm/iommu.h>
> >  #include <asm/gart.h>
> > diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> > index bab10b1..0cb7528 100644
> > --- a/drivers/iommu/intel_irq_remapping.c
> > +++ b/drivers/iommu/intel_irq_remapping.c
> > @@ -6,11 +6,11 @@
> >  #include <linux/hpet.h>
> >  #include <linux/pci.h>
> >  #include <linux/irq.h>
> > +#include <linux/intel-iommu.h>
> > +#include <linux/acpi.h>
> >  #include <asm/io_apic.h>
> >  #include <asm/smp.h>
> >  #include <asm/cpu.h>
> > -#include <linux/intel-iommu.h>
> > -#include <acpi/acpi.h>
> >  #include <asm/irq_remapping.h>
> >  #include <asm/pci-direct.h>
> >  #include <asm/msidef.h>
> > diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
> > index ecfac7e..8dcccff 100644
> > --- a/drivers/pci/hotplug/acpiphp_ibm.c
> > +++ b/drivers/pci/hotplug/acpiphp_ibm.c
> > @@ -31,12 +31,11 @@
> >  #include <linux/slab.h>
> >  #include <linux/module.h>
> >  #include <linux/kernel.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/sysfs.h>
> >  #include <linux/kobject.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/moduleparam.h>
> >  #include <linux/pci.h>
> > +#include <asm/uaccess.h>
> >
> >  #include "acpiphp.h"
> >  #include "../pci.h"
> > diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
> > index 21e865d..24e147c 100644
> > --- a/drivers/pci/hotplug/pciehp.h
> > +++ b/drivers/pci/hotplug/pciehp.h
> > @@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
> >  }
> >
> >  #ifdef CONFIG_ACPI
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/pci-acpi.h>
> >
> >  void __init pciehp_acpi_slot_detection_init(void);
> > diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
> > index 50ce680..2122b2b 100644
> > --- a/drivers/pci/ioapic.c
> > +++ b/drivers/pci/ioapic.c
> > @@ -20,7 +20,6 @@
> >  #include <linux/module.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> >
> >  struct ioapic {
> >  	acpi_handle	handle;
> > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> > index 577074e..43e3179 100644
> > --- a/drivers/pci/pci-acpi.c
> > +++ b/drivers/pci/pci-acpi.c
> > @@ -12,9 +12,6 @@
> >  #include <linux/pci.h>
> >  #include <linux/module.h>
> >  #include <linux/pci-aspm.h>
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -
> >  #include <linux/pci-acpi.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/pm_qos.h>
> > diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> > index d51f45a..dbafcc8 100644
> > --- a/drivers/pci/pci-label.c
> > +++ b/drivers/pci/pci-label.c
> > @@ -29,7 +29,6 @@
> >  #include <linux/nls.h>
> >  #include <linux/acpi.h>
> >  #include <linux/pci-acpi.h>
> > -#include <acpi/acpi_bus.h>
> >  #include "pci.h"
> >
> >  #define	DEVICE_LABEL_DSM	0x07
> > diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> > index c9076bd..c91f69b3 100644
> > --- a/drivers/platform/x86/acer-wmi.c
> > +++ b/drivers/platform/x86/acer-wmi.c
> > @@ -41,8 +41,6 @@
> >  #include <linux/slab.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/video.h>
> >
> >  MODULE_AUTHOR("Carlos Corbacho");
> > diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> > index 0e9c169..430b5c3 100644
> > --- a/drivers/platform/x86/asus-laptop.c
> > +++ b/drivers/platform/x86/asus-laptop.c
> > @@ -53,8 +53,7 @@
> >  #include <linux/rfkill.h>
> >  #include <linux/slab.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >
> >  #define ASUS_LAPTOP_VERSION	"0.42"
> >
> > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> > index 19c313b..df7ecb9 100644
> > --- a/drivers/platform/x86/asus-wmi.c
> > +++ b/drivers/platform/x86/asus-wmi.c
> > @@ -45,8 +45,7 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/video.h>
> >
> >  #include "asus-wmi.h"
> > diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> > index 6dfa8d3..70d355a 100644
> > --- a/drivers/platform/x86/classmate-laptop.c
> > +++ b/drivers/platform/x86/classmate-laptop.c
> > @@ -21,14 +21,13 @@
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> >  #include <linux/workqueue.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/backlight.h>
> >  #include <linux/input.h>
> >  #include <linux/rfkill.h>
> >
> >  MODULE_LICENSE("GPL");
> >
> > -
> >  struct cmpc_accel {
> >  	int sensitivity;
> >  	int g_select;
> > diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
> > index bcf8cc6..dbc97a3 100644
> > --- a/drivers/platform/x86/dell-wmi-aio.c
> > +++ b/drivers/platform/x86/dell-wmi-aio.c
> > @@ -24,7 +24,6 @@
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/acpi.h>
> >  #include <linux/string.h>
> >
> > diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> > index fa9a217..bdf483b 100644
> > --- a/drivers/platform/x86/dell-wmi.c
> > +++ b/drivers/platform/x86/dell-wmi.c
> > @@ -32,7 +32,6 @@
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <linux/acpi.h>
> >  #include <linux/string.h>
> >  #include <linux/dmi.h>
> > diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> > index aefcc32..cabd567 100644
> > --- a/drivers/platform/x86/eeepc-laptop.c
> > +++ b/drivers/platform/x86/eeepc-laptop.c
> > @@ -28,8 +28,7 @@
> >  #include <linux/hwmon.h>
> >  #include <linux/hwmon-sysfs.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> > diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
> > index af67e6e..6112933 100644
> > --- a/drivers/platform/x86/eeepc-wmi.c
> > +++ b/drivers/platform/x86/eeepc-wmi.c
> > @@ -33,7 +33,7 @@
> >  #include <linux/input/sparse-keymap.h>
> >  #include <linux/dmi.h>
> >  #include <linux/fb.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >
> >  #include "asus-wmi.h"
> >
> > diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> > index a8e43cf..aff4d06 100644
> > --- a/drivers/platform/x86/hp_accel.c
> > +++ b/drivers/platform/x86/hp_accel.c
> > @@ -36,7 +36,7 @@
> >  #include <linux/uaccess.h>
> >  #include <linux/leds.h>
> >  #include <linux/atomic.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include "../../misc/lis3lv02d/lis3lv02d.h"
> >
> >  #define DRIVER_NAME     "hp_accel"
> > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > index 6788acc..70b5729 100644
> > --- a/drivers/platform/x86/ideapad-laptop.c
> > +++ b/drivers/platform/x86/ideapad-laptop.c
> > @@ -26,8 +26,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/rfkill.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/input.h>
> > diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
> > index a2083a9..d45bca3 100644
> > --- a/drivers/platform/x86/intel-rst.c
> > +++ b/drivers/platform/x86/intel-rst.c
> > @@ -20,7 +20,7 @@
> >  #include <linux/init.h>
> >  #include <linux/module.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_LICENSE("GPL");
> >
> > diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
> > index 1838400..04cf5df 100644
> > --- a/drivers/platform/x86/intel-smartconnect.c
> > +++ b/drivers/platform/x86/intel-smartconnect.c
> > @@ -19,7 +19,7 @@
> >
> >  #include <linux/init.h>
> >  #include <linux/module.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_LICENSE("GPL");
> >
> > diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
> > index 11244f8..e8b46d2 100644
> > --- a/drivers/platform/x86/intel_menlow.c
> > +++ b/drivers/platform/x86/intel_menlow.c
> > @@ -36,10 +36,8 @@
> >  #include <linux/types.h>
> >  #include <linux/pci.h>
> >  #include <linux/pm.h>
> > -
> >  #include <linux/thermal.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_AUTHOR("Thomas Sujith");
> >  MODULE_AUTHOR("Zhang Rui");
> > diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
> > index f6f18cd..4bc9604 100644
> > --- a/drivers/platform/x86/intel_oaktrail.c
> > +++ b/drivers/platform/x86/intel_oaktrail.c
> > @@ -50,9 +50,6 @@
> >  #include <linux/platform_device.h>
> >  #include <linux/dmi.h>
> >  #include <linux/rfkill.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >
> >  #define DRIVER_NAME	"intel_oaktrail"
> >  #define DRIVER_VERSION	"0.4ac1"
> > diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
> > index 0aea63b..3c59c0a 100644
> > --- a/drivers/platform/x86/mxm-wmi.c
> > +++ b/drivers/platform/x86/mxm-wmi.c
> > @@ -20,8 +20,7 @@
> >  #include <linux/kernel.h>
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_AUTHOR("Dave Airlie");
> >  MODULE_DESCRIPTION("MXM WMI Driver");
> > diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
> > index 10d12b2..137d602 100644
> > --- a/drivers/platform/x86/panasonic-laptop.c
> > +++ b/drivers/platform/x86/panasonic-laptop.c
> > @@ -125,12 +125,10 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/uaccess.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>
> >
> > -
> >  #ifndef ACPI_HOTKEY_COMPONENT
> >  #define ACPI_HOTKEY_COMPONENT	0x10000000
> >  #endif
> > diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
> > index 47ae0c4..c9f6e51 100644
> > --- a/drivers/platform/x86/pvpanic.c
> > +++ b/drivers/platform/x86/pvpanic.c
> > @@ -24,8 +24,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
> >  MODULE_DESCRIPTION("pvpanic device driver");
> > diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
> > index cae7098..5413f62 100644
> > --- a/drivers/platform/x86/samsung-q10.c
> > +++ b/drivers/platform/x86/samsung-q10.c
> > @@ -15,7 +15,7 @@
> >  #include <linux/platform_device.h>
> >  #include <linux/backlight.h>
> >  #include <linux/dmi.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define SAMSUNGQ10_BL_MAX_INTENSITY 7
> >
> > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> > index 47caab0..1d00039 100644
> > --- a/drivers/platform/x86/sony-laptop.c
> > +++ b/drivers/platform/x86/sony-laptop.c
> > @@ -61,9 +61,6 @@
> >  #include <linux/workqueue.h>
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <asm/uaccess.h>
> >  #include <linux/sonypi.h>
> >  #include <linux/sony-laptop.h>
> >  #include <linux/rfkill.h>
> > @@ -71,6 +68,7 @@
> >  #include <linux/poll.h>
> >  #include <linux/miscdevice.h>
> >  #endif
> > +#include <asm/uaccess.h>
> >
> >  #define dprintk(fmt, ...)			\
> >  do {						\
> > diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
> > index 9b93fdb..6a6ea28 100644
> > --- a/drivers/platform/x86/tc1100-wmi.c
> > +++ b/drivers/platform/x86/tc1100-wmi.c
> > @@ -32,9 +32,7 @@
> >  #include <linux/slab.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/platform_device.h>
> >
> >  #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
> > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> > index 05e046a..9d7e34b 100644
> > --- a/drivers/platform/x86/thinkpad_acpi.c
> > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > @@ -61,7 +61,6 @@
> >  #include <linux/freezer.h>
> >  #include <linux/delay.h>
> >  #include <linux/slab.h>
> > -
> >  #include <linux/nvram.h>
> >  #include <linux/proc_fs.h>
> >  #include <linux/seq_file.h>
> > @@ -74,21 +73,16 @@
> >  #include <linux/input.h>
> >  #include <linux/leds.h>
> >  #include <linux/rfkill.h>
> > -#include <asm/uaccess.h>
> > -
> >  #include <linux/dmi.h>
> >  #include <linux/jiffies.h>
> >  #include <linux/workqueue.h>
> > -
> > +#include <linux/acpi.h>
> > +#include <linux/pci_ids.h>
> > +#include <linux/thinkpad_acpi.h>
> >  #include <sound/core.h>
> >  #include <sound/control.h>
> >  #include <sound/initval.h>
> > -
> > -#include <acpi/acpi_drivers.h>
> > -
> > -#include <linux/pci_ids.h>
> > -
> > -#include <linux/thinkpad_acpi.h>
> > +#include <asm/uaccess.h>
> >
> >  /* ThinkPad CMOS commands */
> >  #define TP_CMOS_VOLUME_DOWN	0
> > diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> > index 0cfadb6..b5f17eb 100644
> > --- a/drivers/platform/x86/toshiba_acpi.c
> > +++ b/drivers/platform/x86/toshiba_acpi.c
> > @@ -54,11 +54,9 @@
> >  #include <linux/slab.h>
> >  #include <linux/workqueue.h>
> >  #include <linux/i8042.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <asm/uaccess.h>
> >
> > -#include <acpi/acpi_drivers.h>
> > -
> >  MODULE_AUTHOR("John Belmonte");
> >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
> >  MODULE_LICENSE("GPL");
> > diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
> > index 74dd01a..2cb1ea6 100644
> > --- a/drivers/platform/x86/toshiba_bluetooth.c
> > +++ b/drivers/platform/x86/toshiba_bluetooth.c
> > @@ -23,14 +23,12 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
> >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
> >  MODULE_LICENSE("GPL");
> >
> > -
> >  static int toshiba_bt_rfkill_add(struct acpi_device *device);
> >  static int toshiba_bt_rfkill_remove(struct acpi_device *device);
> >  static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
> > diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> > index 62e8c22..ba13ade 100644
> > --- a/drivers/platform/x86/wmi.c
> > +++ b/drivers/platform/x86/wmi.c
> > @@ -37,8 +37,6 @@
> >  #include <linux/acpi.h>
> >  #include <linux/slab.h>
> >  #include <linux/module.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >
> >  ACPI_MODULE_NAME("wmi");
> >  MODULE_AUTHOR("Carlos Corbacho");
> > diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> > index 4b1377b..49cbcce 100644
> > --- a/drivers/platform/x86/xo15-ebook.c
> > +++ b/drivers/platform/x86/xo15-ebook.c
> > @@ -18,8 +18,7 @@
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> >  #include <linux/input.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >
> >  #define MODULE_NAME "xo15-ebook"
> >
> > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> > index 14655a0..e869ba6 100644
> > --- a/drivers/pnp/pnpacpi/core.c
> > +++ b/drivers/pnp/pnpacpi/core.c
> > @@ -24,7 +24,6 @@
> >  #include <linux/pnp.h>
> >  #include <linux/slab.h>
> >  #include <linux/mod_devicetable.h>
> > -#include <acpi/acpi_bus.h>
> >
> >  #include "../base.h"
> >  #include "pnpacpi.h"
> > diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
> > index 3e60225..051ef96 100644
> > --- a/drivers/pnp/pnpacpi/pnpacpi.h
> > +++ b/drivers/pnp/pnpacpi/pnpacpi.h
> > @@ -1,7 +1,6 @@
> >  #ifndef ACPI_PNP_H
> >  #define ACPI_PNP_H
> >
> > -#include <acpi/acpi_bus.h>
> >  #include <linux/acpi.h>
> >  #include <linux/pnp.h>
> >
> > diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
> > index f5b4ca5..1c3d127 100644
> > --- a/drivers/sfi/sfi_acpi.c
> > +++ b/drivers/sfi/sfi_acpi.c
> > @@ -60,8 +60,7 @@
> >  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
> >
> >  #include <linux/kernel.h>
> > -#include <acpi/acpi.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <linux/sfi.h>
> >  #include "sfi_core.h"
> >
> > diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
> > index 9f6ebdb..a85c3d6 100644
> > --- a/drivers/staging/quickstart/quickstart.c
> > +++ b/drivers/staging/quickstart/quickstart.c
> > @@ -31,7 +31,7 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/input.h>
> >
> > diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
> > index 4e243c3..11c6569 100644
> > --- a/drivers/usb/core/usb-acpi.c
> > +++ b/drivers/usb/core/usb-acpi.c
> > @@ -16,7 +16,6 @@
> >  #include <linux/acpi.h>
> >  #include <linux/pci.h>
> >  #include <linux/usb/hcd.h>
> > -#include <acpi/acpi_bus.h>
> >
> >  #include "usb.h"
> >
> > diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
> > index 73496c3..80875fb 100644
> > --- a/drivers/xen/xen-acpi-cpuhotplug.c
> > +++ b/drivers/xen/xen-acpi-cpuhotplug.c
> > @@ -24,10 +24,7 @@
> >  #include <linux/cpu.h>
> >  #include <linux/acpi.h>
> >  #include <linux/uaccess.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <acpi/processor.h>
> > -
> >  #include <xen/acpi.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
> > index 9b056f0..f8d1862 100644
> > --- a/drivers/xen/xen-acpi-memhotplug.c
> > +++ b/drivers/xen/xen-acpi-memhotplug.c
> > @@ -22,7 +22,6 @@
> >  #include <linux/init.h>
> >  #include <linux/types.h>
> >  #include <linux/acpi.h>
> > -#include <acpi/acpi_drivers.h>
> >  #include <xen/acpi.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> > index 59708fd..40c4bc0 100644
> > --- a/drivers/xen/xen-acpi-pad.c
> > +++ b/drivers/xen/xen-acpi-pad.c
> > @@ -18,11 +18,10 @@
> >
> >  #include <linux/kernel.h>
> >  #include <linux/types.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -#include <asm/xen/hypercall.h>
> > +#include <linux/acpi.h>
> >  #include <xen/interface/version.h>
> >  #include <xen/xen-ops.h>
> > +#include <asm/xen/hypercall.h>
> >
> >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> >  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
> > diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> > index 13bc6c3..7231859 100644
> > --- a/drivers/xen/xen-acpi-processor.c
> > +++ b/drivers/xen/xen-acpi-processor.c
> > @@ -28,10 +28,8 @@
> >  #include <linux/module.h>
> >  #include <linux/types.h>
> >  #include <linux/syscore_ops.h>
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > +#include <linux/acpi.h>
> >  #include <acpi/processor.h>
> > -
> >  #include <xen/xen.h>
> >  #include <xen/interface/platform.h>
> >  #include <asm/xen/hypercall.h>
> > diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> > index 95831e7..b241b73 100644
> > --- a/include/acpi/acpi_bus.h
> > +++ b/include/acpi/acpi_bus.h
> > @@ -28,8 +28,6 @@
> >
> >  #include <linux/device.h>
> >
> > -#include <acpi/acpi.h>
> > -
> >  /* TBD: Make dynamic */
> >  #define ACPI_MAX_HANDLES	10
> >  struct acpi_handle_list {
> > diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> > index 1cedfcb..b124fdb 100644
> > --- a/include/acpi/acpi_drivers.h
> > +++ b/include/acpi/acpi_drivers.h
> > @@ -26,9 +26,6 @@
> >  #ifndef __ACPI_DRIVERS_H__
> >  #define __ACPI_DRIVERS_H__
> >
> > -#include <linux/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > -
> >  #define ACPI_MAX_STRING			80
> >
> >  /*
> > diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> > index b0ffa21..ded96fe 100644
> > --- a/include/linux/acpi_io.h
> > +++ b/include/linux/acpi_io.h
> > @@ -2,7 +2,7 @@
> >  #define _ACPI_IO_H_
> >
> >  #include <linux/io.h>
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >
> >  static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
> >  					    acpi_size size)
> > diff --git a/include/linux/ide.h b/include/linux/ide.h
> > index 46a1422..93b5ca7 100644
> > --- a/include/linux/ide.h
> > +++ b/include/linux/ide.h
> > @@ -18,14 +18,10 @@
> >  #include <linux/completion.h>
> >  #include <linux/pm.h>
> >  #include <linux/mutex.h>
> > -#ifdef CONFIG_BLK_DEV_IDEACPI
> > -#include <acpi/acpi.h>
> > -#endif
> > -#include <asm/byteorder.h>
> > -#include <asm/io.h>
> > -
> >  /* for request_sense */
> >  #include <linux/cdrom.h>
> > +#include <asm/byteorder.h>
> > +#include <asm/io.h>
> >
> >  #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
> >  # define SUPPORT_VLB_SYNC 0
> > diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> > index 8ba7e5b..605cc5c 100644
> > --- a/include/linux/iscsi_ibft.h
> > +++ b/include/linux/iscsi_ibft.h
> > @@ -21,7 +21,7 @@
> >  #ifndef ISCSI_IBFT_H
> >  #define ISCSI_IBFT_H
> >
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >
> >  /*
> >   * Logical location of iSCSI Boot Format Table.
> > diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> > index a2e2f1d..5f2e559 100644
> > --- a/include/linux/pci_hotplug.h
> > +++ b/include/linux/pci_hotplug.h
> > @@ -175,8 +175,7 @@ struct hotplug_params {
> >  };
> >
> >  #ifdef CONFIG_ACPI
> > -#include <acpi/acpi.h>
> > -#include <acpi/acpi_bus.h>
> > +#include <linux/acpi.h>
> >  int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
> >  int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
> >  int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> > diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
> > index 631af63..c9cab82 100644
> > --- a/include/linux/sfi_acpi.h
> > +++ b/include/linux/sfi_acpi.h
> > @@ -60,7 +60,7 @@
> >  #define _LINUX_SFI_ACPI_H
> >
> >  #ifdef CONFIG_SFI
> > -#include <acpi/acpi.h>		/* struct acpi_table_header */
> > +#include <linux/acpi.h>
> >
> >  extern int sfi_acpi_table_parse(char *signature, char *oem_id,
> >  				char *oem_table_id,
> > diff --git a/include/linux/tboot.h b/include/linux/tboot.h
> > index c75128b..9a54b33 100644
> > --- a/include/linux/tboot.h
> > +++ b/include/linux/tboot.h
> > @@ -34,7 +34,7 @@ enum {
> >  };
> >
> >  #ifdef CONFIG_INTEL_TXT
> > -#include <acpi/acpi.h>
> > +#include <linux/acpi.h>
> >  /* used to communicate between tboot and the launched kernel */
> >
> >  #define TB_KEY_SIZE             64   /* 512 bits */
> > diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > index 66cace6..0f10b81 100644
> > --- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > +++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > @@ -25,12 +25,9 @@
> >  #include <linux/module.h>
> >  #include <linux/init.h>
> >  #include <linux/delay.h>
> > -
> > +#include <linux/acpi.h>
> >  #include <asm/io.h>
> >
> > -#include <acpi/acpi_bus.h>
> > -#include <acpi/acpi_drivers.h>
> > -
> >  static int pm_tmr_ioport = 0;
> >
> >  /*helper function to safely read acpi pm timesource*/
> >
> --
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-27  0:29       ` Rafael J. Wysocki
@ 2013-11-28  1:12         ` Zheng, Lv
  0 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-11-28  1:12 UTC (permalink / raw)
  To: Rafael J. Wysocki, Konrad Rzeszutek Wilk
  Cc: boris.ostrovsky, david.vrabel, Greg Kroah-Hartman, Bjorn Helgaas,
	H. Peter Anvin, Matthew Garrett, Luck, Tony, Wysocki, Rafael J,
	Brown, Len, Lv Zheng, linux-acpi, LKML

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 3503 bytes --]

> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki
> Sent: Wednesday, November 27, 2013 8:29 AM
> 
> On Tuesday, November 26, 2013 03:29:05 PM Konrad Rzeszutek Wilk wrote:
> > On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:
> > > On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > > > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > > > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > > >
> > > > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > > > should not be included directly from any files that are built for
> > > > CONFIG_ACPI unset, because that generally leads to build warnings about
> > > > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > > > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > > > ACPI symbols to be used in that case.
> > > >
> > > > Second, there are ordering dependencies between those files that always
> > > > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > > > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > > > latter depends on are always there.  And <acpi/acpi.h> which provides
> > > > basic ACPICA type declarations should always be included prior to any other
> > > > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > > > <linux/acpi.h> as appropriate.
> > > >
> > > > This patch also includes necessary cleanups in the affected files where
> > > > other ACPI headers is also included but not referenced.
> > > >
> > >
> > > This looks OK to me, but it touches several other subsystems.  It's better to
> > > CC such things to linux-kernel at least.
> > >
> > > Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> >
> > CC-ing Boris and David here.
> >
> > I presume the proper compilation tests to make sure they do compile properly
> > has been done.
> 
> Yes and we're going to run it through the auto build machinery anyway.

Hi, Rafael

The revision 1 is written in the style that it wouldn't introduce regressions as:
<acpi/acpi.h> <acpi/acpi_bus.h> <acpi/acpi_drivers.h> is replaced by <linux/acpi.h>.  If there are 2 or more linux/acpi.h inclusions in the same files, then the latter ones are deleted.
And it gets building/booting tested by enabling the affected modules for testing on x86 and x86_64.
The checker enabled tests only showed line number differences.
For special IA64 only modules, they are tested using "make <dirname of file>/<basename of file>.o" with necessary -D passed through command line.

I the revision 2, there are <asm/xxx.h> order changes, it thus may introduce regressions if there are tricks we don't know better than the original authors.
My build tests still showed no issues, but we could feed them a coverage test.
Rafael, hope you can help me do this in your bleeding-edge branch and feel free to modify the commit to fix the issues caused by such tricks.

Thanks and best regards
-Lv

> 
> Thanks,
> Rafael
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29     ` Konrad Rzeszutek Wilk
  2013-11-27  0:29       ` Rafael J. Wysocki
@ 2013-11-28  2:34       ` Zheng, Lv
  1 sibling, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-11-28  2:34 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, Rafael J. Wysocki, boris.ostrovsky, david.vrabel
  Cc: Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Wysocki, Rafael J, Brown, Len,
	Lv Zheng, linux-acpi, LKML

Hi, All

I think:

For <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>, what has been done in this patch is correct as according to my investigation, they are only used for CONFIG_ACPI=y code.

For <acpi/acpi.h> inclusion cleanups, we need to make stubs for ACPICA first or the following files that originally only reference ACPICA structures (for examples, table headers) may face build issues.
As files include them may not be surrounded by "#ifdef CONFIG_ACPI".

The affected files are:
include/linux/tboot.h
include/linux/iscsi_ibft.h
include/linux/acpi_io.h
drivers/iommu/intel_irq_remapping.c
drivers/char/tpm/tpm_acpi.c
arch/x86/kernel/apic/apic_flat_64.c
arch/x86/pci/mmconfig_32.c
include/linux/ide.h

Should we get this issue discussed prior than doing an <acpi/acpi.h> cleanups?

Thanks and best regards
-Lv

> -----Original Message-----
> From: Konrad Rzeszutek Wilk [mailto:konrad.wilk@oracle.com]
> Sent: Wednesday, November 27, 2013 4:29 AM
> To: Rafael J. Wysocki; boris.ostrovsky@oracle.com; david.vrabel@citrix.com
> Cc: Zheng, Lv; Greg Kroah-Hartman; Bjorn Helgaas; H. Peter Anvin; Matthew Garrett; Luck, Tony; Wysocki, Rafael J; Brown, Len; Lv
> Zheng; linux-acpi@vger.kernel.org; LKML
> Subject: Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
> 
> On Tue, Nov 26, 2013 at 09:29:33PM +0100, Rafael J. Wysocki wrote:
> > On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > >
> > > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > > should not be included directly from any files that are built for
> > > CONFIG_ACPI unset, because that generally leads to build warnings about
> > > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > > ACPI symbols to be used in that case.
> > >
> > > Second, there are ordering dependencies between those files that always
> > > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > > latter depends on are always there.  And <acpi/acpi.h> which provides
> > > basic ACPICA type declarations should always be included prior to any other
> > > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > > <linux/acpi.h> as appropriate.
> > >
> > > This patch also includes necessary cleanups in the affected files where
> > > other ACPI headers is also included but not referenced.
> > >
> >
> > This looks OK to me, but it touches several other subsystems.  It's better to
> > CC such things to linux-kernel at least.
> >
> > Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> 
> CC-ing Boris and David here.
> 
> I presume the proper compilation tests to make sure they do compile properly
> has been done.
> >
> > Rafael
> >
> >
> > > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > > ---
> > >  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
> > >  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
> > >  arch/x86/kernel/apic/io_apic.c                       |    3 ---
> > >  arch/x86/pci/mmconfig_32.c                           |    1 -
> > >  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
> > >  drivers/acpi/ac.c                                    |    3 +--
> > >  drivers/acpi/acpi_extlog.c                           |    1 -
> > >  drivers/acpi/acpi_pad.c                              |    3 +--
> > >  drivers/acpi/apei/einj.c                             |    1 -
> > >  drivers/acpi/battery.c                               |    3 +--
> > >  drivers/acpi/blacklist.c                             |    1 -
> > >  drivers/acpi/bus.c                                   |    2 --
> > >  drivers/acpi/button.c                                |    3 +--
> > >  drivers/acpi/custom_method.c                         |    2 +-
> > >  drivers/acpi/debugfs.c                               |    2 +-
> > >  drivers/acpi/dock.c                                  |    2 --
> > >  drivers/acpi/ec.c                                    |    5 ++---
> > >  drivers/acpi/event.c                                 |    2 +-
> > >  drivers/acpi/fan.c                                   |    3 +--
> > >  drivers/acpi/hed.c                                   |    2 --
> > >  drivers/acpi/numa.c                                  |    1 -
> > >  drivers/acpi/osl.c                                   |    3 ---
> > >  drivers/acpi/pci_irq.c                               |    2 --
> > >  drivers/acpi/pci_link.c                              |    4 +---
> > >  drivers/acpi/pci_root.c                              |    4 +---
> > >  drivers/acpi/power.c                                 |    3 +--
> > >  drivers/acpi/proc.c                                  |    4 +---
> > >  drivers/acpi/processor_core.c                        |    3 +--
> > >  drivers/acpi/processor_idle.c                        |    4 +---
> > >  drivers/acpi/processor_perflib.c                     |    7 ++-----
> > >  drivers/acpi/processor_thermal.c                     |    7 ++-----
> > >  drivers/acpi/processor_throttling.c                  |    7 ++-----
> > >  drivers/acpi/sbshc.c                                 |    3 +--
> > >  drivers/acpi/scan.c                                  |    3 ---
> > >  drivers/acpi/sleep.c                                 |    4 ----
> > >  drivers/acpi/sysfs.c                                 |    2 +-
> > >  drivers/acpi/thermal.c                               |    5 ++---
> > >  drivers/acpi/utils.c                                 |    2 --
> > >  drivers/acpi/video.c                                 |    5 ++---
> > >  drivers/acpi/wakeup.c                                |    1 -
> > >  drivers/ata/libata-acpi.c                            |    2 --
> > >  drivers/ata/pata_acpi.c                              |    5 ++---
> > >  drivers/char/hpet.c                                  |    7 ++-----
> > >  drivers/char/tpm/tpm_acpi.c                          |    2 +-
> > >  drivers/char/tpm/tpm_ppi.c                           |    1 -
> > >  drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
> > >  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
> > >  drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
> > >  drivers/hv/vmbus_drv.c                               |    2 --
> > >  drivers/hwmon/acpi_power_meter.c                     |    3 +--
> > >  drivers/hwmon/asus_atk0110.c                         |    6 +-----
> > >  drivers/ide/ide-acpi.c                               |    1 -
> > >  drivers/input/misc/atlas_btns.c                      |    2 +-
> > >  drivers/iommu/amd_iommu_init.c                       |    1 -
> > >  drivers/iommu/intel_irq_remapping.c                  |    4 ++--
> > >  drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
> > >  drivers/pci/hotplug/pciehp.h                         |    2 --
> > >  drivers/pci/ioapic.c                                 |    1 -
> > >  drivers/pci/pci-acpi.c                               |    3 ---
> > >  drivers/pci/pci-label.c                              |    1 -
> > >  drivers/platform/x86/acer-wmi.c                      |    2 --
> > >  drivers/platform/x86/asus-laptop.c                   |    3 +--
> > >  drivers/platform/x86/asus-wmi.c                      |    3 +--
> > >  drivers/platform/x86/classmate-laptop.c              |    3 +--
> > >  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
> > >  drivers/platform/x86/dell-wmi.c                      |    1 -
> > >  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
> > >  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
> > >  drivers/platform/x86/hp_accel.c                      |    2 +-
> > >  drivers/platform/x86/ideapad-laptop.c                |    3 +--
> > >  drivers/platform/x86/intel-rst.c                     |    2 +-
> > >  drivers/platform/x86/intel-smartconnect.c            |    2 +-
> > >  drivers/platform/x86/intel_menlow.c                  |    4 +---
> > >  drivers/platform/x86/intel_oaktrail.c                |    3 ---
> > >  drivers/platform/x86/mxm-wmi.c                       |    3 +--
> > >  drivers/platform/x86/panasonic-laptop.c              |    4 +---
> > >  drivers/platform/x86/pvpanic.c                       |    3 +--
> > >  drivers/platform/x86/samsung-q10.c                   |    2 +-
> > >  drivers/platform/x86/sony-laptop.c                   |    4 +---
> > >  drivers/platform/x86/tc1100-wmi.c                    |    4 +---
> > >  drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
> > >  drivers/platform/x86/toshiba_acpi.c                  |    4 +---
> > >  drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
> > >  drivers/platform/x86/wmi.c                           |    2 --
> > >  drivers/platform/x86/xo15-ebook.c                    |    3 +--
> > >  drivers/pnp/pnpacpi/core.c                           |    1 -
> > >  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
> > >  drivers/sfi/sfi_acpi.c                               |    3 +--
> > >  drivers/staging/quickstart/quickstart.c              |    2 +-
> > >  drivers/usb/core/usb-acpi.c                          |    1 -
> > >  drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
> > >  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
> > >  drivers/xen/xen-acpi-pad.c                           |    5 ++---
> > >  drivers/xen/xen-acpi-processor.c                     |    4 +---
> > >  include/acpi/acpi_bus.h                              |    2 --
> > >  include/acpi/acpi_drivers.h                          |    3 ---
> > >  include/linux/acpi_io.h                              |    2 +-
> > >  include/linux/ide.h                                  |    8 ++------
> > >  include/linux/iscsi_ibft.h                           |    2 +-
> > >  include/linux/pci_hotplug.h                          |    3 +--
> > >  include/linux/sfi_acpi.h                             |    2 +-
> > >  include/linux/tboot.h                                |    2 +-
> > >  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
> > >  103 files changed, 80 insertions(+), 235 deletions(-)
> > >
> > > diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> > > index 916ffe7..84715fc 100644
> > > --- a/arch/ia64/hp/common/aml_nfw.c
> > > +++ b/arch/ia64/hp/common/aml_nfw.c
> > > @@ -23,8 +23,7 @@
> > >   */
> > >
> > >  #include <linux/module.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/sal.h>
> > >
> > >  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> > > diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> > > index 00c77cf..ccbf857 100644
> > > --- a/arch/x86/kernel/apic/apic_flat_64.c
> > > +++ b/arch/x86/kernel/apic/apic_flat_64.c
> > > @@ -21,9 +21,7 @@
> > >  #include <asm/apic.h>
> > >  #include <asm/ipi.h>
> > >
> > > -#ifdef CONFIG_ACPI
> > > -#include <acpi/acpi_bus.h>
> > > -#endif
> > > +#include <linux/acpi.h>
> > >
> > >  static struct apic apic_physflat;
> > >  static struct apic apic_flat;
> > > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> > > index e63a5bd..4d67a75 100644
> > > --- a/arch/x86/kernel/apic/io_apic.c
> > > +++ b/arch/x86/kernel/apic/io_apic.c
> > > @@ -37,9 +37,6 @@
> > >  #include <linux/kthread.h>
> > >  #include <linux/jiffies.h>	/* time_after() */
> > >  #include <linux/slab.h>
> > > -#ifdef CONFIG_ACPI
> > > -#include <acpi/acpi_bus.h>
> > > -#endif
> > >  #include <linux/bootmem.h>
> > >  #include <linux/dmar.h>
> > >  #include <linux/hpet.h>
> > > diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
> > > index 5c90975..43984bc 100644
> > > --- a/arch/x86/pci/mmconfig_32.c
> > > +++ b/arch/x86/pci/mmconfig_32.c
> > > @@ -14,7 +14,6 @@
> > >  #include <linux/rcupdate.h>
> > >  #include <asm/e820.h>
> > >  #include <asm/pci_x86.h>
> > > -#include <acpi/acpi.h>
> > >
> > >  /* Assume systems with more busses have correct MCFG */
> > >  #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
> > > diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > > index 649a12b..08e350e 100644
> > > --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> > > +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> > > @@ -15,8 +15,7 @@
> > >  #include <linux/power_supply.h>
> > >  #include <linux/olpc-ec.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/olpc.h>
> > >
> > >  #define DRV_NAME			"olpc-xo15-sci"
> > > diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> > > index 8711e37..8095943 100644
> > > --- a/drivers/acpi/ac.c
> > > +++ b/drivers/acpi/ac.c
> > > @@ -32,8 +32,7 @@
> > >  #include <linux/delay.h>
> > >  #include <linux/platform_device.h>
> > >  #include <linux/power_supply.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> > > index a6869e1..2635a01 100644
> > > --- a/drivers/acpi/acpi_extlog.c
> > > +++ b/drivers/acpi/acpi_extlog.c
> > > @@ -9,7 +9,6 @@
> > >
> > >  #include <linux/module.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/cper.h>
> > >  #include <linux/ratelimit.h>
> > >  #include <asm/cpu.h>
> > > diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> > > index fc6008f..65610c0 100644
> > > --- a/drivers/acpi/acpi_pad.c
> > > +++ b/drivers/acpi/acpi_pad.c
> > > @@ -28,8 +28,7 @@
> > >  #include <linux/cpu.h>
> > >  #include <linux/clockchips.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/mwait.h>
> > >
> > >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> > > diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> > > index fb57d03..ca0c6d7 100644
> > > --- a/drivers/acpi/apei/einj.c
> > > +++ b/drivers/acpi/apei/einj.c
> > > @@ -33,7 +33,6 @@
> > >  #include <linux/nmi.h>
> > >  #include <linux/delay.h>
> > >  #include <linux/mm.h>
> > > -#include <acpi/acpi.h>
> > >
> > >  #include "apei-internal.h"
> > >
> > > diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> > > index fbf1ace..e90ef8b 100644
> > > --- a/drivers/acpi/battery.c
> > > +++ b/drivers/acpi/battery.c
> > > @@ -36,8 +36,7 @@
> > >  #include <linux/suspend.h>
> > >  #include <asm/unaligned.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/power_supply.h>
> > >
> > >  #define PREFIX "ACPI: "
> > > diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> > > index 078c4f7..05ee8f6 100644
> > > --- a/drivers/acpi/blacklist.c
> > > +++ b/drivers/acpi/blacklist.c
> > > @@ -30,7 +30,6 @@
> > >  #include <linux/kernel.h>
> > >  #include <linux/init.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/dmi.h>
> > >
> > >  #include "internal.h"
> > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> > > index f509019..2c38ae2 100644
> > > --- a/drivers/acpi/bus.c
> > > +++ b/drivers/acpi/bus.c
> > > @@ -37,8 +37,6 @@
> > >  #include <asm/mpspec.h>
> > >  #endif
> > >  #include <linux/pci.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <acpi/apei.h>
> > >  #include <linux/dmi.h>
> > >  #include <linux/suspend.h>
> > > diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> > > index c971929..9e3a6cb 100644
> > > --- a/drivers/acpi/button.c
> > > +++ b/drivers/acpi/button.c
> > > @@ -31,8 +31,7 @@
> > >  #include <linux/seq_file.h>
> > >  #include <linux/input.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/button.h>
> > >
> > >  #define PREFIX "ACPI: "
> > > diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> > > index 12b62f2..c68e724 100644
> > > --- a/drivers/acpi/custom_method.c
> > > +++ b/drivers/acpi/custom_method.c
> > > @@ -7,7 +7,7 @@
> > >  #include <linux/kernel.h>
> > >  #include <linux/uaccess.h>
> > >  #include <linux/debugfs.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> > > index b55d6a2..6b1919f 100644
> > > --- a/drivers/acpi/debugfs.c
> > > +++ b/drivers/acpi/debugfs.c
> > > @@ -5,7 +5,7 @@
> > >  #include <linux/export.h>
> > >  #include <linux/init.h>
> > >  #include <linux/debugfs.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> > >  ACPI_MODULE_NAME("debugfs");
> > > diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> > > index de03201..8da6be9 100644
> > > --- a/drivers/acpi/dock.c
> > > +++ b/drivers/acpi/dock.c
> > > @@ -32,8 +32,6 @@
> > >  #include <linux/jiffies.h>
> > >  #include <linux/stddef.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> > > index ba5b56d..ff40120 100644
> > > --- a/drivers/acpi/ec.c
> > > +++ b/drivers/acpi/ec.c
> > > @@ -39,10 +39,9 @@
> > >  #include <linux/list.h>
> > >  #include <linux/spinlock.h>
> > >  #include <linux/slab.h>
> > > -#include <asm/io.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/dmi.h>
> > > +#include <asm/io.h>
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> > > index cae3b38..ef2d730 100644
> > > --- a/drivers/acpi/event.c
> > > +++ b/drivers/acpi/event.c
> > > @@ -12,7 +12,7 @@
> > >  #include <linux/init.h>
> > >  #include <linux/poll.h>
> > >  #include <linux/gfp.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <net/netlink.h>
> > >  #include <net/genetlink.h>
> > >
> > > diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> > > index ba3da88..1fb6290 100644
> > > --- a/drivers/acpi/fan.c
> > > +++ b/drivers/acpi/fan.c
> > > @@ -29,8 +29,7 @@
> > >  #include <linux/types.h>
> > >  #include <asm/uaccess.h>
> > >  #include <linux/thermal.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> > > index 13b1d39..aafe3ca 100644
> > > --- a/drivers/acpi/hed.c
> > > +++ b/drivers/acpi/hed.c
> > > @@ -25,8 +25,6 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <acpi/hed.h>
> > >
> > >  static struct acpi_device_id acpi_hed_ids[] = {
> > > diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> > > index a2343a1..9e6816e 100644
> > > --- a/drivers/acpi/numa.c
> > > +++ b/drivers/acpi/numa.c
> > > @@ -29,7 +29,6 @@
> > >  #include <linux/errno.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/numa.h>
> > > -#include <acpi/acpi_bus.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> > > index 5b9a785..7e2d814 100644
> > > --- a/drivers/acpi/osl.c
> > > +++ b/drivers/acpi/osl.c
> > > @@ -49,9 +49,6 @@
> > >  #include <asm/io.h>
> > >  #include <asm/uaccess.h>
> > >
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/processor.h>
> > >  #include "internal.h"
> > >
> > >  #define _COMPONENT		ACPI_OS_SERVICES
> > > diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> > > index 41c5e1b..52d45ea 100644
> > > --- a/drivers/acpi/pci_irq.c
> > > +++ b/drivers/acpi/pci_irq.c
> > > @@ -37,8 +37,6 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > > index 2652a61..ea6b8d1 100644
> > > --- a/drivers/acpi/pci_link.c
> > > +++ b/drivers/acpi/pci_link.c
> > > @@ -39,9 +39,7 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/mutex.h>
> > >  #include <linux/slab.h>
> > > -
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> > > index 2dd11e0..afafee5 100644
> > > --- a/drivers/acpi/pci_root.c
> > > +++ b/drivers/acpi/pci_root.c
> > > @@ -35,9 +35,7 @@
> > >  #include <linux/pci-aspm.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/apei.h>
> > > +#include <acpi/apei.h>	/* for acpi_hest_init() */
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> > > index c2ad391..ad7da68 100644
> > > --- a/drivers/acpi/power.c
> > > +++ b/drivers/acpi/power.c
> > > @@ -42,8 +42,7 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/pm_runtime.h>
> > >  #include <linux/sysfs.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include "sleep.h"
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> > > index 6a5b152..db061bf 100644
> > > --- a/drivers/acpi/proc.c
> > > +++ b/drivers/acpi/proc.c
> > > @@ -3,11 +3,9 @@
> > >  #include <linux/export.h>
> > >  #include <linux/suspend.h>
> > >  #include <linux/bcd.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/uaccess.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  #include "sleep.h"
> > >
> > >  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> > > diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> > > index b3171f3..34e7b3c 100644
> > > --- a/drivers/acpi/processor_core.c
> > > +++ b/drivers/acpi/processor_core.c
> > > @@ -10,8 +10,7 @@
> > >  #include <linux/export.h>
> > >  #include <linux/dmi.h>
> > >  #include <linux/slab.h>
> > > -
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/processor.h>
> > >
> > >  #include "internal.h"
> > > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> > > index 644516d..d2d44e0 100644
> > > --- a/drivers/acpi/processor_idle.c
> > > +++ b/drivers/acpi/processor_idle.c
> > > @@ -35,6 +35,7 @@
> > >  #include <linux/clockchips.h>
> > >  #include <linux/cpuidle.h>
> > >  #include <linux/syscore_ops.h>
> > > +#include <acpi/processor.h>
> > >
> > >  /*
> > >   * Include the apic definitions for x86 to have the APIC timer related defines
> > > @@ -46,9 +47,6 @@
> > >  #include <asm/apic.h>
> > >  #endif
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/processor.h>
> > > -
> > >  #define PREFIX "ACPI: "
> > >
> > >  #define ACPI_PROCESSOR_CLASS            "processor"
> > > diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> > > index 60a7c28..ff90054 100644
> > > --- a/drivers/acpi/processor_perflib.c
> > > +++ b/drivers/acpi/processor_perflib.c
> > > @@ -31,15 +31,12 @@
> > >  #include <linux/init.h>
> > >  #include <linux/cpufreq.h>
> > >  #include <linux/slab.h>
> > > -
> > > +#include <linux/acpi.h>
> > > +#include <acpi/processor.h>
> > >  #ifdef CONFIG_X86
> > >  #include <asm/cpufeature.h>
> > >  #endif
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/processor.h>
> > > -
> > >  #define PREFIX "ACPI: "
> > >
> > >  #define ACPI_PROCESSOR_CLASS		"processor"
> > > diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> > > index d1d2e7f..f95e758 100644
> > > --- a/drivers/acpi/processor_thermal.c
> > > +++ b/drivers/acpi/processor_thermal.c
> > > @@ -30,12 +30,9 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/cpufreq.h>
> > > -
> > > -#include <asm/uaccess.h>
> > > -
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/processor.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <asm/uaccess.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> > > index e7dd2c1..28baa05 100644
> > > --- a/drivers/acpi/processor_throttling.c
> > > +++ b/drivers/acpi/processor_throttling.c
> > > @@ -32,14 +32,11 @@
> > >  #include <linux/init.h>
> > >  #include <linux/sched.h>
> > >  #include <linux/cpufreq.h>
> > > -
> > > +#include <linux/acpi.h>
> > > +#include <acpi/processor.h>
> > >  #include <asm/io.h>
> > >  #include <asm/uaccess.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/processor.h>
> > > -
> > >  #define PREFIX "ACPI: "
> > >
> > >  #define ACPI_PROCESSOR_CLASS            "processor"
> > > diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> > > index b78bc60..26e5b50 100644
> > > --- a/drivers/acpi/sbshc.c
> > > +++ b/drivers/acpi/sbshc.c
> > > @@ -8,8 +8,7 @@
> > >   * the Free Software Foundation version 2.
> > >   */
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/wait.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/delay.h>
> > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> > > index 311904c..d564367 100644
> > > --- a/drivers/acpi/scan.c
> > > +++ b/drivers/acpi/scan.c
> > > @@ -11,9 +11,6 @@
> > >  #include <linux/kthread.h>
> > >  #include <linux/dmi.h>
> > >  #include <linux/nls.h>
> > > -
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  #include <asm/pgtable.h>
> > >
> > >  #include "internal.h"
> > > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> > > index 721e949..208ac8c 100644
> > > --- a/drivers/acpi/sleep.c
> > > +++ b/drivers/acpi/sleep.c
> > > @@ -18,12 +18,8 @@
> > >  #include <linux/reboot.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/module.h>
> > > -
> > >  #include <asm/io.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  #include "internal.h"
> > >  #include "sleep.h"
> > >
> > > diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> > > index 6dbc3ca..443dc93 100644
> > > --- a/drivers/acpi/sysfs.c
> > > +++ b/drivers/acpi/sysfs.c
> > > @@ -5,7 +5,7 @@
> > >  #include <linux/init.h>
> > >  #include <linux/kernel.h>
> > >  #include <linux/moduleparam.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> > > index 0d9f46b..1fd21ad 100644
> > > --- a/drivers/acpi/thermal.c
> > > +++ b/drivers/acpi/thermal.c
> > > @@ -41,10 +41,9 @@
> > >  #include <linux/kmod.h>
> > >  #include <linux/reboot.h>
> > >  #include <linux/device.h>
> > > -#include <asm/uaccess.h>
> > >  #include <linux/thermal.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > > +#include <asm/uaccess.h>
> > >
> > >  #define PREFIX "ACPI: "
> > >
> > > diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> > > index 6d408bf..1336b91 100644
> > > --- a/drivers/acpi/utils.c
> > > +++ b/drivers/acpi/utils.c
> > > @@ -30,8 +30,6 @@
> > >  #include <linux/types.h>
> > >  #include <linux/hardirq.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> > > index 995e91b..b727d10 100644
> > > --- a/drivers/acpi/video.c
> > > +++ b/drivers/acpi/video.c
> > > @@ -37,12 +37,11 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/pci_ids.h>
> > >  #include <linux/slab.h>
> > > -#include <asm/uaccess.h>
> > >  #include <linux/dmi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <linux/suspend.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/video.h>
> > > +#include <asm/uaccess.h>
> > >
> > >  #include "internal.h"
> > >
> > > diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
> > > index 7bfbe40..1638401 100644
> > > --- a/drivers/acpi/wakeup.c
> > > +++ b/drivers/acpi/wakeup.c
> > > @@ -5,7 +5,6 @@
> > >
> > >  #include <linux/init.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <linux/kernel.h>
> > >  #include <linux/types.h>
> > >
> > > diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
> > > index 4372cfa..8e22d97 100644
> > > --- a/drivers/ata/libata-acpi.c
> > > +++ b/drivers/ata/libata-acpi.c
> > > @@ -20,8 +20,6 @@
> > >  #include <scsi/scsi_device.h>
> > >  #include "libata.h"
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -
> > >  unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
> > >  module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
> > >  MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze
> lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
> > > diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
> > > index 73212c9..62c9ac8 100644
> > > --- a/drivers/ata/pata_acpi.c
> > > +++ b/drivers/ata/pata_acpi.c
> > > @@ -12,11 +12,10 @@
> > >  #include <linux/delay.h>
> > >  #include <linux/device.h>
> > >  #include <linux/gfp.h>
> > > -#include <scsi/scsi_host.h>
> > > -#include <acpi/acpi_bus.h>
> > > -
> > > +#include <linux/acpi.h>
> > >  #include <linux/libata.h>
> > >  #include <linux/ata.h>
> > > +#include <scsi/scsi_host.h>
> > >
> > >  #define DRV_NAME	"pata_acpi"
> > >  #define DRV_VERSION	"0.2.3"
> > > diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> > > index 5d9c31d..d5d4cd8 100644
> > > --- a/drivers/char/hpet.c
> > > +++ b/drivers/char/hpet.c
> > > @@ -34,15 +34,12 @@
> > >  #include <linux/uaccess.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/io.h>
> > > -
> > > +#include <linux/acpi.h>
> > > +#include <linux/hpet.h>
> > >  #include <asm/current.h>
> > >  #include <asm/irq.h>
> > >  #include <asm/div64.h>
> > >
> > > -#include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <linux/hpet.h>
> > > -
> > >  /*
> > >   * The High Precision Event Timer driver.
> > >   * This driver is closely modelled after the rtc.c driver.
> > > diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> > > index 64420b3..b9a57fa 100644
> > > --- a/drivers/char/tpm/tpm_acpi.c
> > > +++ b/drivers/char/tpm/tpm_acpi.c
> > > @@ -23,7 +23,7 @@
> > >  #include <linux/security.h>
> > >  #include <linux/module.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #include "tpm.h"
> > >  #include "tpm_eventlog.h"
> > > diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> > > index 8e562dc..dd60ef3 100644
> > > --- a/drivers/char/tpm/tpm_ppi.c
> > > +++ b/drivers/char/tpm/tpm_ppi.c
> > > @@ -1,5 +1,4 @@
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include "tpm.h"
> > >
> > >  static const u8 tpm_ppi_uuid[] = {
> > > diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
> > > index dfff090..5325b25 100644
> > > --- a/drivers/gpu/drm/i915/intel_acpi.c
> > > +++ b/drivers/gpu/drm/i915/intel_acpi.c
> > > @@ -6,8 +6,6 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/vga_switcheroo.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  #include <drm/drmP.h>
> > >  #include "i915_drv.h"
> > >
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > > index 95c7404..1f0b6d2 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> > > @@ -1,15 +1,10 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/video.h>
> > > -#include <acpi/acpi.h>
> > >  #include <linux/mxm-wmi.h>
> > > -
> > >  #include <linux/vga_switcheroo.h>
> > > -
> > >  #include <drm/drm_edid.h>
> > > +#include <acpi/video.h>
> > >
> > >  #include "nouveau_drm.h"
> > >  #include "nouveau_acpi.h"
> > > diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
> > > index 98a9074..77e9d07 100644
> > > --- a/drivers/gpu/drm/radeon/radeon_acpi.c
> > > +++ b/drivers/gpu/drm/radeon/radeon_acpi.c
> > > @@ -25,18 +25,14 @@
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/power_supply.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/vga_switcheroo.h>
> > >  #include <acpi/video.h>
> > > -
> > >  #include <drm/drmP.h>
> > >  #include <drm/drm_crtc_helper.h>
> > >  #include "radeon.h"
> > >  #include "radeon_acpi.h"
> > >  #include "atom.h"
> > >
> > > -#include <linux/vga_switcheroo.h>
> > > -
> > >  #define ACPI_AC_CLASS           "ac_adapter"
> > >
> > >  extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
> > > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> > > index 48aad4f..077bb1b 100644
> > > --- a/drivers/hv/vmbus_drv.c
> > > +++ b/drivers/hv/vmbus_drv.c
> > > @@ -30,7 +30,6 @@
> > >  #include <linux/sysctl.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/completion.h>
> > >  #include <linux/hyperv.h>
> > >  #include <linux/kernel_stat.h>
> > > @@ -39,7 +38,6 @@
> > >  #include <asm/mshyperv.h>
> > >  #include "hyperv_vmbus.h"
> > >
> > > -
> > >  static struct acpi_device  *hv_acpi_dev;
> > >
> > >  static struct tasklet_struct msg_dpc;
> > > diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
> > > index 6a34f7f..579bdf9 100644
> > > --- a/drivers/hwmon/acpi_power_meter.c
> > > +++ b/drivers/hwmon/acpi_power_meter.c
> > > @@ -30,8 +30,7 @@
> > >  #include <linux/sched.h>
> > >  #include <linux/time.h>
> > >  #include <linux/err.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define ACPI_POWER_METER_NAME		"power_meter"
> > >  ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
> > > diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> > > index dafc63c..ae208f6 100644
> > > --- a/drivers/hwmon/asus_atk0110.c
> > > +++ b/drivers/hwmon/asus_atk0110.c
> > > @@ -16,11 +16,7 @@
> > >  #include <linux/dmi.h>
> > >  #include <linux/jiffies.h>
> > >  #include <linux/err.h>
> > > -
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > -
> > > +#include <linux/acpi.h>
> > >
> > >  #define ATK_HID "ATK0110"
> > >
> > > diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
> > > index d9e1f7c..333d405 100644
> > > --- a/drivers/ide/ide-acpi.c
> > > +++ b/drivers/ide/ide-acpi.c
> > > @@ -14,7 +14,6 @@
> > >  #include <linux/errno.h>
> > >  #include <linux/kernel.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi.h>
> > >  #include <linux/ide.h>
> > >  #include <linux/pci.h>
> > >  #include <linux/dmi.h>
> > > diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
> > > index 5d44023..d781b5e 100644
> > > --- a/drivers/input/misc/atlas_btns.c
> > > +++ b/drivers/input/misc/atlas_btns.c
> > > @@ -28,8 +28,8 @@
> > >  #include <linux/init.h>
> > >  #include <linux/input.h>
> > >  #include <linux/types.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/uaccess.h>
> > > -#include <acpi/acpi_drivers.h>
> > >
> > >  #define ACPI_ATLAS_NAME		"Atlas ACPI"
> > >  #define ACPI_ATLAS_CLASS	"Atlas"
> > > diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> > > index 8f798be..28b4bea 100644
> > > --- a/drivers/iommu/amd_iommu_init.c
> > > +++ b/drivers/iommu/amd_iommu_init.c
> > > @@ -26,7 +26,6 @@
> > >  #include <linux/msi.h>
> > >  #include <linux/amd-iommu.h>
> > >  #include <linux/export.h>
> > > -#include <acpi/acpi.h>
> > >  #include <asm/pci-direct.h>
> > >  #include <asm/iommu.h>
> > >  #include <asm/gart.h>
> > > diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> > > index bab10b1..0cb7528 100644
> > > --- a/drivers/iommu/intel_irq_remapping.c
> > > +++ b/drivers/iommu/intel_irq_remapping.c
> > > @@ -6,11 +6,11 @@
> > >  #include <linux/hpet.h>
> > >  #include <linux/pci.h>
> > >  #include <linux/irq.h>
> > > +#include <linux/intel-iommu.h>
> > > +#include <linux/acpi.h>
> > >  #include <asm/io_apic.h>
> > >  #include <asm/smp.h>
> > >  #include <asm/cpu.h>
> > > -#include <linux/intel-iommu.h>
> > > -#include <acpi/acpi.h>
> > >  #include <asm/irq_remapping.h>
> > >  #include <asm/pci-direct.h>
> > >  #include <asm/msidef.h>
> > > diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
> > > index ecfac7e..8dcccff 100644
> > > --- a/drivers/pci/hotplug/acpiphp_ibm.c
> > > +++ b/drivers/pci/hotplug/acpiphp_ibm.c
> > > @@ -31,12 +31,11 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/module.h>
> > >  #include <linux/kernel.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/sysfs.h>
> > >  #include <linux/kobject.h>
> > > -#include <asm/uaccess.h>
> > >  #include <linux/moduleparam.h>
> > >  #include <linux/pci.h>
> > > +#include <asm/uaccess.h>
> > >
> > >  #include "acpiphp.h"
> > >  #include "../pci.h"
> > > diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
> > > index 21e865d..24e147c 100644
> > > --- a/drivers/pci/hotplug/pciehp.h
> > > +++ b/drivers/pci/hotplug/pciehp.h
> > > @@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
> > >  }
> > >
> > >  #ifdef CONFIG_ACPI
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/pci-acpi.h>
> > >
> > >  void __init pciehp_acpi_slot_detection_init(void);
> > > diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
> > > index 50ce680..2122b2b 100644
> > > --- a/drivers/pci/ioapic.c
> > > +++ b/drivers/pci/ioapic.c
> > > @@ -20,7 +20,6 @@
> > >  #include <linux/module.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > >
> > >  struct ioapic {
> > >  	acpi_handle	handle;
> > > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> > > index 577074e..43e3179 100644
> > > --- a/drivers/pci/pci-acpi.c
> > > +++ b/drivers/pci/pci-acpi.c
> > > @@ -12,9 +12,6 @@
> > >  #include <linux/pci.h>
> > >  #include <linux/module.h>
> > >  #include <linux/pci-aspm.h>
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -
> > >  #include <linux/pci-acpi.h>
> > >  #include <linux/pm_runtime.h>
> > >  #include <linux/pm_qos.h>
> > > diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> > > index d51f45a..dbafcc8 100644
> > > --- a/drivers/pci/pci-label.c
> > > +++ b/drivers/pci/pci-label.c
> > > @@ -29,7 +29,6 @@
> > >  #include <linux/nls.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/pci-acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > >  #include "pci.h"
> > >
> > >  #define	DEVICE_LABEL_DSM	0x07
> > > diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> > > index c9076bd..c91f69b3 100644
> > > --- a/drivers/platform/x86/acer-wmi.c
> > > +++ b/drivers/platform/x86/acer-wmi.c
> > > @@ -41,8 +41,6 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/input.h>
> > >  #include <linux/input/sparse-keymap.h>
> > > -
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <acpi/video.h>
> > >
> > >  MODULE_AUTHOR("Carlos Corbacho");
> > > diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> > > index 0e9c169..430b5c3 100644
> > > --- a/drivers/platform/x86/asus-laptop.c
> > > +++ b/drivers/platform/x86/asus-laptop.c
> > > @@ -53,8 +53,7 @@
> > >  #include <linux/rfkill.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/dmi.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define ASUS_LAPTOP_VERSION	"0.42"
> > >
> > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> > > index 19c313b..df7ecb9 100644
> > > --- a/drivers/platform/x86/asus-wmi.c
> > > +++ b/drivers/platform/x86/asus-wmi.c
> > > @@ -45,8 +45,7 @@
> > >  #include <linux/seq_file.h>
> > >  #include <linux/platform_device.h>
> > >  #include <linux/thermal.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/video.h>
> > >
> > >  #include "asus-wmi.h"
> > > diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> > > index 6dfa8d3..70d355a 100644
> > > --- a/drivers/platform/x86/classmate-laptop.c
> > > +++ b/drivers/platform/x86/classmate-laptop.c
> > > @@ -21,14 +21,13 @@
> > >  #include <linux/module.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/workqueue.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/backlight.h>
> > >  #include <linux/input.h>
> > >  #include <linux/rfkill.h>
> > >
> > >  MODULE_LICENSE("GPL");
> > >
> > > -
> > >  struct cmpc_accel {
> > >  	int sensitivity;
> > >  	int g_select;
> > > diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
> > > index bcf8cc6..dbc97a3 100644
> > > --- a/drivers/platform/x86/dell-wmi-aio.c
> > > +++ b/drivers/platform/x86/dell-wmi-aio.c
> > > @@ -24,7 +24,6 @@
> > >  #include <linux/types.h>
> > >  #include <linux/input.h>
> > >  #include <linux/input/sparse-keymap.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/string.h>
> > >
> > > diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> > > index fa9a217..bdf483b 100644
> > > --- a/drivers/platform/x86/dell-wmi.c
> > > +++ b/drivers/platform/x86/dell-wmi.c
> > > @@ -32,7 +32,6 @@
> > >  #include <linux/types.h>
> > >  #include <linux/input.h>
> > >  #include <linux/input/sparse-keymap.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/string.h>
> > >  #include <linux/dmi.h>
> > > diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> > > index aefcc32..cabd567 100644
> > > --- a/drivers/platform/x86/eeepc-laptop.c
> > > +++ b/drivers/platform/x86/eeepc-laptop.c
> > > @@ -28,8 +28,7 @@
> > >  #include <linux/hwmon.h>
> > >  #include <linux/hwmon-sysfs.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/uaccess.h>
> > >  #include <linux/input.h>
> > >  #include <linux/input/sparse-keymap.h>
> > > diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
> > > index af67e6e..6112933 100644
> > > --- a/drivers/platform/x86/eeepc-wmi.c
> > > +++ b/drivers/platform/x86/eeepc-wmi.c
> > > @@ -33,7 +33,7 @@
> > >  #include <linux/input/sparse-keymap.h>
> > >  #include <linux/dmi.h>
> > >  #include <linux/fb.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #include "asus-wmi.h"
> > >
> > > diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> > > index a8e43cf..aff4d06 100644
> > > --- a/drivers/platform/x86/hp_accel.c
> > > +++ b/drivers/platform/x86/hp_accel.c
> > > @@ -36,7 +36,7 @@
> > >  #include <linux/uaccess.h>
> > >  #include <linux/leds.h>
> > >  #include <linux/atomic.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include "../../misc/lis3lv02d/lis3lv02d.h"
> > >
> > >  #define DRIVER_NAME     "hp_accel"
> > > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > > index 6788acc..70b5729 100644
> > > --- a/drivers/platform/x86/ideapad-laptop.c
> > > +++ b/drivers/platform/x86/ideapad-laptop.c
> > > @@ -26,8 +26,7 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/rfkill.h>
> > >  #include <linux/platform_device.h>
> > >  #include <linux/input.h>
> > > diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
> > > index a2083a9..d45bca3 100644
> > > --- a/drivers/platform/x86/intel-rst.c
> > > +++ b/drivers/platform/x86/intel-rst.c
> > > @@ -20,7 +20,7 @@
> > >  #include <linux/init.h>
> > >  #include <linux/module.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_LICENSE("GPL");
> > >
> > > diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
> > > index 1838400..04cf5df 100644
> > > --- a/drivers/platform/x86/intel-smartconnect.c
> > > +++ b/drivers/platform/x86/intel-smartconnect.c
> > > @@ -19,7 +19,7 @@
> > >
> > >  #include <linux/init.h>
> > >  #include <linux/module.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_LICENSE("GPL");
> > >
> > > diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
> > > index 11244f8..e8b46d2 100644
> > > --- a/drivers/platform/x86/intel_menlow.c
> > > +++ b/drivers/platform/x86/intel_menlow.c
> > > @@ -36,10 +36,8 @@
> > >  #include <linux/types.h>
> > >  #include <linux/pci.h>
> > >  #include <linux/pm.h>
> > > -
> > >  #include <linux/thermal.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_AUTHOR("Thomas Sujith");
> > >  MODULE_AUTHOR("Zhang Rui");
> > > diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
> > > index f6f18cd..4bc9604 100644
> > > --- a/drivers/platform/x86/intel_oaktrail.c
> > > +++ b/drivers/platform/x86/intel_oaktrail.c
> > > @@ -50,9 +50,6 @@
> > >  #include <linux/platform_device.h>
> > >  #include <linux/dmi.h>
> > >  #include <linux/rfkill.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >
> > >  #define DRIVER_NAME	"intel_oaktrail"
> > >  #define DRIVER_VERSION	"0.4ac1"
> > > diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
> > > index 0aea63b..3c59c0a 100644
> > > --- a/drivers/platform/x86/mxm-wmi.c
> > > +++ b/drivers/platform/x86/mxm-wmi.c
> > > @@ -20,8 +20,7 @@
> > >  #include <linux/kernel.h>
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_AUTHOR("Dave Airlie");
> > >  MODULE_DESCRIPTION("MXM WMI Driver");
> > > diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
> > > index 10d12b2..137d602 100644
> > > --- a/drivers/platform/x86/panasonic-laptop.c
> > > +++ b/drivers/platform/x86/panasonic-laptop.c
> > > @@ -125,12 +125,10 @@
> > >  #include <linux/seq_file.h>
> > >  #include <linux/uaccess.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/input.h>
> > >  #include <linux/input/sparse-keymap.h>
> > >
> > > -
> > >  #ifndef ACPI_HOTKEY_COMPONENT
> > >  #define ACPI_HOTKEY_COMPONENT	0x10000000
> > >  #endif
> > > diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
> > > index 47ae0c4..c9f6e51 100644
> > > --- a/drivers/platform/x86/pvpanic.c
> > > +++ b/drivers/platform/x86/pvpanic.c
> > > @@ -24,8 +24,7 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
> > >  MODULE_DESCRIPTION("pvpanic device driver");
> > > diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
> > > index cae7098..5413f62 100644
> > > --- a/drivers/platform/x86/samsung-q10.c
> > > +++ b/drivers/platform/x86/samsung-q10.c
> > > @@ -15,7 +15,7 @@
> > >  #include <linux/platform_device.h>
> > >  #include <linux/backlight.h>
> > >  #include <linux/dmi.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define SAMSUNGQ10_BL_MAX_INTENSITY 7
> > >
> > > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> > > index 47caab0..1d00039 100644
> > > --- a/drivers/platform/x86/sony-laptop.c
> > > +++ b/drivers/platform/x86/sony-laptop.c
> > > @@ -61,9 +61,6 @@
> > >  #include <linux/workqueue.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <asm/uaccess.h>
> > >  #include <linux/sonypi.h>
> > >  #include <linux/sony-laptop.h>
> > >  #include <linux/rfkill.h>
> > > @@ -71,6 +68,7 @@
> > >  #include <linux/poll.h>
> > >  #include <linux/miscdevice.h>
> > >  #endif
> > > +#include <asm/uaccess.h>
> > >
> > >  #define dprintk(fmt, ...)			\
> > >  do {						\
> > > diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
> > > index 9b93fdb..6a6ea28 100644
> > > --- a/drivers/platform/x86/tc1100-wmi.c
> > > +++ b/drivers/platform/x86/tc1100-wmi.c
> > > @@ -32,9 +32,7 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/platform_device.h>
> > >
> > >  #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
> > > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> > > index 05e046a..9d7e34b 100644
> > > --- a/drivers/platform/x86/thinkpad_acpi.c
> > > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > > @@ -61,7 +61,6 @@
> > >  #include <linux/freezer.h>
> > >  #include <linux/delay.h>
> > >  #include <linux/slab.h>
> > > -
> > >  #include <linux/nvram.h>
> > >  #include <linux/proc_fs.h>
> > >  #include <linux/seq_file.h>
> > > @@ -74,21 +73,16 @@
> > >  #include <linux/input.h>
> > >  #include <linux/leds.h>
> > >  #include <linux/rfkill.h>
> > > -#include <asm/uaccess.h>
> > > -
> > >  #include <linux/dmi.h>
> > >  #include <linux/jiffies.h>
> > >  #include <linux/workqueue.h>
> > > -
> > > +#include <linux/acpi.h>
> > > +#include <linux/pci_ids.h>
> > > +#include <linux/thinkpad_acpi.h>
> > >  #include <sound/core.h>
> > >  #include <sound/control.h>
> > >  #include <sound/initval.h>
> > > -
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > > -#include <linux/pci_ids.h>
> > > -
> > > -#include <linux/thinkpad_acpi.h>
> > > +#include <asm/uaccess.h>
> > >
> > >  /* ThinkPad CMOS commands */
> > >  #define TP_CMOS_VOLUME_DOWN	0
> > > diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> > > index 0cfadb6..b5f17eb 100644
> > > --- a/drivers/platform/x86/toshiba_acpi.c
> > > +++ b/drivers/platform/x86/toshiba_acpi.c
> > > @@ -54,11 +54,9 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/workqueue.h>
> > >  #include <linux/i8042.h>
> > > -
> > > +#include <linux/acpi.h>
> > >  #include <asm/uaccess.h>
> > >
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  MODULE_AUTHOR("John Belmonte");
> > >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
> > >  MODULE_LICENSE("GPL");
> > > diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
> > > index 74dd01a..2cb1ea6 100644
> > > --- a/drivers/platform/x86/toshiba_bluetooth.c
> > > +++ b/drivers/platform/x86/toshiba_bluetooth.c
> > > @@ -23,14 +23,12 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
> > >  MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
> > >  MODULE_LICENSE("GPL");
> > >
> > > -
> > >  static int toshiba_bt_rfkill_add(struct acpi_device *device);
> > >  static int toshiba_bt_rfkill_remove(struct acpi_device *device);
> > >  static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
> > > diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> > > index 62e8c22..ba13ade 100644
> > > --- a/drivers/platform/x86/wmi.c
> > > +++ b/drivers/platform/x86/wmi.c
> > > @@ -37,8 +37,6 @@
> > >  #include <linux/acpi.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/module.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >
> > >  ACPI_MODULE_NAME("wmi");
> > >  MODULE_AUTHOR("Carlos Corbacho");
> > > diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> > > index 4b1377b..49cbcce 100644
> > > --- a/drivers/platform/x86/xo15-ebook.c
> > > +++ b/drivers/platform/x86/xo15-ebook.c
> > > @@ -18,8 +18,7 @@
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > >  #include <linux/input.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >
> > >  #define MODULE_NAME "xo15-ebook"
> > >
> > > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> > > index 14655a0..e869ba6 100644
> > > --- a/drivers/pnp/pnpacpi/core.c
> > > +++ b/drivers/pnp/pnpacpi/core.c
> > > @@ -24,7 +24,6 @@
> > >  #include <linux/pnp.h>
> > >  #include <linux/slab.h>
> > >  #include <linux/mod_devicetable.h>
> > > -#include <acpi/acpi_bus.h>
> > >
> > >  #include "../base.h"
> > >  #include "pnpacpi.h"
> > > diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
> > > index 3e60225..051ef96 100644
> > > --- a/drivers/pnp/pnpacpi/pnpacpi.h
> > > +++ b/drivers/pnp/pnpacpi/pnpacpi.h
> > > @@ -1,7 +1,6 @@
> > >  #ifndef ACPI_PNP_H
> > >  #define ACPI_PNP_H
> > >
> > > -#include <acpi/acpi_bus.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/pnp.h>
> > >
> > > diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
> > > index f5b4ca5..1c3d127 100644
> > > --- a/drivers/sfi/sfi_acpi.c
> > > +++ b/drivers/sfi/sfi_acpi.c
> > > @@ -60,8 +60,7 @@
> > >  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
> > >
> > >  #include <linux/kernel.h>
> > > -#include <acpi/acpi.h>
> > > -
> > > +#include <linux/acpi.h>
> > >  #include <linux/sfi.h>
> > >  #include "sfi_core.h"
> > >
> > > diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
> > > index 9f6ebdb..a85c3d6 100644
> > > --- a/drivers/staging/quickstart/quickstart.c
> > > +++ b/drivers/staging/quickstart/quickstart.c
> > > @@ -31,7 +31,7 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <linux/platform_device.h>
> > >  #include <linux/input.h>
> > >
> > > diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
> > > index 4e243c3..11c6569 100644
> > > --- a/drivers/usb/core/usb-acpi.c
> > > +++ b/drivers/usb/core/usb-acpi.c
> > > @@ -16,7 +16,6 @@
> > >  #include <linux/acpi.h>
> > >  #include <linux/pci.h>
> > >  #include <linux/usb/hcd.h>
> > > -#include <acpi/acpi_bus.h>
> > >
> > >  #include "usb.h"
> > >
> > > diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
> > > index 73496c3..80875fb 100644
> > > --- a/drivers/xen/xen-acpi-cpuhotplug.c
> > > +++ b/drivers/xen/xen-acpi-cpuhotplug.c
> > > @@ -24,10 +24,7 @@
> > >  #include <linux/cpu.h>
> > >  #include <linux/acpi.h>
> > >  #include <linux/uaccess.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <acpi/processor.h>
> > > -
> > >  #include <xen/acpi.h>
> > >  #include <xen/interface/platform.h>
> > >  #include <asm/xen/hypercall.h>
> > > diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
> > > index 9b056f0..f8d1862 100644
> > > --- a/drivers/xen/xen-acpi-memhotplug.c
> > > +++ b/drivers/xen/xen-acpi-memhotplug.c
> > > @@ -22,7 +22,6 @@
> > >  #include <linux/init.h>
> > >  #include <linux/types.h>
> > >  #include <linux/acpi.h>
> > > -#include <acpi/acpi_drivers.h>
> > >  #include <xen/acpi.h>
> > >  #include <xen/interface/platform.h>
> > >  #include <asm/xen/hypercall.h>
> > > diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> > > index 59708fd..40c4bc0 100644
> > > --- a/drivers/xen/xen-acpi-pad.c
> > > +++ b/drivers/xen/xen-acpi-pad.c
> > > @@ -18,11 +18,10 @@
> > >
> > >  #include <linux/kernel.h>
> > >  #include <linux/types.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -#include <asm/xen/hypercall.h>
> > > +#include <linux/acpi.h>
> > >  #include <xen/interface/version.h>
> > >  #include <xen/xen-ops.h>
> > > +#include <asm/xen/hypercall.h>
> > >
> > >  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> > >  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
> > > diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> > > index 13bc6c3..7231859 100644
> > > --- a/drivers/xen/xen-acpi-processor.c
> > > +++ b/drivers/xen/xen-acpi-processor.c
> > > @@ -28,10 +28,8 @@
> > >  #include <linux/module.h>
> > >  #include <linux/types.h>
> > >  #include <linux/syscore_ops.h>
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > +#include <linux/acpi.h>
> > >  #include <acpi/processor.h>
> > > -
> > >  #include <xen/xen.h>
> > >  #include <xen/interface/platform.h>
> > >  #include <asm/xen/hypercall.h>
> > > diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> > > index 95831e7..b241b73 100644
> > > --- a/include/acpi/acpi_bus.h
> > > +++ b/include/acpi/acpi_bus.h
> > > @@ -28,8 +28,6 @@
> > >
> > >  #include <linux/device.h>
> > >
> > > -#include <acpi/acpi.h>
> > > -
> > >  /* TBD: Make dynamic */
> > >  #define ACPI_MAX_HANDLES	10
> > >  struct acpi_handle_list {
> > > diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> > > index 1cedfcb..b124fdb 100644
> > > --- a/include/acpi/acpi_drivers.h
> > > +++ b/include/acpi/acpi_drivers.h
> > > @@ -26,9 +26,6 @@
> > >  #ifndef __ACPI_DRIVERS_H__
> > >  #define __ACPI_DRIVERS_H__
> > >
> > > -#include <linux/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > -
> > >  #define ACPI_MAX_STRING			80
> > >
> > >  /*
> > > diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> > > index b0ffa21..ded96fe 100644
> > > --- a/include/linux/acpi_io.h
> > > +++ b/include/linux/acpi_io.h
> > > @@ -2,7 +2,7 @@
> > >  #define _ACPI_IO_H_
> > >
> > >  #include <linux/io.h>
> > > -#include <acpi/acpi.h>
> > > +#include <linux/acpi.h>
> > >
> > >  static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
> > >  					    acpi_size size)
> > > diff --git a/include/linux/ide.h b/include/linux/ide.h
> > > index 46a1422..93b5ca7 100644
> > > --- a/include/linux/ide.h
> > > +++ b/include/linux/ide.h
> > > @@ -18,14 +18,10 @@
> > >  #include <linux/completion.h>
> > >  #include <linux/pm.h>
> > >  #include <linux/mutex.h>
> > > -#ifdef CONFIG_BLK_DEV_IDEACPI
> > > -#include <acpi/acpi.h>
> > > -#endif
> > > -#include <asm/byteorder.h>
> > > -#include <asm/io.h>
> > > -
> > >  /* for request_sense */
> > >  #include <linux/cdrom.h>
> > > +#include <asm/byteorder.h>
> > > +#include <asm/io.h>
> > >
> > >  #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
> > >  # define SUPPORT_VLB_SYNC 0
> > > diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> > > index 8ba7e5b..605cc5c 100644
> > > --- a/include/linux/iscsi_ibft.h
> > > +++ b/include/linux/iscsi_ibft.h
> > > @@ -21,7 +21,7 @@
> > >  #ifndef ISCSI_IBFT_H
> > >  #define ISCSI_IBFT_H
> > >
> > > -#include <acpi/acpi.h>
> > > +#include <linux/acpi.h>
> > >
> > >  /*
> > >   * Logical location of iSCSI Boot Format Table.
> > > diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> > > index a2e2f1d..5f2e559 100644
> > > --- a/include/linux/pci_hotplug.h
> > > +++ b/include/linux/pci_hotplug.h
> > > @@ -175,8 +175,7 @@ struct hotplug_params {
> > >  };
> > >
> > >  #ifdef CONFIG_ACPI
> > > -#include <acpi/acpi.h>
> > > -#include <acpi/acpi_bus.h>
> > > +#include <linux/acpi.h>
> > >  int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
> > >  int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
> > >  int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> > > diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
> > > index 631af63..c9cab82 100644
> > > --- a/include/linux/sfi_acpi.h
> > > +++ b/include/linux/sfi_acpi.h
> > > @@ -60,7 +60,7 @@
> > >  #define _LINUX_SFI_ACPI_H
> > >
> > >  #ifdef CONFIG_SFI
> > > -#include <acpi/acpi.h>		/* struct acpi_table_header */
> > > +#include <linux/acpi.h>
> > >
> > >  extern int sfi_acpi_table_parse(char *signature, char *oem_id,
> > >  				char *oem_table_id,
> > > diff --git a/include/linux/tboot.h b/include/linux/tboot.h
> > > index c75128b..9a54b33 100644
> > > --- a/include/linux/tboot.h
> > > +++ b/include/linux/tboot.h
> > > @@ -34,7 +34,7 @@ enum {
> > >  };
> > >
> > >  #ifdef CONFIG_INTEL_TXT
> > > -#include <acpi/acpi.h>
> > > +#include <linux/acpi.h>
> > >  /* used to communicate between tboot and the launched kernel */
> > >
> > >  #define TB_KEY_SIZE             64   /* 512 bits */
> > > diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > > index 66cace6..0f10b81 100644
> > > --- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > > +++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> > > @@ -25,12 +25,9 @@
> > >  #include <linux/module.h>
> > >  #include <linux/init.h>
> > >  #include <linux/delay.h>
> > > -
> > > +#include <linux/acpi.h>
> > >  #include <asm/io.h>
> > >
> > > -#include <acpi/acpi_bus.h>
> > > -#include <acpi/acpi_drivers.h>
> > > -
> > >  static int pm_tmr_ioport = 0;
> > >
> > >  /*helper function to safely read acpi pm timesource*/
> > >
> > --
> > I speak only for myself.
> > Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
                       ` (3 preceding siblings ...)
  2013-11-28  0:54     ` Zheng, Lv
@ 2013-11-28 14:18     ` Rafael J. Wysocki
  2013-12-03 23:57       ` Rafael J. Wysocki
  4 siblings, 1 reply; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-11-28 14:18 UTC (permalink / raw)
  To: Lv Zheng
  Cc: Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Konrad Rzeszutek Wilk,
	Rafael J. Wysocki, Len Brown, Lv Zheng, linux-acpi, LKML

On Tuesday, November 26, 2013 09:29:33 PM Rafael J. Wysocki wrote:
> On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > 
> > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > should not be included directly from any files that are built for
> > CONFIG_ACPI unset, because that generally leads to build warnings about
> > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > ACPI symbols to be used in that case.
> > 
> > Second, there are ordering dependencies between those files that always
> > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > latter depends on are always there.  And <acpi/acpi.h> which provides
> > basic ACPICA type declarations should always be included prior to any other
> > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > <linux/acpi.h> as appropriate.
> > 
> > This patch also includes necessary cleanups in the affected files where
> > other ACPI headers is also included but not referenced.
> >
> 
> This looks OK to me, but it touches several other subsystems.  It's better to
> CC such things to linux-kernel at least.
> 
> Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?

Since no one seems to have problems with this, I've queued it up for the next ACPI
pull request, if there are no problems with auto builds.

Thanks!

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-11-28 14:18     ` Rafael J. Wysocki
@ 2013-12-03 23:57       ` Rafael J. Wysocki
  2013-12-04  3:31         ` Zheng, Lv
  0 siblings, 1 reply; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-12-03 23:57 UTC (permalink / raw)
  To: Lv Zheng
  Cc: Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Konrad Rzeszutek Wilk,
	Rafael J. Wysocki, Len Brown, Lv Zheng, linux-acpi, LKML

On Thursday, November 28, 2013 03:18:54 PM Rafael J. Wysocki wrote:
> On Tuesday, November 26, 2013 09:29:33 PM Rafael J. Wysocki wrote:
> > On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > > 
> > > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > > should not be included directly from any files that are built for
> > > CONFIG_ACPI unset, because that generally leads to build warnings about
> > > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > > ACPI symbols to be used in that case.
> > > 
> > > Second, there are ordering dependencies between those files that always
> > > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > > latter depends on are always there.  And <acpi/acpi.h> which provides
> > > basic ACPICA type declarations should always be included prior to any other
> > > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > > <linux/acpi.h> as appropriate.
> > > 
> > > This patch also includes necessary cleanups in the affected files where
> > > other ACPI headers is also included but not referenced.
> > >
> > 
> > This looks OK to me, but it touches several other subsystems.  It's better to
> > CC such things to linux-kernel at least.
> > 
> > Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> 
> Since no one seems to have problems with this, I've queued it up for the next ACPI
> pull request, if there are no problems with auto builds.

I replaced this patch with the following one due to built errors introduced by
it for exotic combinations of Kconfig options.

The only difference is the few files where the /* FIXME: ... */ comments have
been added.

Thanks,
Rafael


---
From: Lv Zheng <lv.zheng@intel.com>
Subject: ACPI: Clean up inclusions of ACPI header files

Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
<acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
inclusions and remove some inclusions of those files that aren't
necessary.

First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
should not be included directly from any files that are built for
CONFIG_ACPI unset, because that generally leads to build warnings about
undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
<linux/acpi.h> includes those files and for CONFIG_ACPI unset it
provides stub ACPI symbols to be used in that case.

Second, there are ordering dependencies between those files that always
have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
latter depends on are always there.  And <acpi/acpi.h> which provides
basic ACPICA type declarations should always be included prior to any other
ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
<linux/acpi.h> as appropriate.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci stuff)
---
 arch/ia64/hp/common/aml_nfw.c                        |    3 +--
 arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
 arch/x86/kernel/apic/io_apic.c                       |    3 ---
 arch/x86/pci/mmconfig_32.c                           |    1 -
 arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
 drivers/acpi/ac.c                                    |    3 +--
 drivers/acpi/acpi_extlog.c                           |    1 -
 drivers/acpi/acpi_pad.c                              |    3 +--
 drivers/acpi/apei/einj.c                             |    1 -
 drivers/acpi/battery.c                               |    3 +--
 drivers/acpi/blacklist.c                             |    1 -
 drivers/acpi/bus.c                                   |    2 --
 drivers/acpi/button.c                                |    3 +--
 drivers/acpi/custom_method.c                         |    2 +-
 drivers/acpi/debugfs.c                               |    2 +-
 drivers/acpi/dock.c                                  |    2 --
 drivers/acpi/ec.c                                    |    5 ++---
 drivers/acpi/event.c                                 |    2 +-
 drivers/acpi/fan.c                                   |    3 +--
 drivers/acpi/hed.c                                   |    2 --
 drivers/acpi/numa.c                                  |    1 -
 drivers/acpi/osl.c                                   |    3 ---
 drivers/acpi/pci_irq.c                               |    2 --
 drivers/acpi/pci_link.c                              |    4 +---
 drivers/acpi/pci_root.c                              |    4 +---
 drivers/acpi/power.c                                 |    3 +--
 drivers/acpi/proc.c                                  |    4 +---
 drivers/acpi/processor_core.c                        |    3 +--
 drivers/acpi/processor_idle.c                        |    4 +---
 drivers/acpi/processor_perflib.c                     |    7 ++-----
 drivers/acpi/processor_thermal.c                     |    7 ++-----
 drivers/acpi/processor_throttling.c                  |    7 ++-----
 drivers/acpi/sbshc.c                                 |    3 +--
 drivers/acpi/scan.c                                  |    3 ---
 drivers/acpi/sleep.c                                 |    4 ----
 drivers/acpi/sysfs.c                                 |    2 +-
 drivers/acpi/thermal.c                               |    5 ++---
 drivers/acpi/utils.c                                 |    2 --
 drivers/acpi/video.c                                 |    5 ++---
 drivers/acpi/wakeup.c                                |    1 -
 drivers/ata/libata-acpi.c                            |    2 --
 drivers/ata/pata_acpi.c                              |    5 ++---
 drivers/char/hpet.c                                  |    7 ++-----
 drivers/char/tpm/tpm_acpi.c                          |    2 +-
 drivers/char/tpm/tpm_ppi.c                           |    1 -
 drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
 drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
 drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
 drivers/hv/vmbus_drv.c                               |    2 --
 drivers/hwmon/acpi_power_meter.c                     |    3 +--
 drivers/hwmon/asus_atk0110.c                         |    6 +-----
 drivers/ide/ide-acpi.c                               |    1 -
 drivers/input/misc/atlas_btns.c                      |    2 +-
 drivers/iommu/amd_iommu_init.c                       |    1 -
 drivers/iommu/intel_irq_remapping.c                  |    4 ++--
 drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
 drivers/pci/hotplug/pciehp.h                         |    2 --
 drivers/pci/ioapic.c                                 |    1 -
 drivers/pci/pci-acpi.c                               |    3 ---
 drivers/pci/pci-label.c                              |    1 -
 drivers/platform/x86/acer-wmi.c                      |    2 --
 drivers/platform/x86/asus-laptop.c                   |    3 +--
 drivers/platform/x86/asus-wmi.c                      |    3 +--
 drivers/platform/x86/classmate-laptop.c              |    3 +--
 drivers/platform/x86/dell-wmi-aio.c                  |    1 -
 drivers/platform/x86/dell-wmi.c                      |    1 -
 drivers/platform/x86/eeepc-laptop.c                  |    3 +--
 drivers/platform/x86/eeepc-wmi.c                     |    2 +-
 drivers/platform/x86/hp_accel.c                      |    2 +-
 drivers/platform/x86/ideapad-laptop.c                |    3 +--
 drivers/platform/x86/intel-rst.c                     |    2 +-
 drivers/platform/x86/intel-smartconnect.c            |    2 +-
 drivers/platform/x86/intel_menlow.c                  |    4 +---
 drivers/platform/x86/intel_oaktrail.c                |    3 ---
 drivers/platform/x86/mxm-wmi.c                       |    3 +--
 drivers/platform/x86/panasonic-laptop.c              |    4 +---
 drivers/platform/x86/pvpanic.c                       |    3 +--
 drivers/platform/x86/samsung-q10.c                   |    2 +-
 drivers/platform/x86/sony-laptop.c                   |    4 +---
 drivers/platform/x86/tc1100-wmi.c                    |    4 +---
 drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
 drivers/platform/x86/toshiba_acpi.c                  |    4 +---
 drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
 drivers/platform/x86/wmi.c                           |    2 --
 drivers/platform/x86/xo15-ebook.c                    |    3 +--
 drivers/pnp/pnpacpi/core.c                           |    1 -
 drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
 drivers/sfi/sfi_acpi.c                               |    2 +-
 drivers/staging/quickstart/quickstart.c              |    2 +-
 drivers/usb/core/usb-acpi.c                          |    1 -
 drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
 drivers/xen/xen-acpi-memhotplug.c                    |    1 -
 drivers/xen/xen-acpi-pad.c                           |    5 ++---
 drivers/xen/xen-acpi-processor.c                     |    4 +---
 include/acpi/acpi_bus.h                              |    2 --
 include/acpi/acpi_drivers.h                          |    3 ---
 include/linux/acpi_io.h                              |    2 +-
 include/linux/ide.h                                  |    8 ++------
 include/linux/iscsi_ibft.h                           |    2 +-
 include/linux/pci_hotplug.h                          |    3 +--
 include/linux/sfi_acpi.h                             |    2 +-
 include/linux/tboot.h                                |    2 +-
 tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
 103 files changed, 80 insertions(+), 234 deletions(-)

diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
index 916ffe7..84715fc 100644
--- a/arch/ia64/hp/common/aml_nfw.c
+++ b/arch/ia64/hp/common/aml_nfw.c
@@ -23,8 +23,7 @@
  */
 
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/sal.h>
 
 MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 00c77cf..ccbf857 100644
--- a/arch/x86/kernel/apic/apic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -21,9 +21,7 @@
 #include <asm/apic.h>
 #include <asm/ipi.h>
 
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
+#include <linux/acpi.h>
 
 static struct apic apic_physflat;
 static struct apic apic_flat;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index e63a5bd..4d67a75 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -37,9 +37,6 @@
 #include <linux/kthread.h>
 #include <linux/jiffies.h>	/* time_after() */
 #include <linux/slab.h>
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
 #include <linux/bootmem.h>
 #include <linux/dmar.h>
 #include <linux/hpet.h>
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
index 5c90975..43984bc 100644
--- a/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -14,7 +14,6 @@
 #include <linux/rcupdate.h>
 #include <asm/e820.h>
 #include <asm/pci_x86.h>
-#include <acpi/acpi.h>
 
 /* Assume systems with more busses have correct MCFG */
 #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
index 649a12b..08e350e 100644
--- a/arch/x86/platform/olpc/olpc-xo15-sci.c
+++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
@@ -15,8 +15,7 @@
 #include <linux/power_supply.h>
 #include <linux/olpc-ec.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/olpc.h>
 
 #define DRV_NAME			"olpc-xo15-sci"
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 8711e37..8095943 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -32,8 +32,7 @@
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index a6869e1..2635a01 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -9,7 +9,6 @@
 
 #include <linux/module.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/cper.h>
 #include <linux/ratelimit.h>
 #include <asm/cpu.h>
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
index fc6008f..65610c0 100644
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -28,8 +28,7 @@
 #include <linux/cpu.h>
 #include <linux/clockchips.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/mwait.h>
 
 #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
index fb57d03..ca0c6d7 100644
--- a/drivers/acpi/apei/einj.c
+++ b/drivers/acpi/apei/einj.c
@@ -33,7 +33,6 @@
 #include <linux/nmi.h>
 #include <linux/delay.h>
 #include <linux/mm.h>
-#include <acpi/acpi.h>
 
 #include "apei-internal.h"
 
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index fbf1ace..e90ef8b 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -36,8 +36,7 @@
 #include <linux/suspend.h>
 #include <asm/unaligned.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/power_supply.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index 078c4f7..05ee8f6 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -30,7 +30,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/dmi.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index f509019..2c38ae2 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -37,8 +37,6 @@
 #include <asm/mpspec.h>
 #endif
 #include <linux/pci.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/apei.h>
 #include <linux/dmi.h>
 #include <linux/suspend.h>
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index c971929..9e3a6cb 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -31,8 +31,7 @@
 #include <linux/seq_file.h>
 #include <linux/input.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/button.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
index 12b62f2..c68e724 100644
--- a/drivers/acpi/custom_method.c
+++ b/drivers/acpi/custom_method.c
@@ -7,7 +7,7 @@
 #include <linux/kernel.h>
 #include <linux/uaccess.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
index b55d6a2..6b1919f 100644
--- a/drivers/acpi/debugfs.c
+++ b/drivers/acpi/debugfs.c
@@ -5,7 +5,7 @@
 #include <linux/export.h>
 #include <linux/init.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define _COMPONENT		ACPI_SYSTEM_COMPONENT
 ACPI_MODULE_NAME("debugfs");
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index de03201..8da6be9 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -32,8 +32,6 @@
 #include <linux/jiffies.h>
 #include <linux/stddef.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index ba5b56d..ff40120 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -39,10 +39,9 @@
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #include <linux/slab.h>
-#include <asm/io.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/dmi.h>
+#include <asm/io.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
index cae3b38..ef2d730 100644
--- a/drivers/acpi/event.c
+++ b/drivers/acpi/event.c
@@ -12,7 +12,7 @@
 #include <linux/init.h>
 #include <linux/poll.h>
 #include <linux/gfp.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <net/netlink.h>
 #include <net/genetlink.h>
 
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index ba3da88..1fb6290 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -29,8 +29,7 @@
 #include <linux/types.h>
 #include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
index 13b1d39..aafe3ca 100644
--- a/drivers/acpi/hed.c
+++ b/drivers/acpi/hed.c
@@ -25,8 +25,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/hed.h>
 
 static struct acpi_device_id acpi_hed_ids[] = {
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index a2343a1..9e6816e 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -29,7 +29,6 @@
 #include <linux/errno.h>
 #include <linux/acpi.h>
 #include <linux/numa.h>
-#include <acpi/acpi_bus.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 5b9a785..7e2d814 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -49,9 +49,6 @@
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/processor.h>
 #include "internal.h"
 
 #define _COMPONENT		ACPI_OS_SERVICES
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 41c5e1b..52d45ea 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -37,8 +37,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 2652a61..ea6b8d1 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -39,9 +39,7 @@
 #include <linux/pci.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
-
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 2dd11e0..afafee5 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -35,9 +35,7 @@
 #include <linux/pci-aspm.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/apei.h>
+#include <acpi/apei.h>	/* for acpi_hest_init() */
 
 #include "internal.h"
 
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index c2ad391..ad7da68 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -42,8 +42,7 @@
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 #include <linux/sysfs.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "sleep.h"
 #include "internal.h"
 
diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
index 6a5b152..db061bf 100644
--- a/drivers/acpi/proc.c
+++ b/drivers/acpi/proc.c
@@ -3,11 +3,9 @@
 #include <linux/export.h>
 #include <linux/suspend.h>
 #include <linux/bcd.h>
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 #include "sleep.h"
 
 #define _COMPONENT		ACPI_SYSTEM_COMPONENT
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index b3171f3..34e7b3c 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -10,8 +10,7 @@
 #include <linux/export.h>
 #include <linux/dmi.h>
 #include <linux/slab.h>
-
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 644516d..d2d44e0 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -35,6 +35,7 @@
 #include <linux/clockchips.h>
 #include <linux/cpuidle.h>
 #include <linux/syscore_ops.h>
+#include <acpi/processor.h>
 
 /*
  * Include the apic definitions for x86 to have the APIC timer related defines
@@ -46,9 +47,6 @@
 #include <asm/apic.h>
 #endif
 
-#include <acpi/acpi_bus.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS            "processor"
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 60a7c28..ff90054 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -31,15 +31,12 @@
 #include <linux/init.h>
 #include <linux/cpufreq.h>
 #include <linux/slab.h>
-
+#include <linux/acpi.h>
+#include <acpi/processor.h>
 #ifdef CONFIG_X86
 #include <asm/cpufeature.h>
 #endif
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS		"processor"
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
index d1d2e7f..f95e758 100644
--- a/drivers/acpi/processor_thermal.c
+++ b/drivers/acpi/processor_thermal.c
@@ -30,12 +30,9 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/cpufreq.h>
-
-#include <asm/uaccess.h>
-
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
-#include <acpi/acpi_drivers.h>
+#include <asm/uaccess.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index e7dd2c1..28baa05 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -32,14 +32,11 @@
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/cpufreq.h>
-
+#include <linux/acpi.h>
+#include <acpi/processor.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS            "processor"
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index b78bc60..26e5b50 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -8,8 +8,7 @@
  * the Free Software Foundation version 2.
  */
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 311904c..d564367 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -11,8 +11,6 @@
 #include <linux/kthread.h>
 #include <linux/dmi.h>
 #include <linux/nls.h>
-
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 721e949..208ac8c 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -18,12 +18,8 @@
 #include <linux/reboot.h>
 #include <linux/acpi.h>
 #include <linux/module.h>
-
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 #include "internal.h"
 #include "sleep.h"
 
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index 6dbc3ca..443dc93 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -5,7 +5,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/moduleparam.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 0d9f46b..1fd21ad 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -41,10 +41,9 @@
 #include <linux/kmod.h>
 #include <linux/reboot.h>
 #include <linux/device.h>
-#include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
+#include <asm/uaccess.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 6d408bf..1336b91 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -30,8 +30,6 @@
 #include <linux/types.h>
 #include <linux/hardirq.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 995e91b..b727d10 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -37,12 +37,11 @@
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 #include <linux/slab.h>
-#include <asm/uaccess.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/suspend.h>
+#include <linux/acpi.h>
 #include <acpi/video.h>
+#include <asm/uaccess.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
index 7bfbe40..1638401 100644
--- a/drivers/acpi/wakeup.c
+++ b/drivers/acpi/wakeup.c
@@ -5,7 +5,6 @@
 
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 4372cfa..8e22d97 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -20,8 +20,6 @@
 #include <scsi/scsi_device.h>
 #include "libata.h"
 
-#include <acpi/acpi_bus.h>
-
 unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
 module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
 MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
index 73212c9..62c9ac8 100644
--- a/drivers/ata/pata_acpi.c
+++ b/drivers/ata/pata_acpi.c
@@ -12,11 +12,10 @@
 #include <linux/delay.h>
 #include <linux/device.h>
 #include <linux/gfp.h>
-#include <scsi/scsi_host.h>
-#include <acpi/acpi_bus.h>
-
+#include <linux/acpi.h>
 #include <linux/libata.h>
 #include <linux/ata.h>
+#include <scsi/scsi_host.h>
 
 #define DRV_NAME	"pata_acpi"
 #define DRV_VERSION	"0.2.3"
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 5d9c31d..d5d4cd8 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -34,15 +34,12 @@
 #include <linux/uaccess.h>
 #include <linux/slab.h>
 #include <linux/io.h>
-
+#include <linux/acpi.h>
+#include <linux/hpet.h>
 #include <asm/current.h>
 #include <asm/irq.h>
 #include <asm/div64.h>
 
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <linux/hpet.h>
-
 /*
  * The High Precision Event Timer driver.
  * This driver is closely modelled after the rtc.c driver.
diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
index 64420b3..b9a57fa 100644
--- a/drivers/char/tpm/tpm_acpi.c
+++ b/drivers/char/tpm/tpm_acpi.c
@@ -23,7 +23,7 @@
 #include <linux/security.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 #include "tpm.h"
 #include "tpm_eventlog.h"
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
index 8e562dc..dd60ef3 100644
--- a/drivers/char/tpm/tpm_ppi.c
+++ b/drivers/char/tpm/tpm_ppi.c
@@ -1,5 +1,4 @@
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include "tpm.h"
 
 static const u8 tpm_ppi_uuid[] = {
diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
index dfff090..5325b25 100644
--- a/drivers/gpu/drm/i915/intel_acpi.c
+++ b/drivers/gpu/drm/i915/intel_acpi.c
@@ -6,8 +6,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/vga_switcheroo.h>
-#include <acpi/acpi_drivers.h>
-
 #include <drm/drmP.h>
 #include "i915_drv.h"
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
index 95c7404..1f0b6d2 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -1,15 +1,10 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/video.h>
-#include <acpi/acpi.h>
 #include <linux/mxm-wmi.h>
-
 #include <linux/vga_switcheroo.h>
-
 #include <drm/drm_edid.h>
+#include <acpi/video.h>
 
 #include "nouveau_drm.h"
 #include "nouveau_acpi.h"
diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
index 98a9074..77e9d07 100644
--- a/drivers/gpu/drm/radeon/radeon_acpi.c
+++ b/drivers/gpu/drm/radeon/radeon_acpi.c
@@ -25,18 +25,14 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/vga_switcheroo.h>
 #include <acpi/video.h>
-
 #include <drm/drmP.h>
 #include <drm/drm_crtc_helper.h>
 #include "radeon.h"
 #include "radeon_acpi.h"
 #include "atom.h"
 
-#include <linux/vga_switcheroo.h>
-
 #define ACPI_AC_CLASS           "ac_adapter"
 
 extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 48aad4f..077bb1b 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -30,7 +30,6 @@
 #include <linux/sysctl.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/completion.h>
 #include <linux/hyperv.h>
 #include <linux/kernel_stat.h>
@@ -39,7 +38,6 @@
 #include <asm/mshyperv.h>
 #include "hyperv_vmbus.h"
 
-
 static struct acpi_device  *hv_acpi_dev;
 
 static struct tasklet_struct msg_dpc;
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
index 6a34f7f..579bdf9 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -30,8 +30,7 @@
 #include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/err.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ACPI_POWER_METER_NAME		"power_meter"
 ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index dafc63c..ae208f6 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -16,12 +16,7 @@
 #include <linux/dmi.h>
 #include <linux/jiffies.h>
 #include <linux/err.h>
-
-#include <acpi/acpi.h>
-#include <acpi/acpixf.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-
+#include <linux/acpi.h>
 
 #define ATK_HID "ATK0110"
 
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
index d9e1f7c..333d405 100644
--- a/drivers/ide/ide-acpi.c
+++ b/drivers/ide/ide-acpi.c
@@ -14,7 +14,6 @@
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
 #include <linux/ide.h>
 #include <linux/pci.h>
 #include <linux/dmi.h>
diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
index 5d44023..d781b5e 100644
--- a/drivers/input/misc/atlas_btns.c
+++ b/drivers/input/misc/atlas_btns.c
@@ -28,8 +28,8 @@
 #include <linux/init.h>
 #include <linux/input.h>
 #include <linux/types.h>
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
-#include <acpi/acpi_drivers.h>
 
 #define ACPI_ATLAS_NAME		"Atlas ACPI"
 #define ACPI_ATLAS_CLASS	"Atlas"
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 8f798be..28b4bea 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -26,7 +26,6 @@
 #include <linux/msi.h>
 #include <linux/amd-iommu.h>
 #include <linux/export.h>
-#include <acpi/acpi.h>
 #include <asm/pci-direct.h>
 #include <asm/iommu.h>
 #include <asm/gart.h>
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index bab10b1..0cb7528 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -6,11 +6,11 @@
 #include <linux/hpet.h>
 #include <linux/pci.h>
 #include <linux/irq.h>
+#include <linux/intel-iommu.h>
+#include <linux/acpi.h>
 #include <asm/io_apic.h>
 #include <asm/smp.h>
 #include <asm/cpu.h>
-#include <linux/intel-iommu.h>
-#include <acpi/acpi.h>
 #include <asm/irq_remapping.h>
 #include <asm/pci-direct.h>
 #include <asm/msidef.h>
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
index ecfac7e..8dcccff 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
@@ -31,12 +31,11 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <acpi/acpi_bus.h>
 #include <linux/sysfs.h>
 #include <linux/kobject.h>
-#include <asm/uaccess.h>
 #include <linux/moduleparam.h>
 #include <linux/pci.h>
+#include <asm/uaccess.h>
 
 #include "acpiphp.h"
 #include "../pci.h"
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 21e865d..24e147c 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
 }
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/pci-acpi.h>
 
 void __init pciehp_acpi_slot_detection_init(void);
diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
index 50ce680..2122b2b 100644
--- a/drivers/pci/ioapic.c
+++ b/drivers/pci/ioapic.c
@@ -20,7 +20,6 @@
 #include <linux/module.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
 
 struct ioapic {
 	acpi_handle	handle;
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 577074e..43e3179 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -12,9 +12,6 @@
 #include <linux/pci.h>
 #include <linux/module.h>
 #include <linux/pci-aspm.h>
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-
 #include <linux/pci-acpi.h>
 #include <linux/pm_runtime.h>
 #include <linux/pm_qos.h>
diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
index d51f45a..dbafcc8 100644
--- a/drivers/pci/pci-label.c
+++ b/drivers/pci/pci-label.c
@@ -29,7 +29,6 @@
 #include <linux/nls.h>
 #include <linux/acpi.h>
 #include <linux/pci-acpi.h>
-#include <acpi/acpi_bus.h>
 #include "pci.h"
 
 #define	DEVICE_LABEL_DSM	0x07
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index c9076bd..c91f69b3 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -41,8 +41,6 @@
 #include <linux/slab.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-
-#include <acpi/acpi_drivers.h>
 #include <acpi/video.h>
 
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 0e9c169..430b5c3 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -53,8 +53,7 @@
 #include <linux/rfkill.h>
 #include <linux/slab.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ASUS_LAPTOP_VERSION	"0.42"
 
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 19c313b..df7ecb9 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -45,8 +45,7 @@
 #include <linux/seq_file.h>
 #include <linux/platform_device.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/video.h>
 
 #include "asus-wmi.h"
diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
index 6dfa8d3..70d355a 100644
--- a/drivers/platform/x86/classmate-laptop.c
+++ b/drivers/platform/x86/classmate-laptop.c
@@ -21,14 +21,13 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/workqueue.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/backlight.h>
 #include <linux/input.h>
 #include <linux/rfkill.h>
 
 MODULE_LICENSE("GPL");
 
-
 struct cmpc_accel {
 	int sensitivity;
 	int g_select;
diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
index bcf8cc6..dbc97a3 100644
--- a/drivers/platform/x86/dell-wmi-aio.c
+++ b/drivers/platform/x86/dell-wmi-aio.c
@@ -24,7 +24,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index fa9a217..bdf483b 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -32,7 +32,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 #include <linux/dmi.h>
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index aefcc32..cabd567 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -28,8 +28,7 @@
 #include <linux/hwmon.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <linux/uaccess.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index af67e6e..6112933 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -33,7 +33,7 @@
 #include <linux/input/sparse-keymap.h>
 #include <linux/dmi.h>
 #include <linux/fb.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #include "asus-wmi.h"
 
diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
index a8e43cf..aff4d06 100644
--- a/drivers/platform/x86/hp_accel.c
+++ b/drivers/platform/x86/hp_accel.c
@@ -36,7 +36,7 @@
 #include <linux/uaccess.h>
 #include <linux/leds.h>
 #include <linux/atomic.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "../../misc/lis3lv02d/lis3lv02d.h"
 
 #define DRIVER_NAME     "hp_accel"
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 6788acc..70b5729 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -26,8 +26,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/rfkill.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
index a2083a9..d45bca3 100644
--- a/drivers/platform/x86/intel-rst.c
+++ b/drivers/platform/x86/intel-rst.c
@@ -20,7 +20,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
index 1838400..04cf5df 100644
--- a/drivers/platform/x86/intel-smartconnect.c
+++ b/drivers/platform/x86/intel-smartconnect.c
@@ -19,7 +19,7 @@
 
 #include <linux/init.h>
 #include <linux/module.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
index 11244f8..e8b46d2 100644
--- a/drivers/platform/x86/intel_menlow.c
+++ b/drivers/platform/x86/intel_menlow.c
@@ -36,10 +36,8 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/pm.h>
-
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Thomas Sujith");
 MODULE_AUTHOR("Zhang Rui");
diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
index f6f18cd..4bc9604 100644
--- a/drivers/platform/x86/intel_oaktrail.c
+++ b/drivers/platform/x86/intel_oaktrail.c
@@ -50,9 +50,6 @@
 #include <linux/platform_device.h>
 #include <linux/dmi.h>
 #include <linux/rfkill.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 
 #define DRIVER_NAME	"intel_oaktrail"
 #define DRIVER_VERSION	"0.4ac1"
diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
index 0aea63b..3c59c0a 100644
--- a/drivers/platform/x86/mxm-wmi.c
+++ b/drivers/platform/x86/mxm-wmi.c
@@ -20,8 +20,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Dave Airlie");
 MODULE_DESCRIPTION("MXM WMI Driver");
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 10d12b2..137d602 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -125,12 +125,10 @@
 #include <linux/seq_file.h>
 #include <linux/uaccess.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
 
-
 #ifndef ACPI_HOTKEY_COMPONENT
 #define ACPI_HOTKEY_COMPONENT	0x10000000
 #endif
diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
index 47ae0c4..c9f6e51 100644
--- a/drivers/platform/x86/pvpanic.c
+++ b/drivers/platform/x86/pvpanic.c
@@ -24,8 +24,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
 MODULE_DESCRIPTION("pvpanic device driver");
diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
index cae7098..5413f62 100644
--- a/drivers/platform/x86/samsung-q10.c
+++ b/drivers/platform/x86/samsung-q10.c
@@ -15,7 +15,7 @@
 #include <linux/platform_device.h>
 #include <linux/backlight.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define SAMSUNGQ10_BL_MAX_INTENSITY 7
 
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 47caab0..1d00039 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -61,9 +61,6 @@
 #include <linux/workqueue.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-#include <asm/uaccess.h>
 #include <linux/sonypi.h>
 #include <linux/sony-laptop.h>
 #include <linux/rfkill.h>
@@ -71,6 +68,7 @@
 #include <linux/poll.h>
 #include <linux/miscdevice.h>
 #endif
+#include <asm/uaccess.h>
 
 #define dprintk(fmt, ...)			\
 do {						\
diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
index 9b93fdb..6a6ea28 100644
--- a/drivers/platform/x86/tc1100-wmi.c
+++ b/drivers/platform/x86/tc1100-wmi.c
@@ -32,9 +32,7 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 
 #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 05e046a..9d7e34b 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -61,7 +61,6 @@
 #include <linux/freezer.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-
 #include <linux/nvram.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
@@ -74,21 +73,16 @@
 #include <linux/input.h>
 #include <linux/leds.h>
 #include <linux/rfkill.h>
-#include <asm/uaccess.h>
-
 #include <linux/dmi.h>
 #include <linux/jiffies.h>
 #include <linux/workqueue.h>
-
+#include <linux/acpi.h>
+#include <linux/pci_ids.h>
+#include <linux/thinkpad_acpi.h>
 #include <sound/core.h>
 #include <sound/control.h>
 #include <sound/initval.h>
-
-#include <acpi/acpi_drivers.h>
-
-#include <linux/pci_ids.h>
-
-#include <linux/thinkpad_acpi.h>
+#include <asm/uaccess.h>
 
 /* ThinkPad CMOS commands */
 #define TP_CMOS_VOLUME_DOWN	0
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 0cfadb6..b5f17eb 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -54,11 +54,9 @@
 #include <linux/slab.h>
 #include <linux/workqueue.h>
 #include <linux/i8042.h>
-
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_drivers.h>
-
 MODULE_AUTHOR("John Belmonte");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
 MODULE_LICENSE("GPL");
diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
index 74dd01a..2cb1ea6 100644
--- a/drivers/platform/x86/toshiba_bluetooth.c
+++ b/drivers/platform/x86/toshiba_bluetooth.c
@@ -23,14 +23,12 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
 MODULE_LICENSE("GPL");
 
-
 static int toshiba_bt_rfkill_add(struct acpi_device *device);
 static int toshiba_bt_rfkill_remove(struct acpi_device *device);
 static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 62e8c22..ba13ade 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -37,8 +37,6 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 ACPI_MODULE_NAME("wmi");
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
index 4b1377b..49cbcce 100644
--- a/drivers/platform/x86/xo15-ebook.c
+++ b/drivers/platform/x86/xo15-ebook.c
@@ -18,8 +18,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/input.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define MODULE_NAME "xo15-ebook"
 
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 14655a0..e869ba6 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -24,7 +24,6 @@
 #include <linux/pnp.h>
 #include <linux/slab.h>
 #include <linux/mod_devicetable.h>
-#include <acpi/acpi_bus.h>
 
 #include "../base.h"
 #include "pnpacpi.h"
diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
index 3e60225..051ef96 100644
--- a/drivers/pnp/pnpacpi/pnpacpi.h
+++ b/drivers/pnp/pnpacpi/pnpacpi.h
@@ -1,7 +1,6 @@
 #ifndef ACPI_PNP_H
 #define ACPI_PNP_H
 
-#include <acpi/acpi_bus.h>
 #include <linux/acpi.h>
 #include <linux/pnp.h>
 
diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
index f5b4ca5..5e753d7 100644
--- a/drivers/sfi/sfi_acpi.c
+++ b/drivers/sfi/sfi_acpi.c
@@ -60,7 +60,7 @@
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/kernel.h>
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 #include <linux/sfi.h>
 #include "sfi_core.h"
diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
index 9f6ebdb..a85c3d6 100644
--- a/drivers/staging/quickstart/quickstart.c
+++ b/drivers/staging/quickstart/quickstart.c
@@ -31,7 +31,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
 
diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
index 4e243c3..11c6569 100644
--- a/drivers/usb/core/usb-acpi.c
+++ b/drivers/usb/core/usb-acpi.c
@@ -16,7 +16,6 @@
 #include <linux/acpi.h>
 #include <linux/pci.h>
 #include <linux/usb/hcd.h>
-#include <acpi/acpi_bus.h>
 
 #include "usb.h"
 
diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
index 73496c3..80875fb 100644
--- a/drivers/xen/xen-acpi-cpuhotplug.c
+++ b/drivers/xen/xen-acpi-cpuhotplug.c
@@ -24,10 +24,7 @@
 #include <linux/cpu.h>
 #include <linux/acpi.h>
 #include <linux/uaccess.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/processor.h>
-
 #include <xen/acpi.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
index 9b056f0..f8d1862 100644
--- a/drivers/xen/xen-acpi-memhotplug.c
+++ b/drivers/xen/xen-acpi-memhotplug.c
@@ -22,7 +22,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <xen/acpi.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
index 59708fd..40c4bc0 100644
--- a/drivers/xen/xen-acpi-pad.c
+++ b/drivers/xen/xen-acpi-pad.c
@@ -18,11 +18,10 @@
 
 #include <linux/kernel.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <asm/xen/hypercall.h>
+#include <linux/acpi.h>
 #include <xen/interface/version.h>
 #include <xen/xen-ops.h>
+#include <asm/xen/hypercall.h>
 
 #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
 #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index 13bc6c3..7231859 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -28,10 +28,8 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/syscore_ops.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
-
 #include <xen/xen.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 95831e7..b241b73 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -28,8 +28,6 @@
 
 #include <linux/device.h>
 
-#include <acpi/acpi.h>
-
 /* TBD: Make dynamic */
 #define ACPI_MAX_HANDLES	10
 struct acpi_handle_list {
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index 1cedfcb..b124fdb 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -26,9 +26,6 @@
 #ifndef __ACPI_DRIVERS_H__
 #define __ACPI_DRIVERS_H__
 
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-
 #define ACPI_MAX_STRING			80
 
 /*
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
index b0ffa21..2a5a139 100644
--- a/include/linux/acpi_io.h
+++ b/include/linux/acpi_io.h
@@ -2,7 +2,7 @@
 #define _ACPI_IO_H_
 
 #include <linux/io.h>
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
 					    acpi_size size)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 46a1422..93b5ca7 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -18,14 +18,10 @@
 #include <linux/completion.h>
 #include <linux/pm.h>
 #include <linux/mutex.h>
-#ifdef CONFIG_BLK_DEV_IDEACPI
-#include <acpi/acpi.h>
-#endif
-#include <asm/byteorder.h>
-#include <asm/io.h>
-
 /* for request_sense */
 #include <linux/cdrom.h>
+#include <asm/byteorder.h>
+#include <asm/io.h>
 
 #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
 # define SUPPORT_VLB_SYNC 0
diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
index 8ba7e5b..82f9673 100644
--- a/include/linux/iscsi_ibft.h
+++ b/include/linux/iscsi_ibft.h
@@ -21,7 +21,7 @@
 #ifndef ISCSI_IBFT_H
 #define ISCSI_IBFT_H
 
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 /*
  * Logical location of iSCSI Boot Format Table.
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index a2e2f1d..5f2e559 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -175,8 +175,7 @@ struct hotplug_params {
 };
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
 int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
 int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
index 631af63..2cfcb79 100644
--- a/include/linux/sfi_acpi.h
+++ b/include/linux/sfi_acpi.h
@@ -60,7 +60,7 @@
 #define _LINUX_SFI_ACPI_H
 
 #ifdef CONFIG_SFI
-#include <acpi/acpi.h>		/* struct acpi_table_header */
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 extern int sfi_acpi_table_parse(char *signature, char *oem_id,
 				char *oem_table_id,
diff --git a/include/linux/tboot.h b/include/linux/tboot.h
index c75128b..9a54b33 100644
--- a/include/linux/tboot.h
+++ b/include/linux/tboot.h
@@ -34,7 +34,7 @@ enum {
 };
 
 #ifdef CONFIG_INTEL_TXT
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 /* used to communicate between tboot and the launched kernel */
 
 #define TB_KEY_SIZE             64   /* 512 bits */
diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
index 66cace6..0f10b81 100644
--- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
+++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
@@ -25,12 +25,9 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
-
+#include <linux/acpi.h>
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 static int pm_tmr_ioport = 0;
 
 /*helper function to safely read acpi pm timesource*/
-- 
1.7.10



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  2013-12-04  0:41 ` [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions Lv Zheng
@ 2013-12-04  0:38   ` Lv Zheng
  2013-12-04  8:16     ` [Intel-gfx] " Daniel Vetter
  2013-12-05 13:04     ` Jani Nikula
  2013-12-04  0:38   ` [PATCH 2/3] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
  2013-12-04  0:38   ` [RFC PATCH 3/3] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
  2 siblings, 2 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-04  0:38 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Matthew Garrett,
	Daniel Vetter, intel-gfx

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
include/linux/acpi_io.h:7:45: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:8:10: error: unknown type name 'acpi_size'
include/linux/acpi_io.h:13:33: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:15:40: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
include/linux/acpi_io.h:15:40: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
include/linux/acpi_io.h:16:43: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
drivers/gpu/drm/i915/intel_opregion.c: In function 'intel_opregion_setup':
drivers/gpu/drm/i915/intel_opregion.c:883:2: error: implicit declaration of function 'acpi_os_ioremap' [-Werror=implicit-function-declaration]
drivers/gpu/drm/i915/intel_opregion.c:883:7: warning: assignment makes pointer from integer without a cast [enabled by default]

The root causes of this breakage are:
1. The <linux/acpi_io.h> depends on CONFIG_ACPI=y as most of the prototypes
   exported by it are implemented in drivers/acpi/osl.c.
2. CONFIG_DRM_I915 uses the only "inline" function acpi_os_ioremap() to
   implement stubs but it shouldn't.

Since ACPI IGD OpRegion is an ACPI-based mechanism, (please refer to the
Doclink below), this patch fixes this issue by making
drivers/gpu/drm/i915/intel_opregion.c dependent on CONFIG_ACPI.  This is
identical to other Intel DRM drivers' OpRegion support (e.x.,
drivers/gpu/drm/gma500/opregion.c).

Since acpi_io.h is not safe for CONFIG_ACPI=y environment, this patch also
moves it to include/acpi, includes it in <linux/acpi.h> for CONFIG_ACPI=y
build environment and cleans up its inclusions by converting them into
<linux/acpi.h> inclusions.

Doclink: https://01.org/linuxgraphics/sites/default/files/documentation/acpi_igd_opregion_spec.pdf
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/acpi/apei/apei-base.c     |    1 -
 drivers/acpi/apei/apei-internal.h |    1 -
 drivers/acpi/apei/ghes.c          |    1 -
 drivers/acpi/nvs.c                |    1 -
 drivers/acpi/osl.c                |    1 -
 drivers/gpu/drm/gma500/opregion.c |    1 -
 drivers/gpu/drm/i915/Makefile     |    3 +--
 drivers/gpu/drm/i915/i915_drv.h   |    3 ++-
 include/acpi/acpi_io.h            |   17 +++++++++++++++++
 include/linux/acpi.h              |    1 +
 include/linux/acpi_io.h           |   18 ------------------
 11 files changed, 21 insertions(+), 27 deletions(-)
 create mode 100644 include/acpi/acpi_io.h
 delete mode 100644 include/linux/acpi_io.h

diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
index 6d2c49b..0760b75 100644
--- a/drivers/acpi/apei/apei-base.c
+++ b/drivers/acpi/apei/apei-base.c
@@ -34,7 +34,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/slab.h>
 #include <linux/io.h>
 #include <linux/kref.h>
diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
index 21ba34a..e5bcd91 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -8,7 +8,6 @@
 
 #include <linux/cper.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 struct apei_exec_context;
 
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index a30bc31..694c486 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -33,7 +33,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/timer.h>
diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index 386a9fe..ef28613 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -12,7 +12,6 @@
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 /* ACPI NVS regions, APEI may use it */
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 7e2d814..63251b6 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -39,7 +39,6 @@
 #include <linux/workqueue.h>
 #include <linux/nmi.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/efi.h>
 #include <linux/ioport.h>
 #include <linux/list.h>
diff --git a/drivers/gpu/drm/gma500/opregion.c b/drivers/gpu/drm/gma500/opregion.c
index ad0d6de..13ec628 100644
--- a/drivers/gpu/drm/gma500/opregion.c
+++ b/drivers/gpu/drm/gma500/opregion.c
@@ -22,7 +22,6 @@
  *
  */
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include "psb_drv.h"
 #include "psb_intel_reg.h"
 
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 41838ea..d4ae48b 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -38,7 +38,6 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 	  intel_ringbuffer.o \
 	  intel_overlay.o \
 	  intel_sprite.o \
-	  intel_opregion.o \
 	  intel_sideband.o \
 	  intel_uncore.o \
 	  dvo_ch7xxx.o \
@@ -51,7 +50,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 
 i915-$(CONFIG_COMPAT)   += i915_ioc32.o
 
-i915-$(CONFIG_ACPI)	+= intel_acpi.o
+i915-$(CONFIG_ACPI)	+= intel_acpi.o intel_opregion.o
 
 i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ccdbecc..7f37b83 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2336,8 +2336,8 @@ extern void intel_i2c_reset(struct drm_device *dev);
 
 /* intel_opregion.c */
 struct intel_encoder;
-extern int intel_opregion_setup(struct drm_device *dev);
 #ifdef CONFIG_ACPI
+extern int intel_opregion_setup(struct drm_device *dev);
 extern void intel_opregion_init(struct drm_device *dev);
 extern void intel_opregion_fini(struct drm_device *dev);
 extern void intel_opregion_asle_intr(struct drm_device *dev);
@@ -2346,6 +2346,7 @@ extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 extern int intel_opregion_notify_adapter(struct drm_device *dev,
 					 pci_power_t state);
 #else
+static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
 static inline void intel_opregion_init(struct drm_device *dev) { return; }
 static inline void intel_opregion_fini(struct drm_device *dev) { return; }
 static inline void intel_opregion_asle_intr(struct drm_device *dev) { return; }
diff --git a/include/acpi/acpi_io.h b/include/acpi/acpi_io.h
new file mode 100644
index 0000000..2be8580
--- /dev/null
+++ b/include/acpi/acpi_io.h
@@ -0,0 +1,17 @@
+#ifndef _ACPI_IO_H_
+#define _ACPI_IO_H_
+
+#include <linux/io.h>
+
+static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
+					    acpi_size size)
+{
+       return ioremap_cache(phys, size);
+}
+
+void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
+
+int acpi_os_map_generic_address(struct acpi_generic_address *addr);
+void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
+
+#endif
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index d9099b1..726a6aa 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -42,6 +42,7 @@
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/acpi_numa.h>
+#include <acpi/acpi_io.h>
 #include <asm/acpi.h>
 
 static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
deleted file mode 100644
index 2a5a139..0000000
--- a/include/linux/acpi_io.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _ACPI_IO_H_
-#define _ACPI_IO_H_
-
-#include <linux/io.h>
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
-
-static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
-					    acpi_size size)
-{
-       return ioremap_cache(phys, size);
-}
-
-void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
-
-int acpi_os_map_generic_address(struct acpi_generic_address *addr);
-void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
-
-#endif
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH 2/3] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage.
  2013-12-04  0:41 ` [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions Lv Zheng
  2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
@ 2013-12-04  0:38   ` Lv Zheng
  2013-12-04  0:38   ` [RFC PATCH 3/3] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
  2 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-04  0:38 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Bjorn Helgaas,
	Len Brown, Feng Tang, sfi-devel, linux-pci

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
arch/x86/pci/mmconfig-shared.c:389:1: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:389:47: warning: 'struct acpi_resource' declared inside parameter list [enabled by default]
arch/x86/pci/mmconfig-shared.c:389:47: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
arch/x86/pci/mmconfig-shared.c: In function 'check_mcfg_resource':
arch/x86/pci/mmconfig-shared.c:392:33: error: storage size of 'address' isn't known
arch/x86/pci/mmconfig-shared.c:393:2: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:395:9: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:395:19: error: 'ACPI_RESOURCE_TYPE_FIXED_MEMORY32' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:395:19: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/pci/mmconfig-shared.c:397:8: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:399:11: error: 'AE_OK' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:400:35: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:401:33: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:402:19: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:404:11: error: 'AE_CTRL_TERMINATE' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:407:10: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:407:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:408:10: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:408:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:411:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:412:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:414:31: error: 'ACPI_MEMORY_RANGE' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:392:33: warning: unused variable 'address' [-Wunused-variable]
arch/x86/pci/mmconfig-shared.c: At top level:
arch/x86/pci/mmconfig-shared.c:425:1: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:425:41: error: unknown type name 'acpi_handle'
arch/x86/pci/mmconfig-shared.c: In function 'is_acpi_reserved':
arch/x86/pci/mmconfig-shared.c:447:2: error: implicit declaration of function 'acpi_get_devices' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:447:30: error: 'find_mboard_resource' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c: At top level:
arch/x86/pci/mmconfig-shared.c:389:20: warning: 'check_mcfg_resource' defined but not used [-Wunused-function]

The root cause of this breakage is:
1. The following commit doesn't protect ACPICA functions like
   acpi_get_devices()/acpi_walk_resources()/acpi_resource_to_address64() in
   CONFIG_SFI=y and CONFIG_ACPI=n environment:
    Commit: 5f0db7a2fb78895a197f64e548333b3bbd433996
    Author: Feng Tang <feng.tang@intel.com>
    Subject: SFI: Hook PCI MMCONFIG
    First check ACPI, and if that fails, ask SFI to find the MCFG.
   So it actually depends on the logic that in !CONFIG_ACPI builds, code
   blocks under "if (!acpi_disabled)" will not be linked in.

This patch fixes this issue by introducing a stub for MCFG entry checker
is_acpi_reserved() in !CONFIG_ACPI builds.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Feng Tang <feng.tang@intel.com>
Cc: sfi-devel@simplefirmware.org
Cc: linux-pci@vger.kernel.org
---
 arch/x86/pci/mmconfig-shared.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 082e881..9f23a77 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -370,6 +370,7 @@ static int __init pci_mmcfg_check_hostbridge(void)
 	return !list_empty(&pci_mmcfg_list);
 }
 
+#ifdef CONFIG_ACPI
 static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data)
 {
 	struct resource *mcfg_res = data;
@@ -436,6 +437,12 @@ static int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
 
 	return mcfg_res.flags;
 }
+#else
+static inline int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
+{
+	return 0;
+}
+#endif
 
 typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type);
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [RFC PATCH 3/3] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module.
  2013-12-04  0:41 ` [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions Lv Zheng
  2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
  2013-12-04  0:38   ` [PATCH 2/3] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
@ 2013-12-04  0:38   ` Lv Zheng
  2 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-04  0:38 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi,
	Konrad Rzeszutek Wilk, Peter Jones

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
drivers/firmware/iscsi_ibft_find.c: In function 'find_ibft_region':
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type

The root cause of this breakage is:
1. iBFT locating is implemented by looking up it in the memory.  This is
   based on the specification.  Specification doesn't mention if it can
   appear on a non-ACPI platforms but mentions it is defined in ACPI 3.0b.
   The current CONFIG_ISCSI_IBFT_FIND doesn't use ACPI table APIs to locate
   the table, thus it doesn't rely on CONFIG_ACPI.

Since ACPI iSCSI Boot Firmware is an ACPI-based mechanism (please refer to
the Doclink below), we can make CONFIG_ISCSI_IBFT_FIND dependent on
CONFIG_ACPI though the locating mechanism can be implemented without using
ACPI table APIs.  But please let me know if this is wrong.

Doclink: http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>
Cc: Peter Jones <pjones@redhat.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/firmware/Kconfig   |    2 +-
 include/linux/iscsi_ibft.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 0747872..a6ef6ac 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -110,7 +110,7 @@ config DMI_SYSFS
 
 config ISCSI_IBFT_FIND
 	bool "iSCSI Boot Firmware Table Attributes"
-	depends on X86
+	depends on X86 && ACPI
 	default n
 	help
 	  This option enables the kernel to find the region of memory
diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
index 82f9673..605cc5c 100644
--- a/include/linux/iscsi_ibft.h
+++ b/include/linux/iscsi_ibft.h
@@ -21,7 +21,7 @@
 #ifndef ISCSI_IBFT_H
 #define ISCSI_IBFT_H
 
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
+#include <linux/acpi.h>
 
 /*
  * Logical location of iSCSI Boot Format Table.
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
                   ` (4 preceding siblings ...)
       [not found] ` <3c5e408cd7791ef746f462c79ce28f67734817d9.1385434808.git.lv.zheng@intel.com>
@ 2013-12-04  0:41 ` Lv Zheng
  2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
                     ` (2 more replies)
  2013-12-05 14:25 ` [PATCH v2] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
  7 siblings, 3 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-04  0:41 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

(Updated due to commit details attached.)

The patch in the linux-pm/linux-next queue is used as an experiment to
catch wrong ACPICA dependencies and inclusions:

 Commit: 4e8fb7987f7d0390a2e74622c7c1cbb6760c6516
 From: Lv Zheng <lv.zheng@intel.com>
 Date: Tue, 3 Dec 2013 08:49:16 +0800
 Subject: [PATCH] ACPI: Clean up inclusions of ACPI header files
 Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
 <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
 inclusions and remove some inclusions of those files that aren't
 necessary.

Now we got build errors triggered for them. Such errors include:
1. "ACPI IGD OpRegion" support in i915 DRM driver.  It can be modified to
   be CONFIG_ACPI dependent.
2. "_CRS based MCFG checker" support, original configurability of this
   piece of code relies on link stage optimization.  This patchset
   corrects it by making the configurability to be dependent on compile
   stage references.
3. "iSCSI IBFT finder" support.  IBFT can only appear on ACPI platforms
   while IBFT locating mechanism doesn't rely on ACPI table constructions.
   It is currently not dependent on CONFIG_ACPI.  IMO, this behavior is
   This patchset corrects it by making it dependent on CONFIG_ACPI.  This
   patch need to be discussed, thus marked as RFC.
4. "SFI/ACPI wrapper" support.  This error is not fixed in this patchset.
   Its solution is still under discussion.  It need to be synchronized
   with SFI users.

Lv Zheng (3):
  ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper -
    acpi_disabled linkage.
  ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware
    module.

 arch/x86/pci/mmconfig-shared.c    |    7 +++++++
 drivers/acpi/apei/apei-base.c     |    1 -
 drivers/acpi/apei/apei-internal.h |    1 -
 drivers/acpi/apei/ghes.c          |    1 -
 drivers/acpi/nvs.c                |    1 -
 drivers/acpi/osl.c                |    1 -
 drivers/firmware/Kconfig          |    2 +-
 drivers/gpu/drm/gma500/opregion.c |    1 -
 drivers/gpu/drm/i915/Makefile     |    3 +--
 drivers/gpu/drm/i915/i915_drv.h   |    3 ++-
 include/acpi/acpi_io.h            |   17 +++++++++++++++++
 include/linux/acpi.h              |    1 +
 include/linux/acpi_io.h           |   18 ------------------
 include/linux/iscsi_ibft.h        |    2 +-
 14 files changed, 30 insertions(+), 29 deletions(-)
 create mode 100644 include/acpi/acpi_io.h
 delete mode 100644 include/linux/acpi_io.h

-- 
1.7.10


^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.
  2013-12-03 23:57       ` Rafael J. Wysocki
@ 2013-12-04  3:31         ` Zheng, Lv
  0 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-12-04  3:31 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Greg Kroah-Hartman, Bjorn Helgaas, H. Peter Anvin,
	Matthew Garrett, Luck, Tony, Konrad Rzeszutek Wilk, Wysocki,
	Rafael J, Brown, Len, Lv Zheng, linux-acpi, LKML

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 58228 bytes --]

> From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
> Sent: Wednesday, December 04, 2013 7:58 AM
> 
> On Thursday, November 28, 2013 03:18:54 PM Rafael J. Wysocki wrote:
> > On Tuesday, November 26, 2013 09:29:33 PM Rafael J. Wysocki wrote:
> > > On Tuesday, November 26, 2013 01:21:15 PM Lv Zheng wrote:
> > > > Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> > > > <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h> inclusions.
> > > >
> > > > First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> > > > should not be included directly from any files that are built for
> > > > CONFIG_ACPI unset, because that generally leads to build warnings about
> > > > undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> > > > <linux/acpi.h> includes those files and for !CONFIG_ACPI it provides stub
> > > > ACPI symbols to be used in that case.
> > > >
> > > > Second, there are ordering dependencies between those files that always
> > > > have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> > > > prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> > > > latter depends on are always there.  And <acpi/acpi.h> which provides
> > > > basic ACPICA type declarations should always be included prior to any other
> > > > ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> > > > <linux/acpi.h> as appropriate.
> > > >
> > > > This patch also includes necessary cleanups in the affected files where
> > > > other ACPI headers is also included but not referenced.
> > > >
> > >
> > > This looks OK to me, but it touches several other subsystems.  It's better to
> > > CC such things to linux-kernel at least.
> > >
> > > Peter, Matthew, Tony, Konrad, Greg, Bjorn, do you have any objections against this?
> >
> > Since no one seems to have problems with this, I've queued it up for the next ACPI
> > pull request, if there are no problems with auto builds.
> 
> I replaced this patch with the following one due to built errors introduced by
> it for exotic combinations of Kconfig options.
> 
> The only difference is the few files where the /* FIXME: ... */ comments have
> been added.

Thanks for the helping.
Please also check if the fixes in the "ACPI: Cleanup direct ACPICA inclusions." series can actually sort the FIXMEs out.

Thanks and best regards
-Lv
> 
> Thanks,
> Rafael
> 
> 
> ---
> From: Lv Zheng <lv.zheng@intel.com>
> Subject: ACPI: Clean up inclusions of ACPI header files
> 
> Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
> inclusions and remove some inclusions of those files that aren't
> necessary.
> 
> First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> should not be included directly from any files that are built for
> CONFIG_ACPI unset, because that generally leads to build warnings about
> undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> <linux/acpi.h> includes those files and for CONFIG_ACPI unset it
> provides stub ACPI symbols to be used in that case.
> 
> Second, there are ordering dependencies between those files that always
> have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> latter depends on are always there.  And <acpi/acpi.h> which provides
> basic ACPICA type declarations should always be included prior to any other
> ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> <linux/acpi.h> as appropriate.
> 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Matthew Garrett <mjg59@srcf.ucam.org>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci stuff)
> ---
>  arch/ia64/hp/common/aml_nfw.c                        |    3 +--
>  arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
>  arch/x86/kernel/apic/io_apic.c                       |    3 ---
>  arch/x86/pci/mmconfig_32.c                           |    1 -
>  arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
>  drivers/acpi/ac.c                                    |    3 +--
>  drivers/acpi/acpi_extlog.c                           |    1 -
>  drivers/acpi/acpi_pad.c                              |    3 +--
>  drivers/acpi/apei/einj.c                             |    1 -
>  drivers/acpi/battery.c                               |    3 +--
>  drivers/acpi/blacklist.c                             |    1 -
>  drivers/acpi/bus.c                                   |    2 --
>  drivers/acpi/button.c                                |    3 +--
>  drivers/acpi/custom_method.c                         |    2 +-
>  drivers/acpi/debugfs.c                               |    2 +-
>  drivers/acpi/dock.c                                  |    2 --
>  drivers/acpi/ec.c                                    |    5 ++---
>  drivers/acpi/event.c                                 |    2 +-
>  drivers/acpi/fan.c                                   |    3 +--
>  drivers/acpi/hed.c                                   |    2 --
>  drivers/acpi/numa.c                                  |    1 -
>  drivers/acpi/osl.c                                   |    3 ---
>  drivers/acpi/pci_irq.c                               |    2 --
>  drivers/acpi/pci_link.c                              |    4 +---
>  drivers/acpi/pci_root.c                              |    4 +---
>  drivers/acpi/power.c                                 |    3 +--
>  drivers/acpi/proc.c                                  |    4 +---
>  drivers/acpi/processor_core.c                        |    3 +--
>  drivers/acpi/processor_idle.c                        |    4 +---
>  drivers/acpi/processor_perflib.c                     |    7 ++-----
>  drivers/acpi/processor_thermal.c                     |    7 ++-----
>  drivers/acpi/processor_throttling.c                  |    7 ++-----
>  drivers/acpi/sbshc.c                                 |    3 +--
>  drivers/acpi/scan.c                                  |    3 ---
>  drivers/acpi/sleep.c                                 |    4 ----
>  drivers/acpi/sysfs.c                                 |    2 +-
>  drivers/acpi/thermal.c                               |    5 ++---
>  drivers/acpi/utils.c                                 |    2 --
>  drivers/acpi/video.c                                 |    5 ++---
>  drivers/acpi/wakeup.c                                |    1 -
>  drivers/ata/libata-acpi.c                            |    2 --
>  drivers/ata/pata_acpi.c                              |    5 ++---
>  drivers/char/hpet.c                                  |    7 ++-----
>  drivers/char/tpm/tpm_acpi.c                          |    2 +-
>  drivers/char/tpm/tpm_ppi.c                           |    1 -
>  drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
>  drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
>  drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
>  drivers/hv/vmbus_drv.c                               |    2 --
>  drivers/hwmon/acpi_power_meter.c                     |    3 +--
>  drivers/hwmon/asus_atk0110.c                         |    6 +-----
>  drivers/ide/ide-acpi.c                               |    1 -
>  drivers/input/misc/atlas_btns.c                      |    2 +-
>  drivers/iommu/amd_iommu_init.c                       |    1 -
>  drivers/iommu/intel_irq_remapping.c                  |    4 ++--
>  drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
>  drivers/pci/hotplug/pciehp.h                         |    2 --
>  drivers/pci/ioapic.c                                 |    1 -
>  drivers/pci/pci-acpi.c                               |    3 ---
>  drivers/pci/pci-label.c                              |    1 -
>  drivers/platform/x86/acer-wmi.c                      |    2 --
>  drivers/platform/x86/asus-laptop.c                   |    3 +--
>  drivers/platform/x86/asus-wmi.c                      |    3 +--
>  drivers/platform/x86/classmate-laptop.c              |    3 +--
>  drivers/platform/x86/dell-wmi-aio.c                  |    1 -
>  drivers/platform/x86/dell-wmi.c                      |    1 -
>  drivers/platform/x86/eeepc-laptop.c                  |    3 +--
>  drivers/platform/x86/eeepc-wmi.c                     |    2 +-
>  drivers/platform/x86/hp_accel.c                      |    2 +-
>  drivers/platform/x86/ideapad-laptop.c                |    3 +--
>  drivers/platform/x86/intel-rst.c                     |    2 +-
>  drivers/platform/x86/intel-smartconnect.c            |    2 +-
>  drivers/platform/x86/intel_menlow.c                  |    4 +---
>  drivers/platform/x86/intel_oaktrail.c                |    3 ---
>  drivers/platform/x86/mxm-wmi.c                       |    3 +--
>  drivers/platform/x86/panasonic-laptop.c              |    4 +---
>  drivers/platform/x86/pvpanic.c                       |    3 +--
>  drivers/platform/x86/samsung-q10.c                   |    2 +-
>  drivers/platform/x86/sony-laptop.c                   |    4 +---
>  drivers/platform/x86/tc1100-wmi.c                    |    4 +---
>  drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
>  drivers/platform/x86/toshiba_acpi.c                  |    4 +---
>  drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
>  drivers/platform/x86/wmi.c                           |    2 --
>  drivers/platform/x86/xo15-ebook.c                    |    3 +--
>  drivers/pnp/pnpacpi/core.c                           |    1 -
>  drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
>  drivers/sfi/sfi_acpi.c                               |    2 +-
>  drivers/staging/quickstart/quickstart.c              |    2 +-
>  drivers/usb/core/usb-acpi.c                          |    1 -
>  drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
>  drivers/xen/xen-acpi-memhotplug.c                    |    1 -
>  drivers/xen/xen-acpi-pad.c                           |    5 ++---
>  drivers/xen/xen-acpi-processor.c                     |    4 +---
>  include/acpi/acpi_bus.h                              |    2 --
>  include/acpi/acpi_drivers.h                          |    3 ---
>  include/linux/acpi_io.h                              |    2 +-
>  include/linux/ide.h                                  |    8 ++------
>  include/linux/iscsi_ibft.h                           |    2 +-
>  include/linux/pci_hotplug.h                          |    3 +--
>  include/linux/sfi_acpi.h                             |    2 +-
>  include/linux/tboot.h                                |    2 +-
>  tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
>  103 files changed, 80 insertions(+), 234 deletions(-)
> 
> diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
> index 916ffe7..84715fc 100644
> --- a/arch/ia64/hp/common/aml_nfw.c
> +++ b/arch/ia64/hp/common/aml_nfw.c
> @@ -23,8 +23,7 @@
>   */
> 
>  #include <linux/module.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/sal.h>
> 
>  MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
> diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
> index 00c77cf..ccbf857 100644
> --- a/arch/x86/kernel/apic/apic_flat_64.c
> +++ b/arch/x86/kernel/apic/apic_flat_64.c
> @@ -21,9 +21,7 @@
>  #include <asm/apic.h>
>  #include <asm/ipi.h>
> 
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
> +#include <linux/acpi.h>
> 
>  static struct apic apic_physflat;
>  static struct apic apic_flat;
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index e63a5bd..4d67a75 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -37,9 +37,6 @@
>  #include <linux/kthread.h>
>  #include <linux/jiffies.h>	/* time_after() */
>  #include <linux/slab.h>
> -#ifdef CONFIG_ACPI
> -#include <acpi/acpi_bus.h>
> -#endif
>  #include <linux/bootmem.h>
>  #include <linux/dmar.h>
>  #include <linux/hpet.h>
> diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
> index 5c90975..43984bc 100644
> --- a/arch/x86/pci/mmconfig_32.c
> +++ b/arch/x86/pci/mmconfig_32.c
> @@ -14,7 +14,6 @@
>  #include <linux/rcupdate.h>
>  #include <asm/e820.h>
>  #include <asm/pci_x86.h>
> -#include <acpi/acpi.h>
> 
>  /* Assume systems with more busses have correct MCFG */
>  #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
> diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
> index 649a12b..08e350e 100644
> --- a/arch/x86/platform/olpc/olpc-xo15-sci.c
> +++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
> @@ -15,8 +15,7 @@
>  #include <linux/power_supply.h>
>  #include <linux/olpc-ec.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/olpc.h>
> 
>  #define DRV_NAME			"olpc-xo15-sci"
> diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
> index 8711e37..8095943 100644
> --- a/drivers/acpi/ac.c
> +++ b/drivers/acpi/ac.c
> @@ -32,8 +32,7 @@
>  #include <linux/delay.h>
>  #include <linux/platform_device.h>
>  #include <linux/power_supply.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> index a6869e1..2635a01 100644
> --- a/drivers/acpi/acpi_extlog.c
> +++ b/drivers/acpi/acpi_extlog.c
> @@ -9,7 +9,6 @@
> 
>  #include <linux/module.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/cper.h>
>  #include <linux/ratelimit.h>
>  #include <asm/cpu.h>
> diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> index fc6008f..65610c0 100644
> --- a/drivers/acpi/acpi_pad.c
> +++ b/drivers/acpi/acpi_pad.c
> @@ -28,8 +28,7 @@
>  #include <linux/cpu.h>
>  #include <linux/clockchips.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <asm/mwait.h>
> 
>  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
> diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> index fb57d03..ca0c6d7 100644
> --- a/drivers/acpi/apei/einj.c
> +++ b/drivers/acpi/apei/einj.c
> @@ -33,7 +33,6 @@
>  #include <linux/nmi.h>
>  #include <linux/delay.h>
>  #include <linux/mm.h>
> -#include <acpi/acpi.h>
> 
>  #include "apei-internal.h"
> 
> diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
> index fbf1ace..e90ef8b 100644
> --- a/drivers/acpi/battery.c
> +++ b/drivers/acpi/battery.c
> @@ -36,8 +36,7 @@
>  #include <linux/suspend.h>
>  #include <asm/unaligned.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/power_supply.h>
> 
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> index 078c4f7..05ee8f6 100644
> --- a/drivers/acpi/blacklist.c
> +++ b/drivers/acpi/blacklist.c
> @@ -30,7 +30,6 @@
>  #include <linux/kernel.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/dmi.h>
> 
>  #include "internal.h"
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index f509019..2c38ae2 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -37,8 +37,6 @@
>  #include <asm/mpspec.h>
>  #endif
>  #include <linux/pci.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/apei.h>
>  #include <linux/dmi.h>
>  #include <linux/suspend.h>
> diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> index c971929..9e3a6cb 100644
> --- a/drivers/acpi/button.c
> +++ b/drivers/acpi/button.c
> @@ -31,8 +31,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/input.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/button.h>
> 
>  #define PREFIX "ACPI: "
> diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> index 12b62f2..c68e724 100644
> --- a/drivers/acpi/custom_method.c
> +++ b/drivers/acpi/custom_method.c
> @@ -7,7 +7,7 @@
>  #include <linux/kernel.h>
>  #include <linux/uaccess.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
> index b55d6a2..6b1919f 100644
> --- a/drivers/acpi/debugfs.c
> +++ b/drivers/acpi/debugfs.c
> @@ -5,7 +5,7 @@
>  #include <linux/export.h>
>  #include <linux/init.h>
>  #include <linux/debugfs.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
>  ACPI_MODULE_NAME("debugfs");
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index de03201..8da6be9 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -32,8 +32,6 @@
>  #include <linux/jiffies.h>
>  #include <linux/stddef.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index ba5b56d..ff40120 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -39,10 +39,9 @@
>  #include <linux/list.h>
>  #include <linux/spinlock.h>
>  #include <linux/slab.h>
> -#include <asm/io.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/dmi.h>
> +#include <asm/io.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
> index cae3b38..ef2d730 100644
> --- a/drivers/acpi/event.c
> +++ b/drivers/acpi/event.c
> @@ -12,7 +12,7 @@
>  #include <linux/init.h>
>  #include <linux/poll.h>
>  #include <linux/gfp.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <net/netlink.h>
>  #include <net/genetlink.h>
> 
> diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> index ba3da88..1fb6290 100644
> --- a/drivers/acpi/fan.c
> +++ b/drivers/acpi/fan.c
> @@ -29,8 +29,7 @@
>  #include <linux/types.h>
>  #include <asm/uaccess.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
> index 13b1d39..aafe3ca 100644
> --- a/drivers/acpi/hed.c
> +++ b/drivers/acpi/hed.c
> @@ -25,8 +25,6 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/hed.h>
> 
>  static struct acpi_device_id acpi_hed_ids[] = {
> diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> index a2343a1..9e6816e 100644
> --- a/drivers/acpi/numa.c
> +++ b/drivers/acpi/numa.c
> @@ -29,7 +29,6 @@
>  #include <linux/errno.h>
>  #include <linux/acpi.h>
>  #include <linux/numa.h>
> -#include <acpi/acpi_bus.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 5b9a785..7e2d814 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -49,9 +49,6 @@
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
> 
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/processor.h>
>  #include "internal.h"
> 
>  #define _COMPONENT		ACPI_OS_SERVICES
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index 41c5e1b..52d45ea 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -37,8 +37,6 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> index 2652a61..ea6b8d1 100644
> --- a/drivers/acpi/pci_link.c
> +++ b/drivers/acpi/pci_link.c
> @@ -39,9 +39,7 @@
>  #include <linux/pci.h>
>  #include <linux/mutex.h>
>  #include <linux/slab.h>
> -
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> index 2dd11e0..afafee5 100644
> --- a/drivers/acpi/pci_root.c
> +++ b/drivers/acpi/pci_root.c
> @@ -35,9 +35,7 @@
>  #include <linux/pci-aspm.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/apei.h>
> +#include <acpi/apei.h>	/* for acpi_hest_init() */
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> index c2ad391..ad7da68 100644
> --- a/drivers/acpi/power.c
> +++ b/drivers/acpi/power.c
> @@ -42,8 +42,7 @@
>  #include <linux/slab.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/sysfs.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include "sleep.h"
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
> index 6a5b152..db061bf 100644
> --- a/drivers/acpi/proc.c
> +++ b/drivers/acpi/proc.c
> @@ -3,11 +3,9 @@
>  #include <linux/export.h>
>  #include <linux/suspend.h>
>  #include <linux/bcd.h>
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include "sleep.h"
> 
>  #define _COMPONENT		ACPI_SYSTEM_COMPONENT
> diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> index b3171f3..34e7b3c 100644
> --- a/drivers/acpi/processor_core.c
> +++ b/drivers/acpi/processor_core.c
> @@ -10,8 +10,7 @@
>  #include <linux/export.h>
>  #include <linux/dmi.h>
>  #include <linux/slab.h>
> -
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> 
>  #include "internal.h"
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 644516d..d2d44e0 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -35,6 +35,7 @@
>  #include <linux/clockchips.h>
>  #include <linux/cpuidle.h>
>  #include <linux/syscore_ops.h>
> +#include <acpi/processor.h>
> 
>  /*
>   * Include the apic definitions for x86 to have the APIC timer related defines
> @@ -46,9 +47,6 @@
>  #include <asm/apic.h>
>  #endif
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
> 
>  #define ACPI_PROCESSOR_CLASS            "processor"
> diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> index 60a7c28..ff90054 100644
> --- a/drivers/acpi/processor_perflib.c
> +++ b/drivers/acpi/processor_perflib.c
> @@ -31,15 +31,12 @@
>  #include <linux/init.h>
>  #include <linux/cpufreq.h>
>  #include <linux/slab.h>
> -
> +#include <linux/acpi.h>
> +#include <acpi/processor.h>
>  #ifdef CONFIG_X86
>  #include <asm/cpufeature.h>
>  #endif
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
> 
>  #define ACPI_PROCESSOR_CLASS		"processor"
> diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
> index d1d2e7f..f95e758 100644
> --- a/drivers/acpi/processor_thermal.c
> +++ b/drivers/acpi/processor_thermal.c
> @@ -30,12 +30,9 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/cpufreq.h>
> -
> -#include <asm/uaccess.h>
> -
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> -#include <acpi/acpi_drivers.h>
> +#include <asm/uaccess.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
> index e7dd2c1..28baa05 100644
> --- a/drivers/acpi/processor_throttling.c
> +++ b/drivers/acpi/processor_throttling.c
> @@ -32,14 +32,11 @@
>  #include <linux/init.h>
>  #include <linux/sched.h>
>  #include <linux/cpufreq.h>
> -
> +#include <linux/acpi.h>
> +#include <acpi/processor.h>
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/processor.h>
> -
>  #define PREFIX "ACPI: "
> 
>  #define ACPI_PROCESSOR_CLASS            "processor"
> diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> index b78bc60..26e5b50 100644
> --- a/drivers/acpi/sbshc.c
> +++ b/drivers/acpi/sbshc.c
> @@ -8,8 +8,7 @@
>   * the Free Software Foundation version 2.
>   */
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/wait.h>
>  #include <linux/slab.h>
>  #include <linux/delay.h>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 311904c..d564367 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -11,8 +11,6 @@
>  #include <linux/kthread.h>
>  #include <linux/dmi.h>
>  #include <linux/nls.h>
> -
> -#include <acpi/acpi_drivers.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> index 721e949..208ac8c 100644
> --- a/drivers/acpi/sleep.c
> +++ b/drivers/acpi/sleep.c
> @@ -18,12 +18,8 @@
>  #include <linux/reboot.h>
>  #include <linux/acpi.h>
>  #include <linux/module.h>
> -
>  #include <asm/io.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include "internal.h"
>  #include "sleep.h"
> 
> diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> index 6dbc3ca..443dc93 100644
> --- a/drivers/acpi/sysfs.c
> +++ b/drivers/acpi/sysfs.c
> @@ -5,7 +5,7 @@
>  #include <linux/init.h>
>  #include <linux/kernel.h>
>  #include <linux/moduleparam.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 0d9f46b..1fd21ad 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -41,10 +41,9 @@
>  #include <linux/kmod.h>
>  #include <linux/reboot.h>
>  #include <linux/device.h>
> -#include <asm/uaccess.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> +#include <asm/uaccess.h>
> 
>  #define PREFIX "ACPI: "
> 
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 6d408bf..1336b91 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -30,8 +30,6 @@
>  #include <linux/types.h>
>  #include <linux/hardirq.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 995e91b..b727d10 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -37,12 +37,11 @@
>  #include <linux/pci.h>
>  #include <linux/pci_ids.h>
>  #include <linux/slab.h>
> -#include <asm/uaccess.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/suspend.h>
> +#include <linux/acpi.h>
>  #include <acpi/video.h>
> +#include <asm/uaccess.h>
> 
>  #include "internal.h"
> 
> diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
> index 7bfbe40..1638401 100644
> --- a/drivers/acpi/wakeup.c
> +++ b/drivers/acpi/wakeup.c
> @@ -5,7 +5,6 @@
> 
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/kernel.h>
>  #include <linux/types.h>
> 
> diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
> index 4372cfa..8e22d97 100644
> --- a/drivers/ata/libata-acpi.c
> +++ b/drivers/ata/libata-acpi.c
> @@ -20,8 +20,6 @@
>  #include <scsi/scsi_device.h>
>  #include "libata.h"
> 
> -#include <acpi/acpi_bus.h>
> -
>  unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
>  module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
>  MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze
> lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
> diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
> index 73212c9..62c9ac8 100644
> --- a/drivers/ata/pata_acpi.c
> +++ b/drivers/ata/pata_acpi.c
> @@ -12,11 +12,10 @@
>  #include <linux/delay.h>
>  #include <linux/device.h>
>  #include <linux/gfp.h>
> -#include <scsi/scsi_host.h>
> -#include <acpi/acpi_bus.h>
> -
> +#include <linux/acpi.h>
>  #include <linux/libata.h>
>  #include <linux/ata.h>
> +#include <scsi/scsi_host.h>
> 
>  #define DRV_NAME	"pata_acpi"
>  #define DRV_VERSION	"0.2.3"
> diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> index 5d9c31d..d5d4cd8 100644
> --- a/drivers/char/hpet.c
> +++ b/drivers/char/hpet.c
> @@ -34,15 +34,12 @@
>  #include <linux/uaccess.h>
>  #include <linux/slab.h>
>  #include <linux/io.h>
> -
> +#include <linux/acpi.h>
> +#include <linux/hpet.h>
>  #include <asm/current.h>
>  #include <asm/irq.h>
>  #include <asm/div64.h>
> 
> -#include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <linux/hpet.h>
> -
>  /*
>   * The High Precision Event Timer driver.
>   * This driver is closely modelled after the rtc.c driver.
> diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
> index 64420b3..b9a57fa 100644
> --- a/drivers/char/tpm/tpm_acpi.c
> +++ b/drivers/char/tpm/tpm_acpi.c
> @@ -23,7 +23,7 @@
>  #include <linux/security.h>
>  #include <linux/module.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
> 
>  #include "tpm.h"
>  #include "tpm_eventlog.h"
> diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> index 8e562dc..dd60ef3 100644
> --- a/drivers/char/tpm/tpm_ppi.c
> +++ b/drivers/char/tpm/tpm_ppi.c
> @@ -1,5 +1,4 @@
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include "tpm.h"
> 
>  static const u8 tpm_ppi_uuid[] = {
> diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
> index dfff090..5325b25 100644
> --- a/drivers/gpu/drm/i915/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/intel_acpi.c
> @@ -6,8 +6,6 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/vga_switcheroo.h>
> -#include <acpi/acpi_drivers.h>
> -
>  #include <drm/drmP.h>
>  #include "i915_drv.h"
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> index 95c7404..1f0b6d2 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
> @@ -1,15 +1,10 @@
>  #include <linux/pci.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/video.h>
> -#include <acpi/acpi.h>
>  #include <linux/mxm-wmi.h>
> -
>  #include <linux/vga_switcheroo.h>
> -
>  #include <drm/drm_edid.h>
> +#include <acpi/video.h>
> 
>  #include "nouveau_drm.h"
>  #include "nouveau_acpi.h"
> diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
> index 98a9074..77e9d07 100644
> --- a/drivers/gpu/drm/radeon/radeon_acpi.c
> +++ b/drivers/gpu/drm/radeon/radeon_acpi.c
> @@ -25,18 +25,14 @@
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
>  #include <linux/power_supply.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/vga_switcheroo.h>
>  #include <acpi/video.h>
> -
>  #include <drm/drmP.h>
>  #include <drm/drm_crtc_helper.h>
>  #include "radeon.h"
>  #include "radeon_acpi.h"
>  #include "atom.h"
> 
> -#include <linux/vga_switcheroo.h>
> -
>  #define ACPI_AC_CLASS           "ac_adapter"
> 
>  extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index 48aad4f..077bb1b 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -30,7 +30,6 @@
>  #include <linux/sysctl.h>
>  #include <linux/slab.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/completion.h>
>  #include <linux/hyperv.h>
>  #include <linux/kernel_stat.h>
> @@ -39,7 +38,6 @@
>  #include <asm/mshyperv.h>
>  #include "hyperv_vmbus.h"
> 
> -
>  static struct acpi_device  *hv_acpi_dev;
> 
>  static struct tasklet_struct msg_dpc;
> diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
> index 6a34f7f..579bdf9 100644
> --- a/drivers/hwmon/acpi_power_meter.c
> +++ b/drivers/hwmon/acpi_power_meter.c
> @@ -30,8 +30,7 @@
>  #include <linux/sched.h>
>  #include <linux/time.h>
>  #include <linux/err.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
> 
>  #define ACPI_POWER_METER_NAME		"power_meter"
>  ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
> diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
> index dafc63c..ae208f6 100644
> --- a/drivers/hwmon/asus_atk0110.c
> +++ b/drivers/hwmon/asus_atk0110.c
> @@ -16,12 +16,7 @@
>  #include <linux/dmi.h>
>  #include <linux/jiffies.h>
>  #include <linux/err.h>
> -
> -#include <acpi/acpi.h>
> -#include <acpi/acpixf.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -
> +#include <linux/acpi.h>
> 
>  #define ATK_HID "ATK0110"
> 
> diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
> index d9e1f7c..333d405 100644
> --- a/drivers/ide/ide-acpi.c
> +++ b/drivers/ide/ide-acpi.c
> @@ -14,7 +14,6 @@
>  #include <linux/errno.h>
>  #include <linux/kernel.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi.h>
>  #include <linux/ide.h>
>  #include <linux/pci.h>
>  #include <linux/dmi.h>
> diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
> index 5d44023..d781b5e 100644
> --- a/drivers/input/misc/atlas_btns.c
> +++ b/drivers/input/misc/atlas_btns.c
> @@ -28,8 +28,8 @@
>  #include <linux/init.h>
>  #include <linux/input.h>
>  #include <linux/types.h>
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
> -#include <acpi/acpi_drivers.h>
> 
>  #define ACPI_ATLAS_NAME		"Atlas ACPI"
>  #define ACPI_ATLAS_CLASS	"Atlas"
> diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> index 8f798be..28b4bea 100644
> --- a/drivers/iommu/amd_iommu_init.c
> +++ b/drivers/iommu/amd_iommu_init.c
> @@ -26,7 +26,6 @@
>  #include <linux/msi.h>
>  #include <linux/amd-iommu.h>
>  #include <linux/export.h>
> -#include <acpi/acpi.h>
>  #include <asm/pci-direct.h>
>  #include <asm/iommu.h>
>  #include <asm/gart.h>
> diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> index bab10b1..0cb7528 100644
> --- a/drivers/iommu/intel_irq_remapping.c
> +++ b/drivers/iommu/intel_irq_remapping.c
> @@ -6,11 +6,11 @@
>  #include <linux/hpet.h>
>  #include <linux/pci.h>
>  #include <linux/irq.h>
> +#include <linux/intel-iommu.h>
> +#include <linux/acpi.h>
>  #include <asm/io_apic.h>
>  #include <asm/smp.h>
>  #include <asm/cpu.h>
> -#include <linux/intel-iommu.h>
> -#include <acpi/acpi.h>
>  #include <asm/irq_remapping.h>
>  #include <asm/pci-direct.h>
>  #include <asm/msidef.h>
> diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
> index ecfac7e..8dcccff 100644
> --- a/drivers/pci/hotplug/acpiphp_ibm.c
> +++ b/drivers/pci/hotplug/acpiphp_ibm.c
> @@ -31,12 +31,11 @@
>  #include <linux/slab.h>
>  #include <linux/module.h>
>  #include <linux/kernel.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/sysfs.h>
>  #include <linux/kobject.h>
> -#include <asm/uaccess.h>
>  #include <linux/moduleparam.h>
>  #include <linux/pci.h>
> +#include <asm/uaccess.h>
> 
>  #include "acpiphp.h"
>  #include "../pci.h"
> diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
> index 21e865d..24e147c 100644
> --- a/drivers/pci/hotplug/pciehp.h
> +++ b/drivers/pci/hotplug/pciehp.h
> @@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
>  }
> 
>  #ifdef CONFIG_ACPI
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include <linux/pci-acpi.h>
> 
>  void __init pciehp_acpi_slot_detection_init(void);
> diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
> index 50ce680..2122b2b 100644
> --- a/drivers/pci/ioapic.c
> +++ b/drivers/pci/ioapic.c
> @@ -20,7 +20,6 @@
>  #include <linux/module.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> 
>  struct ioapic {
>  	acpi_handle	handle;
> diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> index 577074e..43e3179 100644
> --- a/drivers/pci/pci-acpi.c
> +++ b/drivers/pci/pci-acpi.c
> @@ -12,9 +12,6 @@
>  #include <linux/pci.h>
>  #include <linux/module.h>
>  #include <linux/pci-aspm.h>
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -
>  #include <linux/pci-acpi.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/pm_qos.h>
> diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> index d51f45a..dbafcc8 100644
> --- a/drivers/pci/pci-label.c
> +++ b/drivers/pci/pci-label.c
> @@ -29,7 +29,6 @@
>  #include <linux/nls.h>
>  #include <linux/acpi.h>
>  #include <linux/pci-acpi.h>
> -#include <acpi/acpi_bus.h>
>  #include "pci.h"
> 
>  #define	DEVICE_LABEL_DSM	0x07
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index c9076bd..c91f69b3 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -41,8 +41,6 @@
>  #include <linux/slab.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/video.h>
> 
>  MODULE_AUTHOR("Carlos Corbacho");
> diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> index 0e9c169..430b5c3 100644
> --- a/drivers/platform/x86/asus-laptop.c
> +++ b/drivers/platform/x86/asus-laptop.c
> @@ -53,8 +53,7 @@
>  #include <linux/rfkill.h>
>  #include <linux/slab.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
> 
>  #define ASUS_LAPTOP_VERSION	"0.42"
> 
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 19c313b..df7ecb9 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -45,8 +45,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/platform_device.h>
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/video.h>
> 
>  #include "asus-wmi.h"
> diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> index 6dfa8d3..70d355a 100644
> --- a/drivers/platform/x86/classmate-laptop.c
> +++ b/drivers/platform/x86/classmate-laptop.c
> @@ -21,14 +21,13 @@
>  #include <linux/module.h>
>  #include <linux/slab.h>
>  #include <linux/workqueue.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/backlight.h>
>  #include <linux/input.h>
>  #include <linux/rfkill.h>
> 
>  MODULE_LICENSE("GPL");
> 
> -
>  struct cmpc_accel {
>  	int sensitivity;
>  	int g_select;
> diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
> index bcf8cc6..dbc97a3 100644
> --- a/drivers/platform/x86/dell-wmi-aio.c
> +++ b/drivers/platform/x86/dell-wmi-aio.c
> @@ -24,7 +24,6 @@
>  #include <linux/types.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/acpi.h>
>  #include <linux/string.h>
> 
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index fa9a217..bdf483b 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -32,7 +32,6 @@
>  #include <linux/types.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> -#include <acpi/acpi_drivers.h>
>  #include <linux/acpi.h>
>  #include <linux/string.h>
>  #include <linux/dmi.h>
> diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> index aefcc32..cabd567 100644
> --- a/drivers/platform/x86/eeepc-laptop.c
> +++ b/drivers/platform/x86/eeepc-laptop.c
> @@ -28,8 +28,7 @@
>  #include <linux/hwmon.h>
>  #include <linux/hwmon-sysfs.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  #include <linux/uaccess.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
> index af67e6e..6112933 100644
> --- a/drivers/platform/x86/eeepc-wmi.c
> +++ b/drivers/platform/x86/eeepc-wmi.c
> @@ -33,7 +33,7 @@
>  #include <linux/input/sparse-keymap.h>
>  #include <linux/dmi.h>
>  #include <linux/fb.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
> 
>  #include "asus-wmi.h"
> 
> diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> index a8e43cf..aff4d06 100644
> --- a/drivers/platform/x86/hp_accel.c
> +++ b/drivers/platform/x86/hp_accel.c
> @@ -36,7 +36,7 @@
>  #include <linux/uaccess.h>
>  #include <linux/leds.h>
>  #include <linux/atomic.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include "../../misc/lis3lv02d/lis3lv02d.h"
> 
>  #define DRIVER_NAME     "hp_accel"
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index 6788acc..70b5729 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -26,8 +26,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/rfkill.h>
>  #include <linux/platform_device.h>
>  #include <linux/input.h>
> diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
> index a2083a9..d45bca3 100644
> --- a/drivers/platform/x86/intel-rst.c
> +++ b/drivers/platform/x86/intel-rst.c
> @@ -20,7 +20,7 @@
>  #include <linux/init.h>
>  #include <linux/module.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_LICENSE("GPL");
> 
> diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
> index 1838400..04cf5df 100644
> --- a/drivers/platform/x86/intel-smartconnect.c
> +++ b/drivers/platform/x86/intel-smartconnect.c
> @@ -19,7 +19,7 @@
> 
>  #include <linux/init.h>
>  #include <linux/module.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_LICENSE("GPL");
> 
> diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
> index 11244f8..e8b46d2 100644
> --- a/drivers/platform/x86/intel_menlow.c
> +++ b/drivers/platform/x86/intel_menlow.c
> @@ -36,10 +36,8 @@
>  #include <linux/types.h>
>  #include <linux/pci.h>
>  #include <linux/pm.h>
> -
>  #include <linux/thermal.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_AUTHOR("Thomas Sujith");
>  MODULE_AUTHOR("Zhang Rui");
> diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
> index f6f18cd..4bc9604 100644
> --- a/drivers/platform/x86/intel_oaktrail.c
> +++ b/drivers/platform/x86/intel_oaktrail.c
> @@ -50,9 +50,6 @@
>  #include <linux/platform_device.h>
>  #include <linux/dmi.h>
>  #include <linux/rfkill.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
> 
>  #define DRIVER_NAME	"intel_oaktrail"
>  #define DRIVER_VERSION	"0.4ac1"
> diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
> index 0aea63b..3c59c0a 100644
> --- a/drivers/platform/x86/mxm-wmi.c
> +++ b/drivers/platform/x86/mxm-wmi.c
> @@ -20,8 +20,7 @@
>  #include <linux/kernel.h>
>  #include <linux/module.h>
>  #include <linux/init.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_AUTHOR("Dave Airlie");
>  MODULE_DESCRIPTION("MXM WMI Driver");
> diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
> index 10d12b2..137d602 100644
> --- a/drivers/platform/x86/panasonic-laptop.c
> +++ b/drivers/platform/x86/panasonic-laptop.c
> @@ -125,12 +125,10 @@
>  #include <linux/seq_file.h>
>  #include <linux/uaccess.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/input.h>
>  #include <linux/input/sparse-keymap.h>
> 
> -
>  #ifndef ACPI_HOTKEY_COMPONENT
>  #define ACPI_HOTKEY_COMPONENT	0x10000000
>  #endif
> diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
> index 47ae0c4..c9f6e51 100644
> --- a/drivers/platform/x86/pvpanic.c
> +++ b/drivers/platform/x86/pvpanic.c
> @@ -24,8 +24,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
>  MODULE_DESCRIPTION("pvpanic device driver");
> diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
> index cae7098..5413f62 100644
> --- a/drivers/platform/x86/samsung-q10.c
> +++ b/drivers/platform/x86/samsung-q10.c
> @@ -15,7 +15,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/backlight.h>
>  #include <linux/dmi.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define SAMSUNGQ10_BL_MAX_INTENSITY 7
> 
> diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> index 47caab0..1d00039 100644
> --- a/drivers/platform/x86/sony-laptop.c
> +++ b/drivers/platform/x86/sony-laptop.c
> @@ -61,9 +61,6 @@
>  #include <linux/workqueue.h>
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
> -#include <acpi/acpi_drivers.h>
> -#include <acpi/acpi_bus.h>
> -#include <asm/uaccess.h>
>  #include <linux/sonypi.h>
>  #include <linux/sony-laptop.h>
>  #include <linux/rfkill.h>
> @@ -71,6 +68,7 @@
>  #include <linux/poll.h>
>  #include <linux/miscdevice.h>
>  #endif
> +#include <asm/uaccess.h>
> 
>  #define dprintk(fmt, ...)			\
>  do {						\
> diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
> index 9b93fdb..6a6ea28 100644
> --- a/drivers/platform/x86/tc1100-wmi.c
> +++ b/drivers/platform/x86/tc1100-wmi.c
> @@ -32,9 +32,7 @@
>  #include <linux/slab.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/platform_device.h>
> 
>  #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 05e046a..9d7e34b 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -61,7 +61,6 @@
>  #include <linux/freezer.h>
>  #include <linux/delay.h>
>  #include <linux/slab.h>
> -
>  #include <linux/nvram.h>
>  #include <linux/proc_fs.h>
>  #include <linux/seq_file.h>
> @@ -74,21 +73,16 @@
>  #include <linux/input.h>
>  #include <linux/leds.h>
>  #include <linux/rfkill.h>
> -#include <asm/uaccess.h>
> -
>  #include <linux/dmi.h>
>  #include <linux/jiffies.h>
>  #include <linux/workqueue.h>
> -
> +#include <linux/acpi.h>
> +#include <linux/pci_ids.h>
> +#include <linux/thinkpad_acpi.h>
>  #include <sound/core.h>
>  #include <sound/control.h>
>  #include <sound/initval.h>
> -
> -#include <acpi/acpi_drivers.h>
> -
> -#include <linux/pci_ids.h>
> -
> -#include <linux/thinkpad_acpi.h>
> +#include <asm/uaccess.h>
> 
>  /* ThinkPad CMOS commands */
>  #define TP_CMOS_VOLUME_DOWN	0
> diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> index 0cfadb6..b5f17eb 100644
> --- a/drivers/platform/x86/toshiba_acpi.c
> +++ b/drivers/platform/x86/toshiba_acpi.c
> @@ -54,11 +54,9 @@
>  #include <linux/slab.h>
>  #include <linux/workqueue.h>
>  #include <linux/i8042.h>
> -
> +#include <linux/acpi.h>
>  #include <asm/uaccess.h>
> 
> -#include <acpi/acpi_drivers.h>
> -
>  MODULE_AUTHOR("John Belmonte");
>  MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
>  MODULE_LICENSE("GPL");
> diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
> index 74dd01a..2cb1ea6 100644
> --- a/drivers/platform/x86/toshiba_bluetooth.c
> +++ b/drivers/platform/x86/toshiba_bluetooth.c
> @@ -23,14 +23,12 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
>  MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
>  MODULE_LICENSE("GPL");
> 
> -
>  static int toshiba_bt_rfkill_add(struct acpi_device *device);
>  static int toshiba_bt_rfkill_remove(struct acpi_device *device);
>  static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
> diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> index 62e8c22..ba13ade 100644
> --- a/drivers/platform/x86/wmi.c
> +++ b/drivers/platform/x86/wmi.c
> @@ -37,8 +37,6 @@
>  #include <linux/acpi.h>
>  #include <linux/slab.h>
>  #include <linux/module.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> 
>  ACPI_MODULE_NAME("wmi");
>  MODULE_AUTHOR("Carlos Corbacho");
> diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> index 4b1377b..49cbcce 100644
> --- a/drivers/platform/x86/xo15-ebook.c
> +++ b/drivers/platform/x86/xo15-ebook.c
> @@ -18,8 +18,7 @@
>  #include <linux/init.h>
>  #include <linux/types.h>
>  #include <linux/input.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
> 
>  #define MODULE_NAME "xo15-ebook"
> 
> diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> index 14655a0..e869ba6 100644
> --- a/drivers/pnp/pnpacpi/core.c
> +++ b/drivers/pnp/pnpacpi/core.c
> @@ -24,7 +24,6 @@
>  #include <linux/pnp.h>
>  #include <linux/slab.h>
>  #include <linux/mod_devicetable.h>
> -#include <acpi/acpi_bus.h>
> 
>  #include "../base.h"
>  #include "pnpacpi.h"
> diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
> index 3e60225..051ef96 100644
> --- a/drivers/pnp/pnpacpi/pnpacpi.h
> +++ b/drivers/pnp/pnpacpi/pnpacpi.h
> @@ -1,7 +1,6 @@
>  #ifndef ACPI_PNP_H
>  #define ACPI_PNP_H
> 
> -#include <acpi/acpi_bus.h>
>  #include <linux/acpi.h>
>  #include <linux/pnp.h>
> 
> diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
> index f5b4ca5..5e753d7 100644
> --- a/drivers/sfi/sfi_acpi.c
> +++ b/drivers/sfi/sfi_acpi.c
> @@ -60,7 +60,7 @@
>  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
> 
>  #include <linux/kernel.h>
> -#include <acpi/acpi.h>
> +#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> 
>  #include <linux/sfi.h>
>  #include "sfi_core.h"
> diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
> index 9f6ebdb..a85c3d6 100644
> --- a/drivers/staging/quickstart/quickstart.c
> +++ b/drivers/staging/quickstart/quickstart.c
> @@ -31,7 +31,7 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <linux/platform_device.h>
>  #include <linux/input.h>
> 
> diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
> index 4e243c3..11c6569 100644
> --- a/drivers/usb/core/usb-acpi.c
> +++ b/drivers/usb/core/usb-acpi.c
> @@ -16,7 +16,6 @@
>  #include <linux/acpi.h>
>  #include <linux/pci.h>
>  #include <linux/usb/hcd.h>
> -#include <acpi/acpi_bus.h>
> 
>  #include "usb.h"
> 
> diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
> index 73496c3..80875fb 100644
> --- a/drivers/xen/xen-acpi-cpuhotplug.c
> +++ b/drivers/xen/xen-acpi-cpuhotplug.c
> @@ -24,10 +24,7 @@
>  #include <linux/cpu.h>
>  #include <linux/acpi.h>
>  #include <linux/uaccess.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
>  #include <acpi/processor.h>
> -
>  #include <xen/acpi.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
> index 9b056f0..f8d1862 100644
> --- a/drivers/xen/xen-acpi-memhotplug.c
> +++ b/drivers/xen/xen-acpi-memhotplug.c
> @@ -22,7 +22,6 @@
>  #include <linux/init.h>
>  #include <linux/types.h>
>  #include <linux/acpi.h>
> -#include <acpi/acpi_drivers.h>
>  #include <xen/acpi.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> index 59708fd..40c4bc0 100644
> --- a/drivers/xen/xen-acpi-pad.c
> +++ b/drivers/xen/xen-acpi-pad.c
> @@ -18,11 +18,10 @@
> 
>  #include <linux/kernel.h>
>  #include <linux/types.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -#include <asm/xen/hypercall.h>
> +#include <linux/acpi.h>
>  #include <xen/interface/version.h>
>  #include <xen/xen-ops.h>
> +#include <asm/xen/hypercall.h>
> 
>  #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
>  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
> diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> index 13bc6c3..7231859 100644
> --- a/drivers/xen/xen-acpi-processor.c
> +++ b/drivers/xen/xen-acpi-processor.c
> @@ -28,10 +28,8 @@
>  #include <linux/module.h>
>  #include <linux/types.h>
>  #include <linux/syscore_ops.h>
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> +#include <linux/acpi.h>
>  #include <acpi/processor.h>
> -
>  #include <xen/xen.h>
>  #include <xen/interface/platform.h>
>  #include <asm/xen/hypercall.h>
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index 95831e7..b241b73 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -28,8 +28,6 @@
> 
>  #include <linux/device.h>
> 
> -#include <acpi/acpi.h>
> -
>  /* TBD: Make dynamic */
>  #define ACPI_MAX_HANDLES	10
>  struct acpi_handle_list {
> diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> index 1cedfcb..b124fdb 100644
> --- a/include/acpi/acpi_drivers.h
> +++ b/include/acpi/acpi_drivers.h
> @@ -26,9 +26,6 @@
>  #ifndef __ACPI_DRIVERS_H__
>  #define __ACPI_DRIVERS_H__
> 
> -#include <linux/acpi.h>
> -#include <acpi/acpi_bus.h>
> -
>  #define ACPI_MAX_STRING			80
> 
>  /*
> diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> index b0ffa21..2a5a139 100644
> --- a/include/linux/acpi_io.h
> +++ b/include/linux/acpi_io.h
> @@ -2,7 +2,7 @@
>  #define _ACPI_IO_H_
> 
>  #include <linux/io.h>
> -#include <acpi/acpi.h>
> +#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> 
>  static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
>  					    acpi_size size)
> diff --git a/include/linux/ide.h b/include/linux/ide.h
> index 46a1422..93b5ca7 100644
> --- a/include/linux/ide.h
> +++ b/include/linux/ide.h
> @@ -18,14 +18,10 @@
>  #include <linux/completion.h>
>  #include <linux/pm.h>
>  #include <linux/mutex.h>
> -#ifdef CONFIG_BLK_DEV_IDEACPI
> -#include <acpi/acpi.h>
> -#endif
> -#include <asm/byteorder.h>
> -#include <asm/io.h>
> -
>  /* for request_sense */
>  #include <linux/cdrom.h>
> +#include <asm/byteorder.h>
> +#include <asm/io.h>
> 
>  #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
>  # define SUPPORT_VLB_SYNC 0
> diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> index 8ba7e5b..82f9673 100644
> --- a/include/linux/iscsi_ibft.h
> +++ b/include/linux/iscsi_ibft.h
> @@ -21,7 +21,7 @@
>  #ifndef ISCSI_IBFT_H
>  #define ISCSI_IBFT_H
> 
> -#include <acpi/acpi.h>
> +#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> 
>  /*
>   * Logical location of iSCSI Boot Format Table.
> diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> index a2e2f1d..5f2e559 100644
> --- a/include/linux/pci_hotplug.h
> +++ b/include/linux/pci_hotplug.h
> @@ -175,8 +175,7 @@ struct hotplug_params {
>  };
> 
>  #ifdef CONFIG_ACPI
> -#include <acpi/acpi.h>
> -#include <acpi/acpi_bus.h>
> +#include <linux/acpi.h>
>  int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
>  int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
>  int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
> index 631af63..2cfcb79 100644
> --- a/include/linux/sfi_acpi.h
> +++ b/include/linux/sfi_acpi.h
> @@ -60,7 +60,7 @@
>  #define _LINUX_SFI_ACPI_H
> 
>  #ifdef CONFIG_SFI
> -#include <acpi/acpi.h>		/* struct acpi_table_header */
> +#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> 
>  extern int sfi_acpi_table_parse(char *signature, char *oem_id,
>  				char *oem_table_id,
> diff --git a/include/linux/tboot.h b/include/linux/tboot.h
> index c75128b..9a54b33 100644
> --- a/include/linux/tboot.h
> +++ b/include/linux/tboot.h
> @@ -34,7 +34,7 @@ enum {
>  };
> 
>  #ifdef CONFIG_INTEL_TXT
> -#include <acpi/acpi.h>
> +#include <linux/acpi.h>
>  /* used to communicate between tboot and the launched kernel */
> 
>  #define TB_KEY_SIZE             64   /* 512 bits */
> diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> index 66cace6..0f10b81 100644
> --- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> +++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
> @@ -25,12 +25,9 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/delay.h>
> -
> +#include <linux/acpi.h>
>  #include <asm/io.h>
> 
> -#include <acpi/acpi_bus.h>
> -#include <acpi/acpi_drivers.h>
> -
>  static int pm_tmr_ioport = 0;
> 
>  /*helper function to safely read acpi pm timesource*/
> --
> 1.7.10
> 

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [Intel-gfx] [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
@ 2013-12-04  8:16     ` Daniel Vetter
  2013-12-05 13:04     ` Jani Nikula
  1 sibling, 0 replies; 40+ messages in thread
From: Daniel Vetter @ 2013-12-04  8:16 UTC (permalink / raw)
  To: Lv Zheng
  Cc: Rafael J. Wysocki, Len Brown, Matthew Garrett, Daniel Vetter,
	intel-gfx, linux-kernel, Lv Zheng, linux-acpi

On Wed, Dec 04, 2013 at 08:38:08AM +0800, Lv Zheng wrote:
> In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
> all external modules should depend on CONFIG_ACPI rather than using ACPICA
> header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
> into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
> dependent modules.
> 
> One of the build breakage is:
> include/linux/acpi_io.h:7:45: error: unknown type name 'acpi_physical_address'
> include/linux/acpi_io.h:8:10: error: unknown type name 'acpi_size'
> include/linux/acpi_io.h:13:33: error: unknown type name 'acpi_physical_address'
> include/linux/acpi_io.h:15:40: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
> include/linux/acpi_io.h:15:40: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
> include/linux/acpi_io.h:16:43: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
> drivers/gpu/drm/i915/intel_opregion.c: In function 'intel_opregion_setup':
> drivers/gpu/drm/i915/intel_opregion.c:883:2: error: implicit declaration of function 'acpi_os_ioremap' [-Werror=implicit-function-declaration]
> drivers/gpu/drm/i915/intel_opregion.c:883:7: warning: assignment makes pointer from integer without a cast [enabled by default]
> 
> The root causes of this breakage are:
> 1. The <linux/acpi_io.h> depends on CONFIG_ACPI=y as most of the prototypes
>    exported by it are implemented in drivers/acpi/osl.c.
> 2. CONFIG_DRM_I915 uses the only "inline" function acpi_os_ioremap() to
>    implement stubs but it shouldn't.
> 
> Since ACPI IGD OpRegion is an ACPI-based mechanism, (please refer to the
> Doclink below), this patch fixes this issue by making
> drivers/gpu/drm/i915/intel_opregion.c dependent on CONFIG_ACPI.  This is
> identical to other Intel DRM drivers' OpRegion support (e.x.,
> drivers/gpu/drm/gma500/opregion.c).
> 
> Since acpi_io.h is not safe for CONFIG_ACPI=y environment, this patch also
> moves it to include/acpi, includes it in <linux/acpi.h> for CONFIG_ACPI=y
> build environment and cleans up its inclusions by converting them into
> <linux/acpi.h> inclusions.
> 
> Doclink: https://01.org/linuxgraphics/sites/default/files/documentation/acpi_igd_opregion_spec.pdf
> Cc: Matthew Garrett <mjg59@srcf.ucam.org>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: intel-gfx@lists.freedesktop.org
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>

Makes sense. Acked for merging through acpi trees (or whatever else is
appropriate, patch seems to be part of a series).

Cheers, Daniel

> ---
>  drivers/acpi/apei/apei-base.c     |    1 -
>  drivers/acpi/apei/apei-internal.h |    1 -
>  drivers/acpi/apei/ghes.c          |    1 -
>  drivers/acpi/nvs.c                |    1 -
>  drivers/acpi/osl.c                |    1 -
>  drivers/gpu/drm/gma500/opregion.c |    1 -
>  drivers/gpu/drm/i915/Makefile     |    3 +--
>  drivers/gpu/drm/i915/i915_drv.h   |    3 ++-
>  include/acpi/acpi_io.h            |   17 +++++++++++++++++
>  include/linux/acpi.h              |    1 +
>  include/linux/acpi_io.h           |   18 ------------------
>  11 files changed, 21 insertions(+), 27 deletions(-)
>  create mode 100644 include/acpi/acpi_io.h
>  delete mode 100644 include/linux/acpi_io.h
> 
> diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
> index 6d2c49b..0760b75 100644
> --- a/drivers/acpi/apei/apei-base.c
> +++ b/drivers/acpi/apei/apei-base.c
> @@ -34,7 +34,6 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  #include <linux/slab.h>
>  #include <linux/io.h>
>  #include <linux/kref.h>
> diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
> index 21ba34a..e5bcd91 100644
> --- a/drivers/acpi/apei/apei-internal.h
> +++ b/drivers/acpi/apei/apei-internal.h
> @@ -8,7 +8,6 @@
>  
>  #include <linux/cper.h>
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  
>  struct apei_exec_context;
>  
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index a30bc31..694c486 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -33,7 +33,6 @@
>  #include <linux/module.h>
>  #include <linux/init.h>
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  #include <linux/io.h>
>  #include <linux/interrupt.h>
>  #include <linux/timer.h>
> diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
> index 386a9fe..ef28613 100644
> --- a/drivers/acpi/nvs.c
> +++ b/drivers/acpi/nvs.c
> @@ -12,7 +12,6 @@
>  #include <linux/mm.h>
>  #include <linux/slab.h>
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  
>  /* ACPI NVS regions, APEI may use it */
>  
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 7e2d814..63251b6 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -39,7 +39,6 @@
>  #include <linux/workqueue.h>
>  #include <linux/nmi.h>
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  #include <linux/efi.h>
>  #include <linux/ioport.h>
>  #include <linux/list.h>
> diff --git a/drivers/gpu/drm/gma500/opregion.c b/drivers/gpu/drm/gma500/opregion.c
> index ad0d6de..13ec628 100644
> --- a/drivers/gpu/drm/gma500/opregion.c
> +++ b/drivers/gpu/drm/gma500/opregion.c
> @@ -22,7 +22,6 @@
>   *
>   */
>  #include <linux/acpi.h>
> -#include <linux/acpi_io.h>
>  #include "psb_drv.h"
>  #include "psb_intel_reg.h"
>  
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 41838ea..d4ae48b 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -38,7 +38,6 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
>  	  intel_ringbuffer.o \
>  	  intel_overlay.o \
>  	  intel_sprite.o \
> -	  intel_opregion.o \
>  	  intel_sideband.o \
>  	  intel_uncore.o \
>  	  dvo_ch7xxx.o \
> @@ -51,7 +50,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
>  
>  i915-$(CONFIG_COMPAT)   += i915_ioc32.o
>  
> -i915-$(CONFIG_ACPI)	+= intel_acpi.o
> +i915-$(CONFIG_ACPI)	+= intel_acpi.o intel_opregion.o
>  
>  i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index ccdbecc..7f37b83 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2336,8 +2336,8 @@ extern void intel_i2c_reset(struct drm_device *dev);
>  
>  /* intel_opregion.c */
>  struct intel_encoder;
> -extern int intel_opregion_setup(struct drm_device *dev);
>  #ifdef CONFIG_ACPI
> +extern int intel_opregion_setup(struct drm_device *dev);
>  extern void intel_opregion_init(struct drm_device *dev);
>  extern void intel_opregion_fini(struct drm_device *dev);
>  extern void intel_opregion_asle_intr(struct drm_device *dev);
> @@ -2346,6 +2346,7 @@ extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  extern int intel_opregion_notify_adapter(struct drm_device *dev,
>  					 pci_power_t state);
>  #else
> +static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
>  static inline void intel_opregion_init(struct drm_device *dev) { return; }
>  static inline void intel_opregion_fini(struct drm_device *dev) { return; }
>  static inline void intel_opregion_asle_intr(struct drm_device *dev) { return; }
> diff --git a/include/acpi/acpi_io.h b/include/acpi/acpi_io.h
> new file mode 100644
> index 0000000..2be8580
> --- /dev/null
> +++ b/include/acpi/acpi_io.h
> @@ -0,0 +1,17 @@
> +#ifndef _ACPI_IO_H_
> +#define _ACPI_IO_H_
> +
> +#include <linux/io.h>
> +
> +static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
> +					    acpi_size size)
> +{
> +       return ioremap_cache(phys, size);
> +}
> +
> +void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
> +
> +int acpi_os_map_generic_address(struct acpi_generic_address *addr);
> +void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
> +
> +#endif
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index d9099b1..726a6aa 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -42,6 +42,7 @@
>  #include <acpi/acpi_bus.h>
>  #include <acpi/acpi_drivers.h>
>  #include <acpi/acpi_numa.h>
> +#include <acpi/acpi_io.h>
>  #include <asm/acpi.h>
>  
>  static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
> diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
> deleted file mode 100644
> index 2a5a139..0000000
> --- a/include/linux/acpi_io.h
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -#ifndef _ACPI_IO_H_
> -#define _ACPI_IO_H_
> -
> -#include <linux/io.h>
> -#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> -
> -static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
> -					    acpi_size size)
> -{
> -       return ioremap_cache(phys, size);
> -}
> -
> -void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
> -
> -int acpi_os_map_generic_address(struct acpi_generic_address *addr);
> -void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
> -
> -#endif
> -- 
> 1.7.10
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [Intel-gfx] [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
  2013-12-04  8:16     ` [Intel-gfx] " Daniel Vetter
@ 2013-12-05 13:04     ` Jani Nikula
  1 sibling, 0 replies; 40+ messages in thread
From: Jani Nikula @ 2013-12-05 13:04 UTC (permalink / raw)
  To: Lv Zheng, Rafael J. Wysocki, Len Brown
  Cc: Matthew Garrett, Daniel Vetter, intel-gfx, linux-kernel,
	Lv Zheng, linux-acpi, Lv Zheng

On Wed, 04 Dec 2013, Lv Zheng <lv.zheng@intel.com> wrote:
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 41838ea..d4ae48b 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -38,7 +38,6 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
>  	  intel_ringbuffer.o \
>  	  intel_overlay.o \
>  	  intel_sprite.o \
> -	  intel_opregion.o \
>  	  intel_sideband.o \
>  	  intel_uncore.o \
>  	  dvo_ch7xxx.o \
> @@ -51,7 +50,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
>  
>  i915-$(CONFIG_COMPAT)   += i915_ioc32.o
>  
> -i915-$(CONFIG_ACPI)	+= intel_acpi.o
> +i915-$(CONFIG_ACPI)	+= intel_acpi.o intel_opregion.o
>  
>  i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index ccdbecc..7f37b83 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2336,8 +2336,8 @@ extern void intel_i2c_reset(struct drm_device *dev);
>  
>  /* intel_opregion.c */
>  struct intel_encoder;
> -extern int intel_opregion_setup(struct drm_device *dev);
>  #ifdef CONFIG_ACPI
> +extern int intel_opregion_setup(struct drm_device *dev);
>  extern void intel_opregion_init(struct drm_device *dev);
>  extern void intel_opregion_fini(struct drm_device *dev);
>  extern void intel_opregion_asle_intr(struct drm_device *dev);
> @@ -2346,6 +2346,7 @@ extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  extern int intel_opregion_notify_adapter(struct drm_device *dev,
>  					 pci_power_t state);
>  #else
> +static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
>  static inline void intel_opregion_init(struct drm_device *dev) { return; }
>  static inline void intel_opregion_fini(struct drm_device *dev) { return; }
>  static inline void intel_opregion_asle_intr(struct drm_device *dev) { return; }

FWIW, the above i915 specific hunks are

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Nuking the CONFIG_ACPI conditional build within intel_opregion.c is an
obvious follow-up patch later on.


-- 
Jani Nikula, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH v2] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
                   ` (5 preceding siblings ...)
  2013-12-04  0:41 ` [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions Lv Zheng
@ 2013-12-05 14:25 ` Lv Zheng
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
  7 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-05 14:25 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Matthew Garrett,
	Daniel Vetter, intel-gfx

From: Lv Zheng <lv.zheng@intel.com>

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
include/linux/acpi_io.h:7:45: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:8:10: error: unknown type name 'acpi_size'
include/linux/acpi_io.h:13:33: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:15:40: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
include/linux/acpi_io.h:15:40: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
include/linux/acpi_io.h:16:43: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
drivers/gpu/drm/i915/intel_opregion.c: In function 'intel_opregion_setup':
drivers/gpu/drm/i915/intel_opregion.c:883:2: error: implicit declaration of function 'acpi_os_ioremap' [-Werror=implicit-function-declaration]
drivers/gpu/drm/i915/intel_opregion.c:883:7: warning: assignment makes pointer from integer without a cast [enabled by default]

The root causes of this breakage are:
1. The <linux/acpi_io.h> depends on CONFIG_ACPI=y as most of the prototypes
   exported by it are implemented in drivers/acpi/osl.c.
2. CONFIG_DRM_I915 uses the only "inline" function acpi_os_ioremap() to
   implement stubs but it shouldn't.

Since ACPI IGD OpRegion is an ACPI-based mechanism, (please refer to the
Doclink below), this patch fixes this issue by making
drivers/gpu/drm/i915/intel_opregion.c dependent on CONFIG_ACPI.  This is
identical to other Intel DRM drivers' OpRegion support (e.x.,
drivers/gpu/drm/gma500/opregion.c).

Since acpi_io.h is not safe for CONFIG_ACPI=y environment, this patch also
moves it to include/acpi, includes it in <linux/acpi.h> for CONFIG_ACPI=y
build environment and cleans up its inclusions by converting them into
<linux/acpi.h> inclusions.

After that, since all <acpi/acpi_io.h> inclusions are CONFIG_ACPI
dependent, the FIXME marked <acpi/acpi.h> inclusion in <acpi/acpi_io.h> is
also deleted in this patch.

Doclink: https://01.org/linuxgraphics/sites/default/files/documentation/acpi_igd_opregion_spec.pdf
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 Updated due to:
 1. Patch descripition is changed, "FIXME deletion" notes is added;
 2. A mistake is fixed in the original patch.  The change in the
    drivers/gpu/drm/i915/intel_opregion.c is not added to the quilt.  It's
    lost as a process issues in my tests.
    This update fixes this issue by deleting linux/acpi_io.h inclusion from
    drivers/gpu/drm/i915/intel_opregion.c.
    Recursive build test environment is set up as follows:
    Following CONFIGs are enabled by default:
     CONFIG_DRM_I915=y
     CONFIG_DRM_GMA500=y
     CONFIG_ACPI_APEI=y
     CONFIG_ACPI_APEI_GHES=y
     CONFIG_ACPI_APEI_EINJ=y
     CONFIG_ACPI_APEI_ERST_DEBUG=y
    Following special CONFIG tests are enabled:
     CONFIG_ACPI=n
    Following special object tests are enabled:
     drivers/acpi/apei/erst.o
     drivers/acpi/apei/hest.o
     drivers/acpi/apei/ghes.o
     drivers/acpi/apei/einj.o
     drivers/acpi/apei/erst-dbg.o
     drivers/gpu/drm/i915/intel_opregion.o
     drivers/gpu/drm/gma500/opregion.o
    It is done after merging the patch and before signing-off the patch.
---
 drivers/acpi/apei/apei-base.c         |    1 -
 drivers/acpi/apei/apei-internal.h     |    1 -
 drivers/acpi/apei/ghes.c              |    1 -
 drivers/acpi/nvs.c                    |    1 -
 drivers/acpi/osl.c                    |    1 -
 drivers/gpu/drm/gma500/opregion.c     |    1 -
 drivers/gpu/drm/i915/Makefile         |    3 +--
 drivers/gpu/drm/i915/i915_drv.h       |    3 ++-
 drivers/gpu/drm/i915/intel_opregion.c |    1 -
 include/acpi/acpi_io.h                |   17 +++++++++++++++++
 include/linux/acpi.h                  |    1 +
 include/linux/acpi_io.h               |   18 ------------------
 12 files changed, 21 insertions(+), 28 deletions(-)
 create mode 100644 include/acpi/acpi_io.h
 delete mode 100644 include/linux/acpi_io.h

diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
index 6d2c49b..0760b75 100644
--- a/drivers/acpi/apei/apei-base.c
+++ b/drivers/acpi/apei/apei-base.c
@@ -34,7 +34,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/slab.h>
 #include <linux/io.h>
 #include <linux/kref.h>
diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
index 21ba34a..e5bcd91 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -8,7 +8,6 @@
 
 #include <linux/cper.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 struct apei_exec_context;
 
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index a30bc31..694c486 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -33,7 +33,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/timer.h>
diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index 386a9fe..ef28613 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -12,7 +12,6 @@
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 /* ACPI NVS regions, APEI may use it */
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 7e2d814..63251b6 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -39,7 +39,6 @@
 #include <linux/workqueue.h>
 #include <linux/nmi.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/efi.h>
 #include <linux/ioport.h>
 #include <linux/list.h>
diff --git a/drivers/gpu/drm/gma500/opregion.c b/drivers/gpu/drm/gma500/opregion.c
index ad0d6de..13ec628 100644
--- a/drivers/gpu/drm/gma500/opregion.c
+++ b/drivers/gpu/drm/gma500/opregion.c
@@ -22,7 +22,6 @@
  *
  */
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include "psb_drv.h"
 #include "psb_intel_reg.h"
 
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 41838ea..d4ae48b 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -38,7 +38,6 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 	  intel_ringbuffer.o \
 	  intel_overlay.o \
 	  intel_sprite.o \
-	  intel_opregion.o \
 	  intel_sideband.o \
 	  intel_uncore.o \
 	  dvo_ch7xxx.o \
@@ -51,7 +50,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 
 i915-$(CONFIG_COMPAT)   += i915_ioc32.o
 
-i915-$(CONFIG_ACPI)	+= intel_acpi.o
+i915-$(CONFIG_ACPI)	+= intel_acpi.o intel_opregion.o
 
 i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ccdbecc..7f37b83 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2336,8 +2336,8 @@ extern void intel_i2c_reset(struct drm_device *dev);
 
 /* intel_opregion.c */
 struct intel_encoder;
-extern int intel_opregion_setup(struct drm_device *dev);
 #ifdef CONFIG_ACPI
+extern int intel_opregion_setup(struct drm_device *dev);
 extern void intel_opregion_init(struct drm_device *dev);
 extern void intel_opregion_fini(struct drm_device *dev);
 extern void intel_opregion_asle_intr(struct drm_device *dev);
@@ -2346,6 +2346,7 @@ extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 extern int intel_opregion_notify_adapter(struct drm_device *dev,
 					 pci_power_t state);
 #else
+static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
 static inline void intel_opregion_init(struct drm_device *dev) { return; }
 static inline void intel_opregion_fini(struct drm_device *dev) { return; }
 static inline void intel_opregion_asle_intr(struct drm_device *dev) { return; }
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 6d69a9b..9a8804b 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -28,7 +28,6 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <acpi/video.h>
 
 #include <drm/drmP.h>
diff --git a/include/acpi/acpi_io.h b/include/acpi/acpi_io.h
new file mode 100644
index 0000000..2be8580
--- /dev/null
+++ b/include/acpi/acpi_io.h
@@ -0,0 +1,17 @@
+#ifndef _ACPI_IO_H_
+#define _ACPI_IO_H_
+
+#include <linux/io.h>
+
+static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
+					    acpi_size size)
+{
+       return ioremap_cache(phys, size);
+}
+
+void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
+
+int acpi_os_map_generic_address(struct acpi_generic_address *addr);
+void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
+
+#endif
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 115c610..72c88f4 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -42,6 +42,7 @@
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/acpi_numa.h>
+#include <acpi/acpi_io.h>
 #include <asm/acpi.h>
 
 static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
deleted file mode 100644
index 2a5a139..0000000
--- a/include/linux/acpi_io.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _ACPI_IO_H_
-#define _ACPI_IO_H_
-
-#include <linux/io.h>
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
-
-static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
-					    acpi_size size)
-{
-       return ioremap_cache(phys, size);
-}
-
-void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
-
-int acpi_os_map_generic_address(struct acpi_generic_address *addr);
-void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
-
-#endif
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 0/6] ACPI: Cleanup header inclusions.
  2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
                   ` (6 preceding siblings ...)
  2013-12-05 14:25 ` [PATCH v2] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
@ 2013-12-06  8:51 ` Lv Zheng
  2013-12-06  8:51   ` [PATCH v3 1/6] ACPI: Clean up incorrect inclusions of ACPICA headers Lv Zheng
                     ` (5 more replies)
  7 siblings, 6 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:51 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

This patchset includes 2 patches already merged in linux-pm/linux-next
branch.  It is included as the following mailing list thread contains two
patchsets of the ACPICA header cleanups.
1. Cleanup header inclusions.
   http://www.spinics.net/lists/linux-acpi/msg47510.html
2. Cleanup direct ACPICA inclusions.
   http://www.spinics.net/lists/linux-acpi/msg47703.html
It is vague for the thread monitors.
This patchset collects all patches in this thread together to form a single
v3 patchset.

ACPICA header files are lacking in stub protections.  This makes all ACPICA
header files could only be included for CONFIG_ACPI=y environment.  This
infects new ACPI prototypes, if such prototypes referenced ACPICA defined
types, they must be incldued only in the CONFIG_ACPI=y environment.  The
<acpi/acpi_bus.h> and <acpi/acpi_drivers.h> are the monstrosity infants
born under this background, directly including them in the CONFIG_ACPI=n
environment is not safe.  The infection spreads to whole kernel source tree
that we can see "#ifdef CONFIG_ACPI" here and there.

This patchset tries to enforces <linux/acpi.h> inclusions instead of
<acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions.

For <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusion cleanups, as all
users are CONFIG_ACPI dependent, we don't have any issues raised.

For <acpi/acpi.h> inclusion cleanups, we have following 4 cases specially
handled:
1. "ACPI IGD OpRegion" support in i915 DRM driver.  It can be modified to
   be CONFIG_ACPI dependent.
2. "_CRS based MCFG checker" support, original configurability of this
   piece of code relies on link stage optimization.  This patchset
   corrects it by making the configurability to be dependent on compile
   stage references.
3. "iSCSI IBFT finder" support.  IBFT can only appear on ACPI platforms
   while IBFT locating mechanism doesn't rely on ACPI table constructions.
   It is currently not dependent on CONFIG_ACPI.  IMO, this behavior is
   This patchset corrects it by making it dependent on CONFIG_ACPI.  This
   patch need to be discussed, thus marked as RFC.
4. "SFI/ACPI wrapper" support.  This error is not fixed in this patchset.
   Its solution is still under discussion.  It need to be synchronized
   with SFI users.

During the fixes, <linux/acpi_io.h> is also detected as an ACPICA dependent
header, it thus be converted into <acpi/acpi_io.h> and included from
<linux/acpi.h> for CONFIG_ACPI builds.

NOTE that the first 2 commits in this series are already in the
linux-pm/linux-next branch.
 1. Commit: 91be0998578a1001db1382012676ee0a69d5cee3
    Subject: [PATCH] ACPI: Clean up incorrect inclusions of ACPICA headers
 2. Commit: 4e8fb7987f7d0390a2e74622c7c1cbb6760c6516
    Subject: [PATCH] ACPI: Clean up inclusions of ACPI header files
The reset 4 commits are rebased on top of this branch thus can be applied
to the branch directly.

Lv Zheng (6):
  ACPI: Clean up incorrect inclusions of ACPICA headers
  ACPI: Clean up inclusions of ACPI header files
  SFI: Fix warnings reported by W=1 builds.
  ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper -
    acpi_disabled linkage.
  ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware
    module.

NOTE that this cover-letter is manually editted,  so file summary is
useless and thus gets deleted.

-- 
1.7.10


^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH v3 1/6] ACPI: Clean up incorrect inclusions of ACPICA headers
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
@ 2013-12-06  8:51   ` Lv Zheng
  2013-12-06  8:51   ` [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files Lv Zheng
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:51 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi

Header file <acpi/acpi.h> contains environemnt settings and architecture
specific implementation that should be included before any other ACPICA
headers in order to keep a consistent build environment for ACPICA users.
The following internal ACPICA header files should be included from
<acpi/acpi.h> and should not be included by other kernel files:
  <acpi/acpiosxf.h>
  <acpi/acpixf.h>

Clean up incorrect inclusions of these files from non-ACPICA source
files.

[rjw: Subject and changelog]
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/acpi/nvs.c           |    1 -
 drivers/hwmon/asus_atk0110.c |    1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index 266bc58..386a9fe 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -13,7 +13,6 @@
 #include <linux/slab.h>
 #include <linux/acpi.h>
 #include <linux/acpi_io.h>
-#include <acpi/acpiosxf.h>
 
 /* ACPI NVS regions, APEI may use it */
 
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index b25c643..05fd83e 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -18,7 +18,6 @@
 #include <linux/err.h>
 
 #include <acpi/acpi.h>
-#include <acpi/acpixf.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/acpi_bus.h>
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
  2013-12-06  8:51   ` [PATCH v3 1/6] ACPI: Clean up incorrect inclusions of ACPICA headers Lv Zheng
@ 2013-12-06  8:51   ` Lv Zheng
  2013-12-06 14:31     ` Konrad Rzeszutek Wilk
  2013-12-06  8:51   ` [PATCH v3 3/6] SFI: Fix warnings reported by W=1 builds Lv Zheng
                     ` (3 subsequent siblings)
  5 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:51 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi,
	Konrad Rzeszutek Wilk, Greg Kroah-Hartman, Matthew Garrett,
	Tony Luck, H. Peter Anvin

Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
<acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
inclusions and remove some inclusions of those files that aren't
necessary.

First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
should not be included directly from any files that are built for
CONFIG_ACPI unset, because that generally leads to build warnings about
undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
<linux/acpi.h> includes those files and for CONFIG_ACPI unset it
provides stub ACPI symbols to be used in that case.

Second, there are ordering dependencies between those files that always
have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
latter depends on are always there.  And <acpi/acpi.h> which provides
basic ACPICA type declarations should always be included prior to any other
ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
<linux/acpi.h> as appropriate.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci stuff)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 arch/ia64/hp/common/aml_nfw.c                        |    3 +--
 arch/x86/kernel/apic/apic_flat_64.c                  |    4 +---
 arch/x86/kernel/apic/io_apic.c                       |    3 ---
 arch/x86/pci/mmconfig_32.c                           |    1 -
 arch/x86/platform/olpc/olpc-xo15-sci.c               |    3 +--
 drivers/acpi/ac.c                                    |    3 +--
 drivers/acpi/acpi_extlog.c                           |    1 -
 drivers/acpi/acpi_pad.c                              |    3 +--
 drivers/acpi/apei/einj.c                             |    1 -
 drivers/acpi/battery.c                               |    3 +--
 drivers/acpi/blacklist.c                             |    1 -
 drivers/acpi/bus.c                                   |    2 --
 drivers/acpi/button.c                                |    3 +--
 drivers/acpi/custom_method.c                         |    2 +-
 drivers/acpi/debugfs.c                               |    2 +-
 drivers/acpi/dock.c                                  |    2 --
 drivers/acpi/ec.c                                    |    5 ++---
 drivers/acpi/event.c                                 |    2 +-
 drivers/acpi/fan.c                                   |    3 +--
 drivers/acpi/hed.c                                   |    2 --
 drivers/acpi/numa.c                                  |    1 -
 drivers/acpi/osl.c                                   |    3 ---
 drivers/acpi/pci_irq.c                               |    2 --
 drivers/acpi/pci_link.c                              |    4 +---
 drivers/acpi/pci_root.c                              |    4 +---
 drivers/acpi/power.c                                 |    3 +--
 drivers/acpi/proc.c                                  |    4 +---
 drivers/acpi/processor_core.c                        |    3 +--
 drivers/acpi/processor_idle.c                        |    4 +---
 drivers/acpi/processor_perflib.c                     |    7 ++-----
 drivers/acpi/processor_thermal.c                     |    7 ++-----
 drivers/acpi/processor_throttling.c                  |    7 ++-----
 drivers/acpi/sbshc.c                                 |    3 +--
 drivers/acpi/scan.c                                  |    2 --
 drivers/acpi/sleep.c                                 |    4 ----
 drivers/acpi/sysfs.c                                 |    2 +-
 drivers/acpi/thermal.c                               |    5 ++---
 drivers/acpi/utils.c                                 |    2 --
 drivers/acpi/video.c                                 |    5 ++---
 drivers/acpi/wakeup.c                                |    1 -
 drivers/ata/libata-acpi.c                            |    2 --
 drivers/ata/pata_acpi.c                              |    5 ++---
 drivers/char/hpet.c                                  |    7 ++-----
 drivers/char/tpm/tpm_acpi.c                          |    2 +-
 drivers/char/tpm/tpm_ppi.c                           |    1 -
 drivers/gpu/drm/i915/intel_acpi.c                    |    2 --
 drivers/gpu/drm/nouveau/nouveau_acpi.c               |    7 +------
 drivers/gpu/drm/radeon/radeon_acpi.c                 |    6 +-----
 drivers/hv/vmbus_drv.c                               |    2 --
 drivers/hwmon/acpi_power_meter.c                     |    3 +--
 drivers/hwmon/asus_atk0110.c                         |    7 +------
 drivers/ide/ide-acpi.c                               |    1 -
 drivers/input/misc/atlas_btns.c                      |    2 +-
 drivers/iommu/amd_iommu_init.c                       |    1 -
 drivers/iommu/intel_irq_remapping.c                  |    4 ++--
 drivers/pci/hotplug/acpiphp_ibm.c                    |    3 +--
 drivers/pci/hotplug/pciehp.h                         |    2 --
 drivers/pci/ioapic.c                                 |    1 -
 drivers/pci/pci-acpi.c                               |    3 ---
 drivers/pci/pci-label.c                              |    1 -
 drivers/platform/x86/acer-wmi.c                      |    2 --
 drivers/platform/x86/asus-laptop.c                   |    3 +--
 drivers/platform/x86/asus-wmi.c                      |    3 +--
 drivers/platform/x86/classmate-laptop.c              |    3 +--
 drivers/platform/x86/dell-wmi-aio.c                  |    1 -
 drivers/platform/x86/dell-wmi.c                      |    1 -
 drivers/platform/x86/eeepc-laptop.c                  |    3 +--
 drivers/platform/x86/eeepc-wmi.c                     |    2 +-
 drivers/platform/x86/hp_accel.c                      |    2 +-
 drivers/platform/x86/ideapad-laptop.c                |    3 +--
 drivers/platform/x86/intel-rst.c                     |    2 +-
 drivers/platform/x86/intel-smartconnect.c            |    2 +-
 drivers/platform/x86/intel_menlow.c                  |    4 +---
 drivers/platform/x86/intel_oaktrail.c                |    3 ---
 drivers/platform/x86/mxm-wmi.c                       |    3 +--
 drivers/platform/x86/panasonic-laptop.c              |    4 +---
 drivers/platform/x86/pvpanic.c                       |    3 +--
 drivers/platform/x86/samsung-q10.c                   |    2 +-
 drivers/platform/x86/sony-laptop.c                   |    4 +---
 drivers/platform/x86/tc1100-wmi.c                    |    4 +---
 drivers/platform/x86/thinkpad_acpi.c                 |   14 ++++----------
 drivers/platform/x86/toshiba_acpi.c                  |    4 +---
 drivers/platform/x86/toshiba_bluetooth.c             |    4 +---
 drivers/platform/x86/wmi.c                           |    2 --
 drivers/platform/x86/xo15-ebook.c                    |    3 +--
 drivers/pnp/pnpacpi/core.c                           |    1 -
 drivers/pnp/pnpacpi/pnpacpi.h                        |    1 -
 drivers/sfi/sfi_acpi.c                               |    2 +-
 drivers/staging/quickstart/quickstart.c              |    2 +-
 drivers/usb/core/usb-acpi.c                          |    1 -
 drivers/xen/xen-acpi-cpuhotplug.c                    |    3 ---
 drivers/xen/xen-acpi-memhotplug.c                    |    1 -
 drivers/xen/xen-acpi-pad.c                           |    5 ++---
 drivers/xen/xen-acpi-processor.c                     |    4 +---
 include/acpi/acpi_bus.h                              |    2 --
 include/acpi/acpi_drivers.h                          |    3 ---
 include/linux/acpi_io.h                              |    2 +-
 include/linux/ide.h                                  |    8 ++------
 include/linux/iscsi_ibft.h                           |    2 +-
 include/linux/pci_hotplug.h                          |    3 +--
 include/linux/sfi_acpi.h                             |    2 +-
 include/linux/tboot.h                                |    2 +-
 tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c |    5 +----
 103 files changed, 80 insertions(+), 234 deletions(-)

diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
index 916ffe7..84715fc 100644
--- a/arch/ia64/hp/common/aml_nfw.c
+++ b/arch/ia64/hp/common/aml_nfw.c
@@ -23,8 +23,7 @@
  */
 
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/sal.h>
 
 MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 00c77cf..ccbf857 100644
--- a/arch/x86/kernel/apic/apic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -21,9 +21,7 @@
 #include <asm/apic.h>
 #include <asm/ipi.h>
 
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
+#include <linux/acpi.h>
 
 static struct apic apic_physflat;
 static struct apic apic_flat;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index e63a5bd..4d67a75 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -37,9 +37,6 @@
 #include <linux/kthread.h>
 #include <linux/jiffies.h>	/* time_after() */
 #include <linux/slab.h>
-#ifdef CONFIG_ACPI
-#include <acpi/acpi_bus.h>
-#endif
 #include <linux/bootmem.h>
 #include <linux/dmar.h>
 #include <linux/hpet.h>
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
index 5c90975..43984bc 100644
--- a/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -14,7 +14,6 @@
 #include <linux/rcupdate.h>
 #include <asm/e820.h>
 #include <asm/pci_x86.h>
-#include <acpi/acpi.h>
 
 /* Assume systems with more busses have correct MCFG */
 #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
diff --git a/arch/x86/platform/olpc/olpc-xo15-sci.c b/arch/x86/platform/olpc/olpc-xo15-sci.c
index 649a12b..08e350e 100644
--- a/arch/x86/platform/olpc/olpc-xo15-sci.c
+++ b/arch/x86/platform/olpc/olpc-xo15-sci.c
@@ -15,8 +15,7 @@
 #include <linux/power_supply.h>
 #include <linux/olpc-ec.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/olpc.h>
 
 #define DRV_NAME			"olpc-xo15-sci"
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 8711e37..8095943 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -32,8 +32,7 @@
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index a6869e1..2635a01 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -9,7 +9,6 @@
 
 #include <linux/module.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/cper.h>
 #include <linux/ratelimit.h>
 #include <asm/cpu.h>
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
index fc6008f..65610c0 100644
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -28,8 +28,7 @@
 #include <linux/cpu.h>
 #include <linux/clockchips.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <asm/mwait.h>
 
 #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
index fb57d03..ca0c6d7 100644
--- a/drivers/acpi/apei/einj.c
+++ b/drivers/acpi/apei/einj.c
@@ -33,7 +33,6 @@
 #include <linux/nmi.h>
 #include <linux/delay.h>
 #include <linux/mm.h>
-#include <acpi/acpi.h>
 
 #include "apei-internal.h"
 
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index fbf1ace..e90ef8b 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -36,8 +36,7 @@
 #include <linux/suspend.h>
 #include <asm/unaligned.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/power_supply.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index 078c4f7..05ee8f6 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -30,7 +30,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/dmi.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index bba9b72..cfea1c5 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -37,8 +37,6 @@
 #include <asm/mpspec.h>
 #endif
 #include <linux/pci.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/apei.h>
 #include <linux/dmi.h>
 #include <linux/suspend.h>
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index c971929..9e3a6cb 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -31,8 +31,7 @@
 #include <linux/seq_file.h>
 #include <linux/input.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/button.h>
 
 #define PREFIX "ACPI: "
diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
index 12b62f2..c68e724 100644
--- a/drivers/acpi/custom_method.c
+++ b/drivers/acpi/custom_method.c
@@ -7,7 +7,7 @@
 #include <linux/kernel.h>
 #include <linux/uaccess.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/debugfs.c b/drivers/acpi/debugfs.c
index b55d6a2..6b1919f 100644
--- a/drivers/acpi/debugfs.c
+++ b/drivers/acpi/debugfs.c
@@ -5,7 +5,7 @@
 #include <linux/export.h>
 #include <linux/init.h>
 #include <linux/debugfs.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define _COMPONENT		ACPI_SYSTEM_COMPONENT
 ACPI_MODULE_NAME("debugfs");
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index dcd73cc..9ab9e78 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -32,8 +32,6 @@
 #include <linux/jiffies.h>
 #include <linux/stddef.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index ba5b56d..ff40120 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -39,10 +39,9 @@
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #include <linux/slab.h>
-#include <asm/io.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/dmi.h>
+#include <asm/io.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
index cae3b38..ef2d730 100644
--- a/drivers/acpi/event.c
+++ b/drivers/acpi/event.c
@@ -12,7 +12,7 @@
 #include <linux/init.h>
 #include <linux/poll.h>
 #include <linux/gfp.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <net/netlink.h>
 #include <net/genetlink.h>
 
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index ba3da88..1fb6290 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -29,8 +29,7 @@
 #include <linux/types.h>
 #include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
index 13b1d39..aafe3ca 100644
--- a/drivers/acpi/hed.c
+++ b/drivers/acpi/hed.c
@@ -25,8 +25,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/hed.h>
 
 static struct acpi_device_id acpi_hed_ids[] = {
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index a2343a1..9e6816e 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -29,7 +29,6 @@
 #include <linux/errno.h>
 #include <linux/acpi.h>
 #include <linux/numa.h>
-#include <acpi/acpi_bus.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 54a20ff..244be2a 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -49,9 +49,6 @@
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/processor.h>
 #include "internal.h"
 
 #define _COMPONENT		ACPI_OS_SERVICES
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 41c5e1b..52d45ea 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -37,8 +37,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 2652a61..ea6b8d1 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -39,9 +39,7 @@
 #include <linux/pci.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
-
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 0703bff..cd20f34 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -35,9 +35,7 @@
 #include <linux/pci-aspm.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/apei.h>
+#include <acpi/apei.h>	/* for acpi_hest_init() */
 
 #include "internal.h"
 
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index c2ad391..ad7da68 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -42,8 +42,7 @@
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 #include <linux/sysfs.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "sleep.h"
 #include "internal.h"
 
diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
index 6a5b152..db061bf 100644
--- a/drivers/acpi/proc.c
+++ b/drivers/acpi/proc.c
@@ -3,11 +3,9 @@
 #include <linux/export.h>
 #include <linux/suspend.h>
 #include <linux/bcd.h>
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 #include "sleep.h"
 
 #define _COMPONENT		ACPI_SYSTEM_COMPONENT
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index b3171f3..34e7b3c 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -10,8 +10,7 @@
 #include <linux/export.h>
 #include <linux/dmi.h>
 #include <linux/slab.h>
-
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
 
 #include "internal.h"
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 644516d..d2d44e0 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -35,6 +35,7 @@
 #include <linux/clockchips.h>
 #include <linux/cpuidle.h>
 #include <linux/syscore_ops.h>
+#include <acpi/processor.h>
 
 /*
  * Include the apic definitions for x86 to have the APIC timer related defines
@@ -46,9 +47,6 @@
 #include <asm/apic.h>
 #endif
 
-#include <acpi/acpi_bus.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS            "processor"
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 60a7c28..ff90054 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -31,15 +31,12 @@
 #include <linux/init.h>
 #include <linux/cpufreq.h>
 #include <linux/slab.h>
-
+#include <linux/acpi.h>
+#include <acpi/processor.h>
 #ifdef CONFIG_X86
 #include <asm/cpufeature.h>
 #endif
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS		"processor"
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
index d1d2e7f..f95e758 100644
--- a/drivers/acpi/processor_thermal.c
+++ b/drivers/acpi/processor_thermal.c
@@ -30,12 +30,9 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/cpufreq.h>
-
-#include <asm/uaccess.h>
-
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
-#include <acpi/acpi_drivers.h>
+#include <asm/uaccess.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index e7dd2c1..28baa05 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -32,14 +32,11 @@
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/cpufreq.h>
-
+#include <linux/acpi.h>
+#include <acpi/processor.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/processor.h>
-
 #define PREFIX "ACPI: "
 
 #define ACPI_PROCESSOR_CLASS            "processor"
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index b78bc60..26e5b50 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -8,8 +8,7 @@
  * the Free Software Foundation version 2.
  */
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 15daa21..56421a9 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -12,8 +12,6 @@
 #include <linux/dmi.h>
 #include <linux/nls.h>
 
-#include <acpi/acpi_drivers.h>
-
 #include "internal.h"
 
 #define _COMPONENT		ACPI_BUS_COMPONENT
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 14df305..ea9cc37 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -18,12 +18,8 @@
 #include <linux/reboot.h>
 #include <linux/acpi.h>
 #include <linux/module.h>
-
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 #include "internal.h"
 #include "sleep.h"
 
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index db52936..ba07d9a 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -5,7 +5,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/moduleparam.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 0d9f46b..1fd21ad 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -41,10 +41,9 @@
 #include <linux/kmod.h>
 #include <linux/reboot.h>
 #include <linux/device.h>
-#include <asm/uaccess.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
+#include <asm/uaccess.h>
 
 #define PREFIX "ACPI: "
 
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 6d408bf..1336b91 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -30,8 +30,6 @@
 #include <linux/types.h>
 #include <linux/hardirq.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 995e91b..b727d10 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -37,12 +37,11 @@
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 #include <linux/slab.h>
-#include <asm/uaccess.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/suspend.h>
+#include <linux/acpi.h>
 #include <acpi/video.h>
+#include <asm/uaccess.h>
 
 #include "internal.h"
 
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
index 7bfbe40..1638401 100644
--- a/drivers/acpi/wakeup.c
+++ b/drivers/acpi/wakeup.c
@@ -5,7 +5,6 @@
 
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 4372cfa..8e22d97 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -20,8 +20,6 @@
 #include <scsi/scsi_device.h>
 #include "libata.h"
 
-#include <acpi/acpi_bus.h>
-
 unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
 module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
 MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock, 0x4=DIPM, 0x8=FPDMA non-zero offset, 0x10=FPDMA DMA Setup FIS auto-activate)");
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
index 73212c9..62c9ac8 100644
--- a/drivers/ata/pata_acpi.c
+++ b/drivers/ata/pata_acpi.c
@@ -12,11 +12,10 @@
 #include <linux/delay.h>
 #include <linux/device.h>
 #include <linux/gfp.h>
-#include <scsi/scsi_host.h>
-#include <acpi/acpi_bus.h>
-
+#include <linux/acpi.h>
 #include <linux/libata.h>
 #include <linux/ata.h>
+#include <scsi/scsi_host.h>
 
 #define DRV_NAME	"pata_acpi"
 #define DRV_VERSION	"0.2.3"
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 5d9c31d..d5d4cd8 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -34,15 +34,12 @@
 #include <linux/uaccess.h>
 #include <linux/slab.h>
 #include <linux/io.h>
-
+#include <linux/acpi.h>
+#include <linux/hpet.h>
 #include <asm/current.h>
 #include <asm/irq.h>
 #include <asm/div64.h>
 
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <linux/hpet.h>
-
 /*
  * The High Precision Event Timer driver.
  * This driver is closely modelled after the rtc.c driver.
diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
index 64420b3..b9a57fa 100644
--- a/drivers/char/tpm/tpm_acpi.c
+++ b/drivers/char/tpm/tpm_acpi.c
@@ -23,7 +23,7 @@
 #include <linux/security.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 
 #include "tpm.h"
 #include "tpm_eventlog.h"
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
index 8e562dc..dd60ef3 100644
--- a/drivers/char/tpm/tpm_ppi.c
+++ b/drivers/char/tpm/tpm_ppi.c
@@ -1,5 +1,4 @@
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include "tpm.h"
 
 static const u8 tpm_ppi_uuid[] = {
diff --git a/drivers/gpu/drm/i915/intel_acpi.c b/drivers/gpu/drm/i915/intel_acpi.c
index dfff090..5325b25 100644
--- a/drivers/gpu/drm/i915/intel_acpi.c
+++ b/drivers/gpu/drm/i915/intel_acpi.c
@@ -6,8 +6,6 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/vga_switcheroo.h>
-#include <acpi/acpi_drivers.h>
-
 #include <drm/drmP.h>
 #include "i915_drv.h"
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
index 95c7404..1f0b6d2 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -1,15 +1,10 @@
 #include <linux/pci.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/video.h>
-#include <acpi/acpi.h>
 #include <linux/mxm-wmi.h>
-
 #include <linux/vga_switcheroo.h>
-
 #include <drm/drm_edid.h>
+#include <acpi/video.h>
 
 #include "nouveau_drm.h"
 #include "nouveau_acpi.h"
diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
index 98a9074..77e9d07 100644
--- a/drivers/gpu/drm/radeon/radeon_acpi.c
+++ b/drivers/gpu/drm/radeon/radeon_acpi.c
@@ -25,18 +25,14 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/power_supply.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/vga_switcheroo.h>
 #include <acpi/video.h>
-
 #include <drm/drmP.h>
 #include <drm/drm_crtc_helper.h>
 #include "radeon.h"
 #include "radeon_acpi.h"
 #include "atom.h"
 
-#include <linux/vga_switcheroo.h>
-
 #define ACPI_AC_CLASS           "ac_adapter"
 
 extern void radeon_pm_acpi_event_handler(struct radeon_device *rdev);
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 48aad4f..077bb1b 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -30,7 +30,6 @@
 #include <linux/sysctl.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/completion.h>
 #include <linux/hyperv.h>
 #include <linux/kernel_stat.h>
@@ -39,7 +38,6 @@
 #include <asm/mshyperv.h>
 #include "hyperv_vmbus.h"
 
-
 static struct acpi_device  *hv_acpi_dev;
 
 static struct tasklet_struct msg_dpc;
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
index 6a34f7f..579bdf9 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -30,8 +30,7 @@
 #include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/err.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ACPI_POWER_METER_NAME		"power_meter"
 ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 1d7ff46..ae208f6 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -16,12 +16,7 @@
 #include <linux/dmi.h>
 #include <linux/jiffies.h>
 #include <linux/err.h>
-
-#include <acpi/acpi.h>
-#include <acpi/acpixf.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-
+#include <linux/acpi.h>
 
 #define ATK_HID "ATK0110"
 
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
index d9e1f7c..333d405 100644
--- a/drivers/ide/ide-acpi.c
+++ b/drivers/ide/ide-acpi.c
@@ -14,7 +14,6 @@
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
-#include <acpi/acpi.h>
 #include <linux/ide.h>
 #include <linux/pci.h>
 #include <linux/dmi.h>
diff --git a/drivers/input/misc/atlas_btns.c b/drivers/input/misc/atlas_btns.c
index 5d44023..d781b5e 100644
--- a/drivers/input/misc/atlas_btns.c
+++ b/drivers/input/misc/atlas_btns.c
@@ -28,8 +28,8 @@
 #include <linux/init.h>
 #include <linux/input.h>
 #include <linux/types.h>
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
-#include <acpi/acpi_drivers.h>
 
 #define ACPI_ATLAS_NAME		"Atlas ACPI"
 #define ACPI_ATLAS_CLASS	"Atlas"
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 8f798be..28b4bea 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -26,7 +26,6 @@
 #include <linux/msi.h>
 #include <linux/amd-iommu.h>
 #include <linux/export.h>
-#include <acpi/acpi.h>
 #include <asm/pci-direct.h>
 #include <asm/iommu.h>
 #include <asm/gart.h>
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index bab10b1..0cb7528 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -6,11 +6,11 @@
 #include <linux/hpet.h>
 #include <linux/pci.h>
 #include <linux/irq.h>
+#include <linux/intel-iommu.h>
+#include <linux/acpi.h>
 #include <asm/io_apic.h>
 #include <asm/smp.h>
 #include <asm/cpu.h>
-#include <linux/intel-iommu.h>
-#include <acpi/acpi.h>
 #include <asm/irq_remapping.h>
 #include <asm/pci-direct.h>
 #include <asm/msidef.h>
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
index ecfac7e..8dcccff 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
@@ -31,12 +31,11 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <acpi/acpi_bus.h>
 #include <linux/sysfs.h>
 #include <linux/kobject.h>
-#include <asm/uaccess.h>
 #include <linux/moduleparam.h>
 #include <linux/pci.h>
+#include <asm/uaccess.h>
 
 #include "acpiphp.h"
 #include "../pci.h"
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 21e865d..24e147c 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -163,8 +163,6 @@ static inline const char *slot_name(struct slot *slot)
 }
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
 #include <linux/pci-acpi.h>
 
 void __init pciehp_acpi_slot_detection_init(void);
diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c
index 50ce680..2122b2b 100644
--- a/drivers/pci/ioapic.c
+++ b/drivers/pci/ioapic.c
@@ -20,7 +20,6 @@
 #include <linux/module.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
 
 struct ioapic {
 	acpi_handle	handle;
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 577074e..43e3179 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -12,9 +12,6 @@
 #include <linux/pci.h>
 #include <linux/module.h>
 #include <linux/pci-aspm.h>
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-
 #include <linux/pci-acpi.h>
 #include <linux/pm_runtime.h>
 #include <linux/pm_qos.h>
diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
index d51f45a..dbafcc8 100644
--- a/drivers/pci/pci-label.c
+++ b/drivers/pci/pci-label.c
@@ -29,7 +29,6 @@
 #include <linux/nls.h>
 #include <linux/acpi.h>
 #include <linux/pci-acpi.h>
-#include <acpi/acpi_bus.h>
 #include "pci.h"
 
 #define	DEVICE_LABEL_DSM	0x07
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index c9076bd..c91f69b3 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -41,8 +41,6 @@
 #include <linux/slab.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-
-#include <acpi/acpi_drivers.h>
 #include <acpi/video.h>
 
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 0e9c169..430b5c3 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -53,8 +53,7 @@
 #include <linux/rfkill.h>
 #include <linux/slab.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #define ASUS_LAPTOP_VERSION	"0.42"
 
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 19c313b..df7ecb9 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -45,8 +45,7 @@
 #include <linux/seq_file.h>
 #include <linux/platform_device.h>
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/video.h>
 
 #include "asus-wmi.h"
diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
index 6dfa8d3..70d355a 100644
--- a/drivers/platform/x86/classmate-laptop.c
+++ b/drivers/platform/x86/classmate-laptop.c
@@ -21,14 +21,13 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/workqueue.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/backlight.h>
 #include <linux/input.h>
 #include <linux/rfkill.h>
 
 MODULE_LICENSE("GPL");
 
-
 struct cmpc_accel {
 	int sensitivity;
 	int g_select;
diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
index bcf8cc6..dbc97a3 100644
--- a/drivers/platform/x86/dell-wmi-aio.c
+++ b/drivers/platform/x86/dell-wmi-aio.c
@@ -24,7 +24,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index fa9a217..bdf483b 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -32,7 +32,6 @@
 #include <linux/types.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
-#include <acpi/acpi_drivers.h>
 #include <linux/acpi.h>
 #include <linux/string.h>
 #include <linux/dmi.h>
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index aefcc32..cabd567 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -28,8 +28,7 @@
 #include <linux/hwmon.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 #include <linux/uaccess.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index af67e6e..6112933 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -33,7 +33,7 @@
 #include <linux/input/sparse-keymap.h>
 #include <linux/dmi.h>
 #include <linux/fb.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 
 #include "asus-wmi.h"
 
diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
index a8e43cf..aff4d06 100644
--- a/drivers/platform/x86/hp_accel.c
+++ b/drivers/platform/x86/hp_accel.c
@@ -36,7 +36,7 @@
 #include <linux/uaccess.h>
 #include <linux/leds.h>
 #include <linux/atomic.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include "../../misc/lis3lv02d/lis3lv02d.h"
 
 #define DRIVER_NAME     "hp_accel"
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 6788acc..70b5729 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -26,8 +26,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/rfkill.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c
index a2083a9..d45bca3 100644
--- a/drivers/platform/x86/intel-rst.c
+++ b/drivers/platform/x86/intel-rst.c
@@ -20,7 +20,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
index 1838400..04cf5df 100644
--- a/drivers/platform/x86/intel-smartconnect.c
+++ b/drivers/platform/x86/intel-smartconnect.c
@@ -19,7 +19,7 @@
 
 #include <linux/init.h>
 #include <linux/module.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_LICENSE("GPL");
 
diff --git a/drivers/platform/x86/intel_menlow.c b/drivers/platform/x86/intel_menlow.c
index 11244f8..e8b46d2 100644
--- a/drivers/platform/x86/intel_menlow.c
+++ b/drivers/platform/x86/intel_menlow.c
@@ -36,10 +36,8 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/pm.h>
-
 #include <linux/thermal.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Thomas Sujith");
 MODULE_AUTHOR("Zhang Rui");
diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
index f6f18cd..4bc9604 100644
--- a/drivers/platform/x86/intel_oaktrail.c
+++ b/drivers/platform/x86/intel_oaktrail.c
@@ -50,9 +50,6 @@
 #include <linux/platform_device.h>
 #include <linux/dmi.h>
 #include <linux/rfkill.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 
 #define DRIVER_NAME	"intel_oaktrail"
 #define DRIVER_VERSION	"0.4ac1"
diff --git a/drivers/platform/x86/mxm-wmi.c b/drivers/platform/x86/mxm-wmi.c
index 0aea63b..3c59c0a 100644
--- a/drivers/platform/x86/mxm-wmi.c
+++ b/drivers/platform/x86/mxm-wmi.c
@@ -20,8 +20,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Dave Airlie");
 MODULE_DESCRIPTION("MXM WMI Driver");
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 10d12b2..137d602 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -125,12 +125,10 @@
 #include <linux/seq_file.h>
 #include <linux/uaccess.h>
 #include <linux/slab.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
 
-
 #ifndef ACPI_HOTKEY_COMPONENT
 #define ACPI_HOTKEY_COMPONENT	0x10000000
 #endif
diff --git a/drivers/platform/x86/pvpanic.c b/drivers/platform/x86/pvpanic.c
index 47ae0c4..c9f6e51 100644
--- a/drivers/platform/x86/pvpanic.c
+++ b/drivers/platform/x86/pvpanic.c
@@ -24,8 +24,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>");
 MODULE_DESCRIPTION("pvpanic device driver");
diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
index cae7098..5413f62 100644
--- a/drivers/platform/x86/samsung-q10.c
+++ b/drivers/platform/x86/samsung-q10.c
@@ -15,7 +15,7 @@
 #include <linux/platform_device.h>
 #include <linux/backlight.h>
 #include <linux/dmi.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define SAMSUNGQ10_BL_MAX_INTENSITY 7
 
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 47caab0..1d00039 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -61,9 +61,6 @@
 #include <linux/workqueue.h>
 #include <linux/acpi.h>
 #include <linux/slab.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_bus.h>
-#include <asm/uaccess.h>
 #include <linux/sonypi.h>
 #include <linux/sony-laptop.h>
 #include <linux/rfkill.h>
@@ -71,6 +68,7 @@
 #include <linux/poll.h>
 #include <linux/miscdevice.h>
 #endif
+#include <asm/uaccess.h>
 
 #define dprintk(fmt, ...)			\
 do {						\
diff --git a/drivers/platform/x86/tc1100-wmi.c b/drivers/platform/x86/tc1100-wmi.c
index 9b93fdb..6a6ea28 100644
--- a/drivers/platform/x86/tc1100-wmi.c
+++ b/drivers/platform/x86/tc1100-wmi.c
@@ -32,9 +32,7 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 
 #define GUID "C364AC71-36DB-495A-8494-B439D472A505"
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 05e046a..9d7e34b 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -61,7 +61,6 @@
 #include <linux/freezer.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-
 #include <linux/nvram.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
@@ -74,21 +73,16 @@
 #include <linux/input.h>
 #include <linux/leds.h>
 #include <linux/rfkill.h>
-#include <asm/uaccess.h>
-
 #include <linux/dmi.h>
 #include <linux/jiffies.h>
 #include <linux/workqueue.h>
-
+#include <linux/acpi.h>
+#include <linux/pci_ids.h>
+#include <linux/thinkpad_acpi.h>
 #include <sound/core.h>
 #include <sound/control.h>
 #include <sound/initval.h>
-
-#include <acpi/acpi_drivers.h>
-
-#include <linux/pci_ids.h>
-
-#include <linux/thinkpad_acpi.h>
+#include <asm/uaccess.h>
 
 /* ThinkPad CMOS commands */
 #define TP_CMOS_VOLUME_DOWN	0
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 0cfadb6..b5f17eb 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -54,11 +54,9 @@
 #include <linux/slab.h>
 #include <linux/workqueue.h>
 #include <linux/i8042.h>
-
+#include <linux/acpi.h>
 #include <asm/uaccess.h>
 
-#include <acpi/acpi_drivers.h>
-
 MODULE_AUTHOR("John Belmonte");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
 MODULE_LICENSE("GPL");
diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
index 74dd01a..2cb1ea6 100644
--- a/drivers/platform/x86/toshiba_bluetooth.c
+++ b/drivers/platform/x86/toshiba_bluetooth.c
@@ -23,14 +23,12 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 MODULE_AUTHOR("Jes Sorensen <Jes.Sorensen@gmail.com>");
 MODULE_DESCRIPTION("Toshiba Laptop ACPI Bluetooth Enable Driver");
 MODULE_LICENSE("GPL");
 
-
 static int toshiba_bt_rfkill_add(struct acpi_device *device);
 static int toshiba_bt_rfkill_remove(struct acpi_device *device);
 static void toshiba_bt_rfkill_notify(struct acpi_device *device, u32 event);
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 62e8c22..ba13ade 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -37,8 +37,6 @@
 #include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/module.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 
 ACPI_MODULE_NAME("wmi");
 MODULE_AUTHOR("Carlos Corbacho");
diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
index 4b1377b..49cbcce 100644
--- a/drivers/platform/x86/xo15-ebook.c
+++ b/drivers/platform/x86/xo15-ebook.c
@@ -18,8 +18,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/input.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 
 #define MODULE_NAME "xo15-ebook"
 
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 14655a0..e869ba6 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -24,7 +24,6 @@
 #include <linux/pnp.h>
 #include <linux/slab.h>
 #include <linux/mod_devicetable.h>
-#include <acpi/acpi_bus.h>
 
 #include "../base.h"
 #include "pnpacpi.h"
diff --git a/drivers/pnp/pnpacpi/pnpacpi.h b/drivers/pnp/pnpacpi/pnpacpi.h
index 3e60225..051ef96 100644
--- a/drivers/pnp/pnpacpi/pnpacpi.h
+++ b/drivers/pnp/pnpacpi/pnpacpi.h
@@ -1,7 +1,6 @@
 #ifndef ACPI_PNP_H
 #define ACPI_PNP_H
 
-#include <acpi/acpi_bus.h>
 #include <linux/acpi.h>
 #include <linux/pnp.h>
 
diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
index f5b4ca5..5e753d7 100644
--- a/drivers/sfi/sfi_acpi.c
+++ b/drivers/sfi/sfi_acpi.c
@@ -60,7 +60,7 @@
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/kernel.h>
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 #include <linux/sfi.h>
 #include "sfi_core.h"
diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
index 9f6ebdb..a85c3d6 100644
--- a/drivers/staging/quickstart/quickstart.c
+++ b/drivers/staging/quickstart/quickstart.c
@@ -31,7 +31,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
 
diff --git a/drivers/usb/core/usb-acpi.c b/drivers/usb/core/usb-acpi.c
index 4e243c3..11c6569 100644
--- a/drivers/usb/core/usb-acpi.c
+++ b/drivers/usb/core/usb-acpi.c
@@ -16,7 +16,6 @@
 #include <linux/acpi.h>
 #include <linux/pci.h>
 #include <linux/usb/hcd.h>
-#include <acpi/acpi_bus.h>
 
 #include "usb.h"
 
diff --git a/drivers/xen/xen-acpi-cpuhotplug.c b/drivers/xen/xen-acpi-cpuhotplug.c
index 8dae6c1..cd5bb0a 100644
--- a/drivers/xen/xen-acpi-cpuhotplug.c
+++ b/drivers/xen/xen-acpi-cpuhotplug.c
@@ -24,10 +24,7 @@
 #include <linux/cpu.h>
 #include <linux/acpi.h>
 #include <linux/uaccess.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
 #include <acpi/processor.h>
-
 #include <xen/acpi.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/drivers/xen/xen-acpi-memhotplug.c b/drivers/xen/xen-acpi-memhotplug.c
index 9083f1e..f2872a1 100644
--- a/drivers/xen/xen-acpi-memhotplug.c
+++ b/drivers/xen/xen-acpi-memhotplug.c
@@ -22,7 +22,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/acpi.h>
-#include <acpi/acpi_drivers.h>
 #include <xen/acpi.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
index 59708fd..40c4bc0 100644
--- a/drivers/xen/xen-acpi-pad.c
+++ b/drivers/xen/xen-acpi-pad.c
@@ -18,11 +18,10 @@
 
 #include <linux/kernel.h>
 #include <linux/types.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <asm/xen/hypercall.h>
+#include <linux/acpi.h>
 #include <xen/interface/version.h>
 #include <xen/xen-ops.h>
+#include <asm/xen/hypercall.h>
 
 #define ACPI_PROCESSOR_AGGREGATOR_CLASS	"acpi_pad"
 #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index 13bc6c3..7231859 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -28,10 +28,8 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/syscore_ops.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
 #include <acpi/processor.h>
-
 #include <xen/xen.h>
 #include <xen/interface/platform.h>
 #include <asm/xen/hypercall.h>
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 7b2de02..510119a 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -28,8 +28,6 @@
 
 #include <linux/device.h>
 
-#include <acpi/acpi.h>
-
 /* TBD: Make dynamic */
 #define ACPI_MAX_HANDLES	10
 struct acpi_handle_list {
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index 1cedfcb..b124fdb 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -26,9 +26,6 @@
 #ifndef __ACPI_DRIVERS_H__
 #define __ACPI_DRIVERS_H__
 
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-
 #define ACPI_MAX_STRING			80
 
 /*
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
index b0ffa21..2a5a139 100644
--- a/include/linux/acpi_io.h
+++ b/include/linux/acpi_io.h
@@ -2,7 +2,7 @@
 #define _ACPI_IO_H_
 
 #include <linux/io.h>
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
 					    acpi_size size)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 46a1422..93b5ca7 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -18,14 +18,10 @@
 #include <linux/completion.h>
 #include <linux/pm.h>
 #include <linux/mutex.h>
-#ifdef CONFIG_BLK_DEV_IDEACPI
-#include <acpi/acpi.h>
-#endif
-#include <asm/byteorder.h>
-#include <asm/io.h>
-
 /* for request_sense */
 #include <linux/cdrom.h>
+#include <asm/byteorder.h>
+#include <asm/io.h>
 
 #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
 # define SUPPORT_VLB_SYNC 0
diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
index 8ba7e5b..82f9673 100644
--- a/include/linux/iscsi_ibft.h
+++ b/include/linux/iscsi_ibft.h
@@ -21,7 +21,7 @@
 #ifndef ISCSI_IBFT_H
 #define ISCSI_IBFT_H
 
-#include <acpi/acpi.h>
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 /*
  * Logical location of iSCSI Boot Format Table.
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index a2e2f1d..5f2e559 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -175,8 +175,7 @@ struct hotplug_params {
 };
 
 #ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
+#include <linux/acpi.h>
 int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
 int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
 int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
index 631af63..2cfcb79 100644
--- a/include/linux/sfi_acpi.h
+++ b/include/linux/sfi_acpi.h
@@ -60,7 +60,7 @@
 #define _LINUX_SFI_ACPI_H
 
 #ifdef CONFIG_SFI
-#include <acpi/acpi.h>		/* struct acpi_table_header */
+#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
 extern int sfi_acpi_table_parse(char *signature, char *oem_id,
 				char *oem_table_id,
diff --git a/include/linux/tboot.h b/include/linux/tboot.h
index c75128b..9a54b33 100644
--- a/include/linux/tboot.h
+++ b/include/linux/tboot.h
@@ -34,7 +34,7 @@ enum {
 };
 
 #ifdef CONFIG_INTEL_TXT
-#include <acpi/acpi.h>
+#include <linux/acpi.h>
 /* used to communicate between tboot and the launched kernel */
 
 #define TB_KEY_SIZE             64   /* 512 bits */
diff --git a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
index 66cace6..0f10b81 100644
--- a/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
+++ b/tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c
@@ -25,12 +25,9 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
-
+#include <linux/acpi.h>
 #include <asm/io.h>
 
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-
 static int pm_tmr_ioport = 0;
 
 /*helper function to safely read acpi pm timesource*/
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 3/6] SFI: Fix warnings reported by W=1 builds.
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
  2013-12-06  8:51   ` [PATCH v3 1/6] ACPI: Clean up incorrect inclusions of ACPICA headers Lv Zheng
  2013-12-06  8:51   ` [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files Lv Zheng
@ 2013-12-06  8:51   ` Lv Zheng
  2013-12-06  8:52   ` [PATCH v3 4/6] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:51 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Len Brown,
	Feng Tang, sfi-devel

The following warnings can be seen for W=1 builds.  This is because
original sfi_acpi.[ch] header inclusions are wrong.

include/linux/sfi_acpi.h:72:2: error: implicit declaration of function 'acpi_table_parse' [-Werror=implicit-function-declaration]
drivers/sfi/sfi_acpi.c:154:5: warning: no previous prototype for 'sfi_acpi_table_parse' [-Wmissing-prototypes]

This patch fixes this existing issue.  It is on top of the following
commit which doesn't take care about existing issues:
 Commit: 4e8fb7987f7d0390a2e74622c7c1cbb6760c6516
 From: Lv Zheng <lv.zheng@intel.com>
 Date: Tue, 3 Dec 2013 08:49:16 +0800
 Subject: [PATCH] ACPI: Clean up inclusions of ACPI header files

Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Feng Tang <feng.tang@intel.com>
Cc: sfi-devel@simplefirmware.org
---
 arch/x86/pci/mmconfig-shared.c |    1 -
 drivers/sfi/sfi_acpi.c         |    4 +---
 include/linux/sfi_acpi.h       |    3 +++
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 082e881..248642f 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -12,7 +12,6 @@
 
 #include <linux/pci.h>
 #include <linux/init.h>
-#include <linux/acpi.h>
 #include <linux/sfi_acpi.h>
 #include <linux/bitmap.h>
 #include <linux/dmi.h>
diff --git a/drivers/sfi/sfi_acpi.c b/drivers/sfi/sfi_acpi.c
index 5e753d7..d277b36 100644
--- a/drivers/sfi/sfi_acpi.c
+++ b/drivers/sfi/sfi_acpi.c
@@ -60,9 +60,7 @@
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/kernel.h>
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
-
-#include <linux/sfi.h>
+#include <linux/sfi_acpi.h>
 #include "sfi_core.h"
 
 /*
diff --git a/include/linux/sfi_acpi.h b/include/linux/sfi_acpi.h
index 2cfcb79..4723bbf 100644
--- a/include/linux/sfi_acpi.h
+++ b/include/linux/sfi_acpi.h
@@ -59,6 +59,9 @@
 #ifndef _LINUX_SFI_ACPI_H
 #define _LINUX_SFI_ACPI_H
 
+#include <linux/acpi.h>
+#include <linux/sfi.h>
+
 #ifdef CONFIG_SFI
 #include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 4/6] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module.
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
                     ` (2 preceding siblings ...)
  2013-12-06  8:51   ` [PATCH v3 3/6] SFI: Fix warnings reported by W=1 builds Lv Zheng
@ 2013-12-06  8:52   ` Lv Zheng
  2013-12-06  8:52   ` [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
  2013-12-06  8:52   ` [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
  5 siblings, 0 replies; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:52 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Matthew Garrett, intel-gfx

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
include/linux/acpi_io.h:7:45: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:8:10: error: unknown type name 'acpi_size'
include/linux/acpi_io.h:13:33: error: unknown type name 'acpi_physical_address'
include/linux/acpi_io.h:15:40: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
include/linux/acpi_io.h:15:40: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
include/linux/acpi_io.h:16:43: warning: 'struct acpi_generic_address' declared inside parameter list [enabled by default]
drivers/gpu/drm/i915/intel_opregion.c: In function 'intel_opregion_setup':
drivers/gpu/drm/i915/intel_opregion.c:883:2: error: implicit declaration of function 'acpi_os_ioremap' [-Werror=implicit-function-declaration]
drivers/gpu/drm/i915/intel_opregion.c:883:7: warning: assignment makes pointer from integer without a cast [enabled by default]

The root causes of this breakage are:
1. The <linux/acpi_io.h> depends on CONFIG_ACPI=y as most of the prototypes
   exported by it are implemented in drivers/acpi/osl.c.
2. CONFIG_DRM_I915 uses the only "inline" function acpi_os_ioremap() to
   implement stubs but it shouldn't.

Since ACPI IGD OpRegion is an ACPI-based mechanism, (please refer to the
Doclink below), this patch fixes this issue by making
drivers/gpu/drm/i915/intel_opregion.c dependent on CONFIG_ACPI.  This is
identical to other Intel DRM drivers' OpRegion support (e.x.,
drivers/gpu/drm/gma500/opregion.c).

Since acpi_io.h is not safe for CONFIG_ACPI=y environment, this patch also
moves it to include/acpi, includes it in <linux/acpi.h> for CONFIG_ACPI=y
build environment and cleans up its inclusions by converting them into
<linux/acpi.h> inclusions.

After that, since all <acpi/acpi_io.h> inclusions are CONFIG_ACPI
dependent, the FIXME marked <acpi/acpi.h> inclusion in <acpi/acpi_io.h> is
also deleted in this patch.

Doclink: https://01.org/linuxgraphics/sites/default/files/documentation/acpi_igd_opregion_spec.pdf
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/acpi/apei/apei-base.c         |    1 -
 drivers/acpi/apei/apei-internal.h     |    1 -
 drivers/acpi/apei/ghes.c              |    1 -
 drivers/acpi/nvs.c                    |    1 -
 drivers/acpi/osl.c                    |    1 -
 drivers/gpu/drm/gma500/opregion.c     |    1 -
 drivers/gpu/drm/i915/Makefile         |    3 +--
 drivers/gpu/drm/i915/i915_drv.h       |    3 ++-
 drivers/gpu/drm/i915/intel_opregion.c |    1 -
 include/acpi/acpi_io.h                |   17 +++++++++++++++++
 include/linux/acpi.h                  |    1 +
 include/linux/acpi_io.h               |   18 ------------------
 12 files changed, 21 insertions(+), 28 deletions(-)
 create mode 100644 include/acpi/acpi_io.h
 delete mode 100644 include/linux/acpi_io.h

diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
index 6d2c49b..0760b75 100644
--- a/drivers/acpi/apei/apei-base.c
+++ b/drivers/acpi/apei/apei-base.c
@@ -34,7 +34,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/slab.h>
 #include <linux/io.h>
 #include <linux/kref.h>
diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
index 21ba34a..e5bcd91 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -8,7 +8,6 @@
 
 #include <linux/cper.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 struct apei_exec_context;
 
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index a30bc31..694c486 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -33,7 +33,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/timer.h>
diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index 386a9fe..ef28613 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -12,7 +12,6 @@
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 
 /* ACPI NVS regions, APEI may use it */
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 7e2d814..63251b6 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -39,7 +39,6 @@
 #include <linux/workqueue.h>
 #include <linux/nmi.h>
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <linux/efi.h>
 #include <linux/ioport.h>
 #include <linux/list.h>
diff --git a/drivers/gpu/drm/gma500/opregion.c b/drivers/gpu/drm/gma500/opregion.c
index ad0d6de..13ec628 100644
--- a/drivers/gpu/drm/gma500/opregion.c
+++ b/drivers/gpu/drm/gma500/opregion.c
@@ -22,7 +22,6 @@
  *
  */
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include "psb_drv.h"
 #include "psb_intel_reg.h"
 
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 41838ea..d4ae48b 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -38,7 +38,6 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 	  intel_ringbuffer.o \
 	  intel_overlay.o \
 	  intel_sprite.o \
-	  intel_opregion.o \
 	  intel_sideband.o \
 	  intel_uncore.o \
 	  dvo_ch7xxx.o \
@@ -51,7 +50,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \
 
 i915-$(CONFIG_COMPAT)   += i915_ioc32.o
 
-i915-$(CONFIG_ACPI)	+= intel_acpi.o
+i915-$(CONFIG_ACPI)	+= intel_acpi.o intel_opregion.o
 
 i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ccdbecc..7f37b83 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2336,8 +2336,8 @@ extern void intel_i2c_reset(struct drm_device *dev);
 
 /* intel_opregion.c */
 struct intel_encoder;
-extern int intel_opregion_setup(struct drm_device *dev);
 #ifdef CONFIG_ACPI
+extern int intel_opregion_setup(struct drm_device *dev);
 extern void intel_opregion_init(struct drm_device *dev);
 extern void intel_opregion_fini(struct drm_device *dev);
 extern void intel_opregion_asle_intr(struct drm_device *dev);
@@ -2346,6 +2346,7 @@ extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 extern int intel_opregion_notify_adapter(struct drm_device *dev,
 					 pci_power_t state);
 #else
+static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
 static inline void intel_opregion_init(struct drm_device *dev) { return; }
 static inline void intel_opregion_fini(struct drm_device *dev) { return; }
 static inline void intel_opregion_asle_intr(struct drm_device *dev) { return; }
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 6d69a9b..9a8804b 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -28,7 +28,6 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/acpi.h>
-#include <linux/acpi_io.h>
 #include <acpi/video.h>
 
 #include <drm/drmP.h>
diff --git a/include/acpi/acpi_io.h b/include/acpi/acpi_io.h
new file mode 100644
index 0000000..2be8580
--- /dev/null
+++ b/include/acpi/acpi_io.h
@@ -0,0 +1,17 @@
+#ifndef _ACPI_IO_H_
+#define _ACPI_IO_H_
+
+#include <linux/io.h>
+
+static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
+					    acpi_size size)
+{
+       return ioremap_cache(phys, size);
+}
+
+void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
+
+int acpi_os_map_generic_address(struct acpi_generic_address *addr);
+void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
+
+#endif
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 115c610..72c88f4 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -42,6 +42,7 @@
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/acpi_numa.h>
+#include <acpi/acpi_io.h>
 #include <asm/acpi.h>
 
 static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h
deleted file mode 100644
index 2a5a139..0000000
--- a/include/linux/acpi_io.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _ACPI_IO_H_
-#define _ACPI_IO_H_
-
-#include <linux/io.h>
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
-
-static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
-					    acpi_size size)
-{
-       return ioremap_cache(phys, size);
-}
-
-void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
-
-int acpi_os_map_generic_address(struct acpi_generic_address *addr);
-void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
-
-#endif
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage.
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
                     ` (3 preceding siblings ...)
  2013-12-06  8:52   ` [PATCH v3 4/6] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
@ 2013-12-06  8:52   ` Lv Zheng
  2013-12-06 14:53     ` Zheng, Lv
  2013-12-06  8:52   ` [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
  5 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:52 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Bjorn Helgaas,
	Len Brown, Feng Tang, sfi-devel, linux-pci

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
arch/x86/pci/mmconfig-shared.c:389:1: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:389:47: warning: 'struct acpi_resource' declared inside parameter list [enabled by default]
arch/x86/pci/mmconfig-shared.c:389:47: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
arch/x86/pci/mmconfig-shared.c: In function 'check_mcfg_resource':
arch/x86/pci/mmconfig-shared.c:392:33: error: storage size of 'address' isn't known
arch/x86/pci/mmconfig-shared.c:393:2: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:395:9: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:395:19: error: 'ACPI_RESOURCE_TYPE_FIXED_MEMORY32' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:395:19: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/pci/mmconfig-shared.c:397:8: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:399:11: error: 'AE_OK' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:400:35: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:401:33: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:402:19: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:404:11: error: 'AE_CTRL_TERMINATE' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:407:10: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:407:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:408:10: error: dereferencing pointer to incomplete type
arch/x86/pci/mmconfig-shared.c:408:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:411:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:412:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:414:31: error: 'ACPI_MEMORY_RANGE' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c:392:33: warning: unused variable 'address' [-Wunused-variable]
arch/x86/pci/mmconfig-shared.c: At top level:
arch/x86/pci/mmconfig-shared.c:425:1: error: unknown type name 'acpi_status'
arch/x86/pci/mmconfig-shared.c:425:41: error: unknown type name 'acpi_handle'
arch/x86/pci/mmconfig-shared.c: In function 'is_acpi_reserved':
arch/x86/pci/mmconfig-shared.c:447:2: error: implicit declaration of function 'acpi_get_devices' [-Werror=implicit-function-declaration]
arch/x86/pci/mmconfig-shared.c:447:30: error: 'find_mboard_resource' undeclared (first use in this function)
arch/x86/pci/mmconfig-shared.c: At top level:
arch/x86/pci/mmconfig-shared.c:389:20: warning: 'check_mcfg_resource' defined but not used [-Wunused-function]

The root cause of this breakage is:
1. The following commit doesn't protect ACPICA functions like
   acpi_get_devices()/acpi_walk_resources()/acpi_resource_to_address64() in
   CONFIG_SFI=y and CONFIG_ACPI=n environment:
    Commit: 5f0db7a2fb78895a197f64e548333b3bbd433996
    Author: Feng Tang <feng.tang@intel.com>
    Subject: SFI: Hook PCI MMCONFIG
    First check ACPI, and if that fails, ask SFI to find the MCFG.
   So it actually depends on the logic that in !CONFIG_ACPI builds, code
   blocks under "if (!acpi_disabled)" will not be linked in.

This patch fixes this issue by introducing a stub for MCFG entry checker
is_acpi_reserved() in !CONFIG_ACPI builds.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Feng Tang <feng.tang@intel.com>
Cc: sfi-devel@simplefirmware.org
Cc: linux-pci@vger.kernel.org
---
 arch/x86/pci/mmconfig-shared.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 248642f..2c04b22 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -369,6 +369,7 @@ static int __init pci_mmcfg_check_hostbridge(void)
 	return !list_empty(&pci_mmcfg_list);
 }
 
+#ifdef CONFIG_ACPI
 static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data)
 {
 	struct resource *mcfg_res = data;
@@ -435,6 +436,12 @@ static int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
 
 	return mcfg_res.flags;
 }
+#else
+static inline int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
+{
+	return 0;
+}
+#endif
 
 typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type);
 
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module.
  2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
                     ` (4 preceding siblings ...)
  2013-12-06  8:52   ` [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
@ 2013-12-06  8:52   ` Lv Zheng
  2013-12-06 15:01     ` Zheng, Lv
  5 siblings, 1 reply; 40+ messages in thread
From: Lv Zheng @ 2013-12-06  8:52 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown
  Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi,
	Konrad Rzeszutek Wilk, Peter Jones

In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
all external modules should depend on CONFIG_ACPI rather than using ACPICA
header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
dependent modules.

One of the build breakage is:
drivers/firmware/iscsi_ibft_find.c: In function 'find_ibft_region':
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type

The root cause of this breakage is:
1. iBFT locating is implemented by looking up it in the memory.  This is
   based on the specification.  Specification doesn't mention if it can
   appear on a non-ACPI platforms but mentions it is defined in ACPI 3.0b.
   The current CONFIG_ISCSI_IBFT_FIND doesn't use ACPI table APIs to locate
   the table, thus it doesn't rely on CONFIG_ACPI.

Since ACPI iSCSI Boot Firmware is an ACPI-based mechanism (please refer to
the Doclink below), we can make CONFIG_ISCSI_IBFT_FIND dependent on
CONFIG_ACPI though the locating mechanism can be implemented without using
ACPI table APIs.  But please let me know if this is wrong.

Doclink: http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>
Cc: Peter Jones <pjones@redhat.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/firmware/Kconfig   |    2 +-
 include/linux/iscsi_ibft.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 0747872..a6ef6ac 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -110,7 +110,7 @@ config DMI_SYSFS
 
 config ISCSI_IBFT_FIND
 	bool "iSCSI Boot Firmware Table Attributes"
-	depends on X86
+	depends on X86 && ACPI
 	default n
 	help
 	  This option enables the kernel to find the region of memory
diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
index 82f9673..605cc5c 100644
--- a/include/linux/iscsi_ibft.h
+++ b/include/linux/iscsi_ibft.h
@@ -21,7 +21,7 @@
 #ifndef ISCSI_IBFT_H
 #define ISCSI_IBFT_H
 
-#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
+#include <linux/acpi.h>
 
 /*
  * Logical location of iSCSI Boot Format Table.
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files
  2013-12-06  8:51   ` [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files Lv Zheng
@ 2013-12-06 14:31     ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 40+ messages in thread
From: Konrad Rzeszutek Wilk @ 2013-12-06 14:31 UTC (permalink / raw)
  To: Lv Zheng
  Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi,
	Greg Kroah-Hartman, Matthew Garrett, Tony Luck, H. Peter Anvin

On Fri, Dec 06, 2013 at 04:51:52PM +0800, Lv Zheng wrote:
> Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
> <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
> inclusions and remove some inclusions of those files that aren't
> necessary.
> 
> First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
> should not be included directly from any files that are built for
> CONFIG_ACPI unset, because that generally leads to build warnings about
> undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
> <linux/acpi.h> includes those files and for CONFIG_ACPI unset it
> provides stub ACPI symbols to be used in that case.
> 
> Second, there are ordering dependencies between those files that always
> have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
> prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
> latter depends on are always there.  And <acpi/acpi.h> which provides
> basic ACPICA type declarations should always be included prior to any other
> ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
> <linux/acpi.h> as appropriate.
> 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Matthew Garrett <mjg59@srcf.ucam.org>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci stuff)
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

.. for the Xen stuff with the assertion that you did build with the
right CONFIG_XEN...=y parameters).

Thank you!

^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage.
  2013-12-06  8:52   ` [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
@ 2013-12-06 14:53     ` Zheng, Lv
  2013-12-09 23:15       ` Bjorn Helgaas
  0 siblings, 1 reply; 40+ messages in thread
From: Zheng, Lv @ 2013-12-06 14:53 UTC (permalink / raw)
  To: Wysocki, Rafael J, Brown, Len
  Cc: Lv Zheng, linux-kernel, linux-acpi, Bjorn Helgaas, Len Brown,
	Tang, Feng, sfi-devel, linux-pci

Hi,

> From: Zheng, Lv
> Sent: Friday, December 06, 2013 4:52 PM
> To: Wysocki, Rafael J; Brown, Len
> 
> In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
> all external modules should depend on CONFIG_ACPI rather than using ACPICA
> header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
> into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
> dependent modules.
> 
> One of the build breakage is:
> arch/x86/pci/mmconfig-shared.c:389:1: error: unknown type name 'acpi_status'
> arch/x86/pci/mmconfig-shared.c:389:47: warning: 'struct acpi_resource' declared inside parameter list [enabled by default]
> arch/x86/pci/mmconfig-shared.c:389:47: warning: its scope is only this definition or declaration, which is probably not what you want
> [enabled by default]
> arch/x86/pci/mmconfig-shared.c: In function 'check_mcfg_resource':
> arch/x86/pci/mmconfig-shared.c:392:33: error: storage size of 'address' isn't known
> arch/x86/pci/mmconfig-shared.c:393:2: error: unknown type name 'acpi_status'
> arch/x86/pci/mmconfig-shared.c:395:9: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:395:19: error: 'ACPI_RESOURCE_TYPE_FIXED_MEMORY32' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:395:19: note: each undeclared identifier is reported only once for each function it appears in
> arch/x86/pci/mmconfig-shared.c:397:8: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:399:11: error: 'AE_OK' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:400:35: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:401:33: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:402:19: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:404:11: error: 'AE_CTRL_TERMINATE' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:407:10: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:407:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:408:10: error: dereferencing pointer to incomplete type
> arch/x86/pci/mmconfig-shared.c:408:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:411:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-
> function-declaration]
> arch/x86/pci/mmconfig-shared.c:412:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
> arch/x86/pci/mmconfig-shared.c:414:31: error: 'ACPI_MEMORY_RANGE' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c:392:33: warning: unused variable 'address' [-Wunused-variable]
> arch/x86/pci/mmconfig-shared.c: At top level:
> arch/x86/pci/mmconfig-shared.c:425:1: error: unknown type name 'acpi_status'
> arch/x86/pci/mmconfig-shared.c:425:41: error: unknown type name 'acpi_handle'
> arch/x86/pci/mmconfig-shared.c: In function 'is_acpi_reserved':
> arch/x86/pci/mmconfig-shared.c:447:2: error: implicit declaration of function 'acpi_get_devices' [-Werror=implicit-function-
> declaration]
> arch/x86/pci/mmconfig-shared.c:447:30: error: 'find_mboard_resource' undeclared (first use in this function)
> arch/x86/pci/mmconfig-shared.c: At top level:
> arch/x86/pci/mmconfig-shared.c:389:20: warning: 'check_mcfg_resource' defined but not used [-Wunused-function]

Let me say something about this error messages.  Someone may face difficulties to reproduce it.
Currently, this message cannot be seen in any kernel build.
This is because this patch series doesn't include a fix to remove <acpi/acpi.h> inclusion from linux/sfi_acpi.h.
To achieve this, I have offered 2 options:
1. Redefining ACPICA table stuff for CONFIG_ACPI=n environment, or
2. Implementing stubs for all ACPICA functions/globals/macros and introducing <linux/acpica.h> (where acpi/acpi.h is included) as a top level header.
3. Other solutions...

If we choose solution 1, then this issue is exposed by a build test where CONFIG_ACPI=n and CONFIG_SFI=y.
Since we haven't decided what to do for the table structures and it is really not a good approach to achieve the build safety for mmconfig-share.c by relying on link-stage optimization rather than compile-stage referencing.  IMO, we need to sort it out, thus I make it a part of this patchset.

Well, if we choose solution 2, this patch can only help to reduce the size of the kernel image.

Thanks and best regards
-Lv

> 
> The root cause of this breakage is:
> 1. The following commit doesn't protect ACPICA functions like
>    acpi_get_devices()/acpi_walk_resources()/acpi_resource_to_address64() in
>    CONFIG_SFI=y and CONFIG_ACPI=n environment:
>     Commit: 5f0db7a2fb78895a197f64e548333b3bbd433996
>     Author: Feng Tang <feng.tang@intel.com>
>     Subject: SFI: Hook PCI MMCONFIG
>     First check ACPI, and if that fails, ask SFI to find the MCFG.
>    So it actually depends on the logic that in !CONFIG_ACPI builds, code
>    blocks under "if (!acpi_disabled)" will not be linked in.
> 
> This patch fixes this issue by introducing a stub for MCFG entry checker
> is_acpi_reserved() in !CONFIG_ACPI builds.
> 
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: Feng Tang <feng.tang@intel.com>
> Cc: sfi-devel@simplefirmware.org
> Cc: linux-pci@vger.kernel.org
> ---
>  arch/x86/pci/mmconfig-shared.c |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
> index 248642f..2c04b22 100644
> --- a/arch/x86/pci/mmconfig-shared.c
> +++ b/arch/x86/pci/mmconfig-shared.c
> @@ -369,6 +369,7 @@ static int __init pci_mmcfg_check_hostbridge(void)
>  	return !list_empty(&pci_mmcfg_list);
>  }
> 
> +#ifdef CONFIG_ACPI
>  static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data)
>  {
>  	struct resource *mcfg_res = data;
> @@ -435,6 +436,12 @@ static int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
> 
>  	return mcfg_res.flags;
>  }
> +#else
> +static inline int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
> +{
> +	return 0;
> +}
> +#endif
> 
>  typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type);
> 
> --
> 1.7.10


^ permalink raw reply	[flat|nested] 40+ messages in thread

* RE: [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module.
  2013-12-06  8:52   ` [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
@ 2013-12-06 15:01     ` Zheng, Lv
  0 siblings, 0 replies; 40+ messages in thread
From: Zheng, Lv @ 2013-12-06 15:01 UTC (permalink / raw)
  To: Wysocki, Rafael J, Brown, Len
  Cc: Lv Zheng, linux-kernel, linux-acpi, Konrad Rzeszutek Wilk, Peter Jones

> From: Zheng, Lv
> Sent: Friday, December 06, 2013 4:52 PM
> 
> In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
> all external modules should depend on CONFIG_ACPI rather than using ACPICA
> header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
> into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
> dependent modules.
> 
> One of the build breakage is:
> drivers/firmware/iscsi_ibft_find.c: In function 'find_ibft_region':
> drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
> drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
> drivers/firmware/iscsi_ibft_find.c:106:12: error: dereferencing pointer to incomplete type
> 
> The root cause of this breakage is:
> 1. iBFT locating is implemented by looking up it in the memory.  This is
>    based on the specification.  Specification doesn't mention if it can
>    appear on a non-ACPI platforms but mentions it is defined in ACPI 3.0b.
>    The current CONFIG_ISCSI_IBFT_FIND doesn't use ACPI table APIs to locate
>    the table, thus it doesn't rely on CONFIG_ACPI.
> 
> Since ACPI iSCSI Boot Firmware is an ACPI-based mechanism (please refer to
> the Doclink below), we can make CONFIG_ISCSI_IBFT_FIND dependent on
> CONFIG_ACPI though the locating mechanism can be implemented without using
> ACPI table APIs.  But please let me know if this is wrong.

Ping Konrad or Peter, will this fix mess up some situations?
Originally, this patch is marked as RFC.
But since I can see it in linux-pm/bleeding-edge branch and this patchset refreshes what have been accepted, I took the "RFC" off.

Thanks and best regards
-Lv

> 
> Doclink: http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
> Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>
> Cc: Peter Jones <pjones@redhat.com>
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> ---
>  drivers/firmware/Kconfig   |    2 +-
>  include/linux/iscsi_ibft.h |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
> index 0747872..a6ef6ac 100644
> --- a/drivers/firmware/Kconfig
> +++ b/drivers/firmware/Kconfig
> @@ -110,7 +110,7 @@ config DMI_SYSFS
> 
>  config ISCSI_IBFT_FIND
>  	bool "iSCSI Boot Firmware Table Attributes"
> -	depends on X86
> +	depends on X86 && ACPI
>  	default n
>  	help
>  	  This option enables the kernel to find the region of memory
> diff --git a/include/linux/iscsi_ibft.h b/include/linux/iscsi_ibft.h
> index 82f9673..605cc5c 100644
> --- a/include/linux/iscsi_ibft.h
> +++ b/include/linux/iscsi_ibft.h
> @@ -21,7 +21,7 @@
>  #ifndef ISCSI_IBFT_H
>  #define ISCSI_IBFT_H
> 
> -#include <acpi/acpi.h>	/* FIXME: inclusion should be removed */
> +#include <linux/acpi.h>
> 
>  /*
>   * Logical location of iSCSI Boot Format Table.
> --
> 1.7.10


^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage.
  2013-12-06 14:53     ` Zheng, Lv
@ 2013-12-09 23:15       ` Bjorn Helgaas
  2013-12-12  1:38         ` Rafael J. Wysocki
  0 siblings, 1 reply; 40+ messages in thread
From: Bjorn Helgaas @ 2013-12-09 23:15 UTC (permalink / raw)
  To: Zheng, Lv
  Cc: Wysocki, Rafael J, Brown, Len, Lv Zheng, linux-kernel,
	linux-acpi, Len Brown, Tang, Feng, sfi-devel, linux-pci

On Fri, Dec 06, 2013 at 02:53:00PM +0000, Zheng, Lv wrote:
> Hi,
> 
> > From: Zheng, Lv
> > Sent: Friday, December 06, 2013 4:52 PM
> > To: Wysocki, Rafael J; Brown, Len
> > 
> > In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
> > all external modules should depend on CONFIG_ACPI rather than using ACPICA
> > header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
> > into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
> > dependent modules.
> > 
> > One of the build breakage is:
> > arch/x86/pci/mmconfig-shared.c:389:1: error: unknown type name 'acpi_status'
> > arch/x86/pci/mmconfig-shared.c:389:47: warning: 'struct acpi_resource' declared inside parameter list [enabled by default]
> > arch/x86/pci/mmconfig-shared.c:389:47: warning: its scope is only this definition or declaration, which is probably not what you want
> > [enabled by default]
> > arch/x86/pci/mmconfig-shared.c: In function 'check_mcfg_resource':
> > arch/x86/pci/mmconfig-shared.c:392:33: error: storage size of 'address' isn't known
> > arch/x86/pci/mmconfig-shared.c:393:2: error: unknown type name 'acpi_status'
> > arch/x86/pci/mmconfig-shared.c:395:9: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:395:19: error: 'ACPI_RESOURCE_TYPE_FIXED_MEMORY32' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:395:19: note: each undeclared identifier is reported only once for each function it appears in
> > arch/x86/pci/mmconfig-shared.c:397:8: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:399:11: error: 'AE_OK' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:400:35: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:401:33: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:402:19: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:404:11: error: 'AE_CTRL_TERMINATE' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:407:10: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:407:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:408:10: error: dereferencing pointer to incomplete type
> > arch/x86/pci/mmconfig-shared.c:408:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:411:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-
> > function-declaration]
> > arch/x86/pci/mmconfig-shared.c:412:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
> > arch/x86/pci/mmconfig-shared.c:414:31: error: 'ACPI_MEMORY_RANGE' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c:392:33: warning: unused variable 'address' [-Wunused-variable]
> > arch/x86/pci/mmconfig-shared.c: At top level:
> > arch/x86/pci/mmconfig-shared.c:425:1: error: unknown type name 'acpi_status'
> > arch/x86/pci/mmconfig-shared.c:425:41: error: unknown type name 'acpi_handle'
> > arch/x86/pci/mmconfig-shared.c: In function 'is_acpi_reserved':
> > arch/x86/pci/mmconfig-shared.c:447:2: error: implicit declaration of function 'acpi_get_devices' [-Werror=implicit-function-
> > declaration]
> > arch/x86/pci/mmconfig-shared.c:447:30: error: 'find_mboard_resource' undeclared (first use in this function)
> > arch/x86/pci/mmconfig-shared.c: At top level:
> > arch/x86/pci/mmconfig-shared.c:389:20: warning: 'check_mcfg_resource' defined but not used [-Wunused-function]
> 
> Let me say something about this error messages.  Someone may face difficulties to reproduce it.
> Currently, this message cannot be seen in any kernel build.
> This is because this patch series doesn't include a fix to remove <acpi/acpi.h> inclusion from linux/sfi_acpi.h.
> To achieve this, I have offered 2 options:
> 1. Redefining ACPICA table stuff for CONFIG_ACPI=n environment, or
> 2. Implementing stubs for all ACPICA functions/globals/macros and introducing <linux/acpica.h> (where acpi/acpi.h is included) as a top level header.
> 3. Other solutions...
> 
> If we choose solution 1, then this issue is exposed by a build test where CONFIG_ACPI=n and CONFIG_SFI=y.
> Since we haven't decided what to do for the table structures and it is really not a good approach to achieve the build safety for mmconfig-share.c by relying on link-stage optimization rather than compile-stage referencing.  IMO, we need to sort it out, thus I make it a part of this patchset.
> 
> Well, if we choose solution 2, this patch can only help to reduce the size of the kernel image.

OK, I assume you will make sure one of these fixes gets merged before the
change that causes the breakage, so bisection continues to work.
Therefore, I think it's best if both changes are merged through the same
tree, and I won't apply this via the PCI tree.  Let me know if you need me
to do something.

Bjorn

> > 
> > The root cause of this breakage is:
> > 1. The following commit doesn't protect ACPICA functions like
> >    acpi_get_devices()/acpi_walk_resources()/acpi_resource_to_address64() in
> >    CONFIG_SFI=y and CONFIG_ACPI=n environment:
> >     Commit: 5f0db7a2fb78895a197f64e548333b3bbd433996
> >     Author: Feng Tang <feng.tang@intel.com>
> >     Subject: SFI: Hook PCI MMCONFIG
> >     First check ACPI, and if that fails, ask SFI to find the MCFG.
> >    So it actually depends on the logic that in !CONFIG_ACPI builds, code
> >    blocks under "if (!acpi_disabled)" will not be linked in.
> > 
> > This patch fixes this issue by introducing a stub for MCFG entry checker
> > is_acpi_reserved() in !CONFIG_ACPI builds.
> > 
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Len Brown <lenb@kernel.org>
> > Cc: Feng Tang <feng.tang@intel.com>
> > Cc: sfi-devel@simplefirmware.org
> > Cc: linux-pci@vger.kernel.org
> > ---
> >  arch/x86/pci/mmconfig-shared.c |    7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
> > index 248642f..2c04b22 100644
> > --- a/arch/x86/pci/mmconfig-shared.c
> > +++ b/arch/x86/pci/mmconfig-shared.c
> > @@ -369,6 +369,7 @@ static int __init pci_mmcfg_check_hostbridge(void)
> >  	return !list_empty(&pci_mmcfg_list);
> >  }
> > 
> > +#ifdef CONFIG_ACPI
> >  static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data)
> >  {
> >  	struct resource *mcfg_res = data;
> > @@ -435,6 +436,12 @@ static int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
> > 
> >  	return mcfg_res.flags;
> >  }
> > +#else
> > +static inline int is_acpi_reserved(u64 start, u64 end, unsigned not_used)
> > +{
> > +	return 0;
> > +}
> > +#endif
> > 
> >  typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type);
> > 
> > --
> > 1.7.10
> 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage.
  2013-12-09 23:15       ` Bjorn Helgaas
@ 2013-12-12  1:38         ` Rafael J. Wysocki
  0 siblings, 0 replies; 40+ messages in thread
From: Rafael J. Wysocki @ 2013-12-12  1:38 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Zheng, Lv, Wysocki, Rafael J, Brown, Len, Lv Zheng, linux-kernel,
	linux-acpi, Len Brown, Tang, Feng, sfi-devel, linux-pci

On Monday, December 09, 2013 04:15:15 PM Bjorn Helgaas wrote:
> On Fri, Dec 06, 2013 at 02:53:00PM +0000, Zheng, Lv wrote:
> > Hi,
> > 
> > > From: Zheng, Lv
> > > Sent: Friday, December 06, 2013 4:52 PM
> > > To: Wysocki, Rafael J; Brown, Len
> > > 
> > > In Linux kernel, ACPICA is wrapped and safely exported by CONFIG_ACPI.  So
> > > all external modules should depend on CONFIG_ACPI rather than using ACPICA
> > > header directly for stubbing.  But if we moves <acpi/acpi.h> inclusions
> > > into "#ifdef CONFIG_ACPI", build breakge can help to detect wrong ACPICA
> > > dependent modules.
> > > 
> > > One of the build breakage is:
> > > arch/x86/pci/mmconfig-shared.c:389:1: error: unknown type name 'acpi_status'
> > > arch/x86/pci/mmconfig-shared.c:389:47: warning: 'struct acpi_resource' declared inside parameter list [enabled by default]
> > > arch/x86/pci/mmconfig-shared.c:389:47: warning: its scope is only this definition or declaration, which is probably not what you want
> > > [enabled by default]
> > > arch/x86/pci/mmconfig-shared.c: In function 'check_mcfg_resource':
> > > arch/x86/pci/mmconfig-shared.c:392:33: error: storage size of 'address' isn't known
> > > arch/x86/pci/mmconfig-shared.c:393:2: error: unknown type name 'acpi_status'
> > > arch/x86/pci/mmconfig-shared.c:395:9: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:395:19: error: 'ACPI_RESOURCE_TYPE_FIXED_MEMORY32' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:395:19: note: each undeclared identifier is reported only once for each function it appears in
> > > arch/x86/pci/mmconfig-shared.c:397:8: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:399:11: error: 'AE_OK' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:400:35: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:401:33: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:402:19: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:404:11: error: 'AE_CTRL_TERMINATE' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:407:10: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:407:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:408:10: error: dereferencing pointer to incomplete type
> > > arch/x86/pci/mmconfig-shared.c:408:20: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:411:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-
> > > function-declaration]
> > > arch/x86/pci/mmconfig-shared.c:412:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
> > > arch/x86/pci/mmconfig-shared.c:414:31: error: 'ACPI_MEMORY_RANGE' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c:392:33: warning: unused variable 'address' [-Wunused-variable]
> > > arch/x86/pci/mmconfig-shared.c: At top level:
> > > arch/x86/pci/mmconfig-shared.c:425:1: error: unknown type name 'acpi_status'
> > > arch/x86/pci/mmconfig-shared.c:425:41: error: unknown type name 'acpi_handle'
> > > arch/x86/pci/mmconfig-shared.c: In function 'is_acpi_reserved':
> > > arch/x86/pci/mmconfig-shared.c:447:2: error: implicit declaration of function 'acpi_get_devices' [-Werror=implicit-function-
> > > declaration]
> > > arch/x86/pci/mmconfig-shared.c:447:30: error: 'find_mboard_resource' undeclared (first use in this function)
> > > arch/x86/pci/mmconfig-shared.c: At top level:
> > > arch/x86/pci/mmconfig-shared.c:389:20: warning: 'check_mcfg_resource' defined but not used [-Wunused-function]
> > 
> > Let me say something about this error messages.  Someone may face difficulties to reproduce it.
> > Currently, this message cannot be seen in any kernel build.
> > This is because this patch series doesn't include a fix to remove <acpi/acpi.h> inclusion from linux/sfi_acpi.h.
> > To achieve this, I have offered 2 options:
> > 1. Redefining ACPICA table stuff for CONFIG_ACPI=n environment, or
> > 2. Implementing stubs for all ACPICA functions/globals/macros and introducing <linux/acpica.h> (where acpi/acpi.h is included) as a top level header.
> > 3. Other solutions...
> > 
> > If we choose solution 1, then this issue is exposed by a build test where CONFIG_ACPI=n and CONFIG_SFI=y.
> > Since we haven't decided what to do for the table structures and it is really not a good approach to achieve the build safety for mmconfig-share.c by relying on link-stage optimization rather than compile-stage referencing.  IMO, we need to sort it out, thus I make it a part of this patchset.
> > 
> > Well, if we choose solution 2, this patch can only help to reduce the size of the kernel image.
> 
> OK, I assume you will make sure one of these fixes gets merged before the
> change that causes the breakage, so bisection continues to work.
> Therefore, I think it's best if both changes are merged through the same
> tree, and I won't apply this via the PCI tree.  Let me know if you need me
> to do something.

We're doing our best not to break compilation between the patches in this
series.  And I'll take care of it. :-)

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2013-12-12  1:25 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-22 23:26 [PATCH 0/4] ACPI: Cleanup header inclusions Lv Zheng
2013-11-22 23:27 ` [PATCH 1/4] ACPICA: Linux: Cleanup wrong ACPICA inclusions Lv Zheng
2013-11-25 23:54   ` Rafael J. Wysocki
2013-11-22 23:29 ` [PATCH 2/4] ACPI: Cleanup <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Lv Zheng
2013-11-26  0:06   ` Rafael J. Wysocki
2013-11-26  0:29     ` Zheng, Lv
2013-11-22 23:32 ` [PATCH 3/4] ACPICA: Cleanup <acpi/acpi.h> inclusions Lv Zheng
2013-11-22 23:37 ` [PATCH 4/4] ACPI: Add support to force header inclusion rules for <linux/acpi.h> Lv Zheng
2013-11-26  0:09   ` [UPDATE PATCH " Rafael J. Wysocki
2013-11-26  0:32     ` Zheng, Lv
     [not found] ` <3c5e408cd7791ef746f462c79ce28f67734817d9.1385434808.git.lv.zheng@intel.com>
2013-11-26 20:29   ` [PATCH v2] ACPI: Cleanup <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h> inclusions Rafael J. Wysocki
2013-11-26 20:27     ` Matthew Garrett
2013-11-26 20:29     ` Konrad Rzeszutek Wilk
2013-11-27  0:29       ` Rafael J. Wysocki
2013-11-28  1:12         ` Zheng, Lv
2013-11-28  2:34       ` Zheng, Lv
2013-11-26 20:54     ` Greg Kroah-Hartman
2013-11-28  0:54     ` Zheng, Lv
2013-11-28 14:18     ` Rafael J. Wysocki
2013-12-03 23:57       ` Rafael J. Wysocki
2013-12-04  3:31         ` Zheng, Lv
2013-12-04  0:41 ` [UPDTE PATCH 0/3] ACPI: Cleanup direct ACPICA inclusions Lv Zheng
2013-12-04  0:38   ` [PATCH 1/3] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
2013-12-04  8:16     ` [Intel-gfx] " Daniel Vetter
2013-12-05 13:04     ` Jani Nikula
2013-12-04  0:38   ` [PATCH 2/3] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
2013-12-04  0:38   ` [RFC PATCH 3/3] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
2013-12-05 14:25 ` [PATCH v2] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
2013-12-06  8:51 ` [PATCH v3 0/6] ACPI: Cleanup header inclusions Lv Zheng
2013-12-06  8:51   ` [PATCH v3 1/6] ACPI: Clean up incorrect inclusions of ACPICA headers Lv Zheng
2013-12-06  8:51   ` [PATCH v3 2/6] ACPI: Clean up inclusions of ACPI header files Lv Zheng
2013-12-06 14:31     ` Konrad Rzeszutek Wilk
2013-12-06  8:51   ` [PATCH v3 3/6] SFI: Fix warnings reported by W=1 builds Lv Zheng
2013-12-06  8:52   ` [PATCH v3 4/6] ACPI/i915: Fix wrong <acpi/acpi.h> inclusion in i915 opregion module Lv Zheng
2013-12-06  8:52   ` [PATCH v3 5/6] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - acpi_disabled linkage Lv Zheng
2013-12-06 14:53     ` Zheng, Lv
2013-12-09 23:15       ` Bjorn Helgaas
2013-12-12  1:38         ` Rafael J. Wysocki
2013-12-06  8:52   ` [PATCH v3 6/6] ACPI/IBFT: Fix wrong <acpi/acpi.h> inclusion in iSCSI boot firmware module Lv Zheng
2013-12-06 15:01     ` Zheng, Lv

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).