diff --git a/drivers/acpi/Config.help b/drivers/acpi/Config.help
index 86d30fbe037bdd02f20c154d95994f48a183daec..95ba5bb48dd85fc86488850889cb1bd603af6059 100644
--- a/drivers/acpi/Config.help
+++ b/drivers/acpi/Config.help
@@ -12,6 +12,12 @@ CONFIG_ACPI
   Management (APM) specification.  If both ACPI and APM support 
   are configured, whichever is loaded first shall be used.
   
+  Add "acpi=off" to the kernel command line to disable this feature.
+  (Try "man bootparam" or see the documentation of your boot loader 
+  about how to pass options to the kernel at boot time.)
+
+  ----------
+
   The ACPI SourceForge project contains the latest source code, 
   documentation, tools, mailing list subscription, and other 
   information.  This project is available at:
@@ -26,51 +32,28 @@ CONFIG_ACPI
   available at:
     <http://www.acpi.info>
 
-CONFIG_ACPI_BOOT
-  This option enables the use of ACPI tables for obtaining various
-  boot-time configuration information such as system processors, 
-  memory, and interrupt routing.  
-  
-  ACPI tables supercede legacy BIOS interfaces.  For example, the 
-  Multiple APIC Description Table (MADT) defined by the ACPI 
-  Specification is a replacement for the MP Configuration Table 
-  defined by the MultiProcessor Specification (MPS).
-  
-  You can disable this feature on IA32 systems by adding "acpi_boot=off" 
-  to your kernel command line. (Try "man bootparam" or see the 
-  documentation of your boot loader about how to pass options to the 
-  kernel at boot time.)
-
-  IA64 systems do not support legacy BIOS interfaces and thus rely
-  on ACPI tables to boot the system.  No kernel command line options
-  are supported.
-  
-CONFIG_ACPI_INTERPRETER
-  The ACPI Interpreter (a.k.a. ACPI Core Subsystem) provides the 
-  fundamental services required to parse the ACPI namespace, evaluate
-  control methods, and manage ACPI hardware and events.  This 
-  subsystem exposes kernel interfaces allowing higher level software
-  to manipulate ACPI defined hardware and software interfaces.
-
-  Add "acpi=off" to the kernel command line to disable this feature.
-  (Try "man bootparam" or see the documentation of your boot loader 
-  about how to pass options to the kernel at boot time.)
+CONFIG_ACPI_HT_ONLY
+  This option enables limited ACPI support -- just enough to 
+  enumerate processors from the ACPI Multiple APIC Description 
+  Table (MADT).  Note that ACPI supports both logical (e.g. Hyper-
+  Threading) and physical processors, where the MultiProcessor 
+  Specification (MPS) table only supports physical processors.
 
-  Note that this option will enlarge your kernel by about 100K.
+  Full ACPI support (CONFIG_ACPI) is preferred.  Use this option 
+  only if you wish to limit ACPI's role to processor enumeration.
 
-CONFIG_ACPI_BUS
-  The ACPI Bus driver enumerates and manages devices in the ACPI 
-  namespace in a manner similar to other bus drivers (e.g. PCI).
-  All ACPI device drivers rely on its services. 
+  There is no command-line option to disable this, but the kernel
+  will fall back to the MPS table if the MADT is not present.
 
 CONFIG_ACPI_AC
   This driver adds support for the AC Adapter object, which indicates
-  whether a system is on AC, or not.  Typically, only laptops have
-  this object, since desktops are always on AC.
+  whether a system is on AC, or not.  Typically, only mobile systems 
+  have this object, since desktops are always on AC.
 
 CONFIG_ACPI_BATTERY
   This driver adds support for battery information through
-  /proc/acpi/battery. If you have a laptop with a battery, say Y.
+  /proc/acpi/battery. If you have a mobile system with a battery, 
+  say Y.
 
 CONFIG_ACPI_BUTTON
   This driver registers for events based on buttons, such as the
@@ -79,21 +62,10 @@ CONFIG_ACPI_BUTTON
   down the system.  Until then, you can cat it, and see output when
   a button is pressed.
 
-CONFIG_ACPI_DEBUG
-  The ACPI driver can optionally report errors with a great deal
-  of verbosity. Saying Y enables these statements. This will increase
-  your kernel size by around 50K.
-
 CONFIG_ACPI_EC
   This driver is required on some systems for the proper operation of
-  the battery and thermal drivers.  If you are compiling for a laptop,
-  say Y.
-
-CONFIG_ACPI_PCI
-  This option enables ACPI-based enumeration and configuration of PCI 
-  root bridge devices, including PCI interrupt routing (_PRT) support.  
-  This is required on platforms that no longer support legacy tables 
-  (e.g. MPS/PIR) or have erroneous table entries.
+  the battery and thermal drivers.  If you are compiling for a 
+  mobile system, say Y.
 
 CONFIG_ACPI_PROCESSOR
   This driver installs ACPI as the idle handler for Linux, and uses
@@ -114,9 +86,8 @@ CONFIG_ACPI_SYSTEM
   This driver will enable your system to shut down using ACPI, and
   dump your ACPI DSDT table using /proc/acpi/dsdt.
 
-CONFIG_ACPI_SLEEP
-  Enables low-level sleep support, allowing the platform to enter
-  and exit the S1-S4 states.  Note that although the platform may
-  support this capability, full sleep support will not be viable
-  until drivers properly save/restore hardware context.  (In other
-  words, use at your own risk!)
+CONFIG_ACPI_DEBUG
+  The ACPI driver can optionally report errors with a great deal
+  of verbosity. Saying Y enables these statements. This will increase
+  your kernel size by around 50K.
+
diff --git a/drivers/acpi/Config.in b/drivers/acpi/Config.in
index 89060081c3a4e9626d4a5ff795eb4b7e13d2fbb9..83de426260d9c7f942b8e883dad10419d571094a 100644
--- a/drivers/acpi/Config.in
+++ b/drivers/acpi/Config.in
@@ -1,40 +1,76 @@
 #
 # ACPI Configuration
 #
+
 if [ "$CONFIG_X86" = "y" ]; then
+
   mainmenu_option next_comment
   comment 'ACPI Support'
-  dep_bool       'ACPI Support' 	CONFIG_ACPI $CONFIG_PCI
+  bool         'ACPI Support' CONFIG_ACPI
   if [ "$CONFIG_ACPI" = "y" ]; then
-    define_bool CONFIG_ACPI_BOOT 	y
-    define_bool CONFIG_ACPI_BUS 	y
-    define_bool CONFIG_ACPI_EC		y
-    define_bool CONFIG_ACPI_INTERPRETER y
-    define_bool CONFIG_ACPI_PCI 	y
-    define_bool CONFIG_ACPI_POWER 	y
-    define_bool CONFIG_ACPI_SLEEP 	y
-    define_bool CONFIG_ACPI_SYSTEM 	y
-    tristate     '  AC Adapter' 	CONFIG_ACPI_AC		
-    tristate     '  Battery'		CONFIG_ACPI_BATTERY	
-    tristate     '  Button'		CONFIG_ACPI_BUTTON
-    tristate     '  Fan'		CONFIG_ACPI_FAN
-    tristate     '  Processor'		CONFIG_ACPI_PROCESSOR
-    dep_tristate '  Thermal Zone' CONFIG_ACPI_THERMAL $CONFIG_ACPI_PROCESSOR
-    bool         '  Debug Statements' 	CONFIG_ACPI_DEBUG
+    if [ "$CONFIG_X86_LOCAL_APIC" = "y" ]; then
+      bool         'CPU Enumeration Only' CONFIG_ACPI_HT_ONLY
+    fi
+
+    if [ "$CONFIG_ACPI_HT_ONLY" = "y" ]; then
+      define_bool CONFIG_ACPI_BOOT		y
+    else
+      define_bool CONFIG_ACPI_BOOT		y
+      define_bool CONFIG_ACPI_BUS		y
+      define_bool CONFIG_ACPI_INTERPRETER	y
+      define_bool CONFIG_ACPI_EC		y
+      define_bool CONFIG_ACPI_POWER		y
+      if [ "$CONFIG_PCI" = "y" ]; then
+        define_bool CONFIG_ACPI_PCI		y
+      fi
+      define_bool CONFIG_ACPI_SLEEP		y
+      define_bool CONFIG_ACPI_SYSTEM		y
+      tristate     '  AC Adapter'	CONFIG_ACPI_AC
+      tristate     '  Battery'		CONFIG_ACPI_BATTERY
+      tristate     '  Button'		CONFIG_ACPI_BUTTON
+      tristate     '  Fan'		CONFIG_ACPI_FAN
+      tristate     '  Processor'	CONFIG_ACPI_PROCESSOR
+      dep_tristate '  Thermal Zone' 	CONFIG_ACPI_THERMAL $CONFIG_ACPI_PROCESSOR
+      bool         '  Debug Statements'	CONFIG_ACPI_DEBUG
+    fi
   fi
+
   endmenu
+
 fi
 
+
 if [ "$CONFIG_IA64" = "y" ]; then
+
+  if [ "$CONFIG_IA64_SGI_SN" = "y" ]; then
+    mainmenu_option next_comment
+    comment 'ACPI Support'
+    define_bool CONFIG_ACPI		y
+    define_bool CONFIG_ACPI_EFI		y
+    define_bool CONFIG_ACPI_BOOT	y
+    define_bool CONFIG_ACPI_BUS		n
+    define_bool CONFIG_ACPI_INTERPRETER n
+    define_bool CONFIG_ACPI_PCI		n
+    define_bool CONFIG_ACPI_POWER 	n
+    define_bool CONFIG_ACPI_SYSTEM 	n
+    define_bool CONFIG_ACPI_BUTTON	n
+    define_bool CONFIG_ACPI_FAN		n
+    define_bool CONFIG_ACPI_PROCESSOR	n
+    define_bool CONFIG_ACPI_THERMAL	n
+    endmenu
+  fi
+
   if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
     mainmenu_option next_comment
     comment 'ACPI Support'
+    if [ "$CONFIG_PCI" = "y" ]; then
+      define_bool CONFIG_ACPI_PCI 	y
+    fi
     define_bool CONFIG_ACPI		y
     define_bool CONFIG_ACPI_EFI		y
     define_bool CONFIG_ACPI_BOOT	y
     define_bool CONFIG_ACPI_BUS		y
     define_bool CONFIG_ACPI_INTERPRETER y
-    define_bool CONFIG_ACPI_PCI		y
     define_bool CONFIG_ACPI_POWER 	y
     define_bool CONFIG_ACPI_SYSTEM 	y
     tristate     '  Button'		CONFIG_ACPI_BUTTON
@@ -44,4 +80,5 @@ if [ "$CONFIG_IA64" = "y" ]; then
     bool         '  Debug Statements' 	CONFIG_ACPI_DEBUG
     endmenu
   fi
+
 fi
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index 390917e8e087abbaf715702bf526b26526e7ff0d..9fab3958d711167c0c3efdd0bcda26a952d266c5 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -2,6 +2,8 @@
 # Makefile for the Linux ACPI interpreter
 # 
 
+O_TARGET := acpi.o
+
 export ACPI_CFLAGS
 
 ACPI_CFLAGS	:= -D_LINUX -I$(CURDIR)/include
@@ -19,12 +21,12 @@ obj-y		:= acpi_ksyms.o
 #
 # ACPI Boot-Time Table Parsing
 #
-obj-$(CONFIG_ACPI_BOOT)		+= acpi_tables.o
+obj-$(CONFIG_ACPI_BOOT)		+= tables.o
 
 #
 # ACPI Core Subsystem (Interpreter)
 #
-obj-$(CONFIG_ACPI_INTERPRETER)	+= acpi_osl.o acpi_utils.o \
+obj-$(CONFIG_ACPI_INTERPRETER)	+= osl.o utils.o \
 				   dispatcher/ events/ executer/ hardware/ \
 				   namespace/ parser/ resources/ tables/ \
 				   utilities/
@@ -32,16 +34,16 @@ obj-$(CONFIG_ACPI_INTERPRETER)	+= acpi_osl.o acpi_utils.o \
 #
 # ACPI Bus and Device Drivers
 #
-obj-$(CONFIG_ACPI_BUS)		+= acpi_bus.o 
-obj-$(CONFIG_ACPI_AC) 		+= acpi_ac.o
-obj-$(CONFIG_ACPI_BATTERY)	+= acpi_battery.o
-obj-$(CONFIG_ACPI_BUTTON)	+= acpi_button.o
-obj-$(CONFIG_ACPI_EC)		+= acpi_ec.o
-obj-$(CONFIG_ACPI_FAN)		+= acpi_fan.o
-obj-$(CONFIG_ACPI_PCI)		+= acpi_pci_root.o acpi_pci_link.o
-obj-$(CONFIG_ACPI_POWER)	+= acpi_power.o
-obj-$(CONFIG_ACPI_PROCESSOR)	+= acpi_processor.o
-obj-$(CONFIG_ACPI_THERMAL)	+= acpi_thermal.o
-obj-$(CONFIG_ACPI_SYSTEM)	+= acpi_system.o
+obj-$(CONFIG_ACPI_BUS)		+= bus.o 
+obj-$(CONFIG_ACPI_AC) 		+= ac.o
+obj-$(CONFIG_ACPI_BATTERY)	+= battery.o
+obj-$(CONFIG_ACPI_BUTTON)	+= button.o
+obj-$(CONFIG_ACPI_EC)		+= ec.o
+obj-$(CONFIG_ACPI_FAN)		+= fan.o
+obj-$(CONFIG_ACPI_PCI)		+= pci_root.o pci_link.o pci_irq.o pci_bind.o
+obj-$(CONFIG_ACPI_POWER)	+= power.o
+obj-$(CONFIG_ACPI_PROCESSOR)	+= processor.o
+obj-$(CONFIG_ACPI_THERMAL)	+= thermal.o
+obj-$(CONFIG_ACPI_SYSTEM)	+= system.o
 
 include $(TOPDIR)/Rules.make