http://linux-acpi.bkbits.net/linux-acpi-test-mm len.brown@intel.com|ChangeSet|20040902073943|57993 len.brown # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/09/11 14:54:24-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # drivers/acpi/osl.c # 2004/09/11 14:54:20-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/09 14:06:06-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # arch/ia64/kernel/acpi.c # 2004/09/09 14:06:02-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/08 11:34:30-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # drivers/Makefile # 2004/09/08 11:34:26-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/05 21:49:12-07:00 akpm@bix.(none) # Merge http://linux-acpi.bkbits.net/linux-acpi-test-mm # into bix.(none):/usr/src/bk-acpi # # include/asm-x86_64/mpspec.h # 2004/09/05 21:49:08-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/09/05 21:49:08-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/02 03:39:43-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-test # into intel.com:/home/lenb/bk/linux-acpi-test-mm # # include/linux/acpi.h # 2004/09/02 03:39:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/acpi/acpi_drivers.h # 2004/09/02 03:39:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/Kconfig # 2004/09/02 03:39:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/09/02 03:39:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/io_apic.c # 2004/09/02 03:39:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/dmi_scan.c # 2004/09/02 03:39:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/09/02 03:39:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/09/02 03:31:12-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # arch/i386/kernel/io_apic.c # 2004/09/02 03:31:08-04:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/09/02 03:31:08-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/09/02 03:25:49-04:00 len.brown@intel.com # merge # # arch/x86_64/Kconfig # 2004/09/02 03:25:42-04:00 len.brown@intel.com +1 -0 # merge # # sound/drivers/mpu401/mpu401.c # 2004/09/02 03:20:35-04:00 len.brown@intel.com +3 -3 # Auto merged # # include/asm-x86_64/mpspec.h # 2004/09/02 03:20:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-x86_64/acpi.h # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-i386/fixmap.h # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-i386/acpi.h # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/char/ipmi/ipmi_si_intf.c # 2004/09/02 03:20:34-04:00 len.brown@intel.com +1 -2 # Auto merged # # drivers/Makefile # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/Makefile # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/io_apic.c # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/Makefile # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/Kconfig # 2004/09/02 03:20:34-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/09/02 03:00:54-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-test # into intel.com:/home/lenb/bk/linux-acpi-test-mm # # sound/drivers/mpu401/mpu401.c # 2004/09/02 03:00:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/09/02 03:00:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/io_apic.c # 2004/09/02 03:00:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/Makefile # 2004/09/02 03:00:49-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/09/02 02:45:09-04:00 len.brown@intel.com # [ACPI] delete ACPI DMI/BIOS cutoff year by default # # CONFIG_ACPI_BLACKLIST_YEAR=2001 for old behaviour # # drivers/acpi/bus.c # 2004/09/02 02:45:03-04:00 len.brown@intel.com +4 -1 # bugfix: don't run acpi_early_init if acpi_disabled # # drivers/acpi/blacklist.c # 2004/09/02 02:45:03-04:00 len.brown@intel.com +38 -15 # CONFIG_ACPI_BLACKLIST_YEAR # create blacklisted_by_year() # # drivers/acpi/Kconfig # 2004/09/02 02:45:03-04:00 len.brown@intel.com +10 -0 # create CONFIG_ACPI_BLACKLIST_YEAR # # arch/i386/kernel/dmi_scan.c # 2004/09/02 02:45:03-04:00 len.brown@intel.com +1 -22 # delete dmi_check_blacklist() and acpi_bios_year() # # arch/i386/kernel/acpi/boot.c # 2004/09/02 02:45:03-04:00 len.brown@intel.com +9 -3 # allow acpi=force to override ACPI blacklist # # ChangeSet # 2004/09/01 23:04:13-04:00 len.brown@intel.com # [ACPI] move acpi_bios_year() to blacklist.c from dmi_scan.c (Pavel Machek) # # include/linux/acpi.h # 2004/09/01 23:04:07-04:00 len.brown@intel.com +4 -3 # add externs, acpi_biso_year(); # # drivers/acpi/blacklist.c # 2004/09/01 23:04:07-04:00 len.brown@intel.com +21 -0 # add acpi_bios_year() # # arch/i386/kernel/dmi_scan.c # 2004/09/01 23:04:07-04:00 len.brown@intel.com +3 -17 # move ACPI_BLACKLIST_CUTOFF_YEAR # # ChangeSet # 2004/09/01 22:25:08-04:00 len.brown@intel.com # [ACPI] debugging enhancements (Yi Zhu) # # new cmdline options: "acpi_dbg_layer=", "acpi_dbg_level=" # and /proc/acpi/debug_layer, debug_level now describe levels # # http://bugzilla.kernel.org/show_bug.cgi?id=2398 # # include/acpi/acpi_drivers.h # 2004/09/01 17:55:24-04:00 len.brown@intel.com +0 -55 # debugging enhancements # # drivers/acpi/utilities/utglobal.c # 2004/09/01 17:55:24-04:00 len.brown@intel.com +2 -7 # debugging enhancements # # drivers/acpi/debug.c # 2004/09/01 17:55:24-04:00 len.brown@intel.com +103 -2 # debugging enhancements # # drivers/acpi/bus.c # 2004/09/01 17:55:24-04:00 len.brown@intel.com +0 -3 # debugging enhancements # # Documentation/kernel-parameters.txt # 2004/09/01 17:55:24-04:00 len.brown@intel.com +14 -0 # debugging enhancements # # ChangeSet # 2004/09/01 22:16:57-04:00 len.brown@intel.com # [ACPI] allow config to specify custom DSDT (Ulf Dambacher) # # drivers/acpi/osl.c # 2004/09/01 22:16:45-04:00 len.brown@intel.com +10 -0 # [ACPI] custom DSDT # # drivers/acpi/Kconfig # 2004/09/01 22:16:45-04:00 len.brown@intel.com +17 -0 # [ACPI] custom DSDT # # ChangeSet # 2004/09/01 20:31:33-04:00 len.brown@intel.com # [ACPI] cleanup: use ioapic_register_intr() # # arch/x86_64/kernel/io_apic.c # 2004/09/01 20:31:27-04:00 len.brown@intel.com +1 -9 # use ioapic_register_intr() # # arch/i386/kernel/io_apic.c # 2004/09/01 20:31:27-04:00 len.brown@intel.com +1 -9 # use ioapic_register_intr() # # ChangeSet # 2004/09/01 20:28:43-04:00 len.brown@intel.com # Cset exclude: len.brown@intel.com|ChangeSet|20040817220851|52337 # # arch/i386/kernel/dmi_scan.c # 2004/09/01 20:28:41-04:00 len.brown@intel.com +0 -0 # Exclude # # ChangeSet # 2004/09/01 20:26:54-04:00 len.brown@intel.com # Cset exclude: len.brown@intel.com|ChangeSet|20040826050001|40089 # # sound/drivers/mpu401/mpu401.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # include/linux/acpi.h # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-i386/mpspec.h # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-i386/io_apic.h # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-i386/fixmap.h # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # drivers/acpi/acpi_ksyms.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # drivers/acpi/Makefile # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # drivers/acpi/Kconfig # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # drivers/Makefile # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/Kconfig # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/ia64/kernel/setup.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/ia64/kernel/acpi.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/setup.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/mpparse.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/io_apic.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/dmi_scan.c # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/acpi/Makefile # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/Makefile # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/Kconfig # 2004/09/01 20:26:43-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-x86_64/mpspec.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-x86_64/io_apic.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-x86_64/acpi.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # include/asm-i386/acpi.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # include/acpi/acpi_drivers.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # include/acpi/acpi_bus.h # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # drivers/char/ipmi/ipmi_si_intf.c # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/kernel/setup.c # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/kernel/mpparse.c # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/kernel/io_apic.c # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/kernel/acpi/Makefile # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/x86_64/kernel/Makefile # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # arch/i386/kernel/acpi/boot.c # 2004/09/01 20:26:42-04:00 len.brown@intel.com +0 -0 # Exclude # # ChangeSet # 2004/08/27 01:25:27-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-test # into intel.com:/home/lenb/bk/linux-acpi-test-mm # # include/asm-i386/acpi.h # 2004/08/27 01:25:23-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/08/27 01:25:23-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/Makefile # 2004/08/27 01:25:23-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/08/26 14:50:55-04:00 len.brown@intel.com # [ACPI] Export acpi_strict for use in modular drivers. # This will enable drivers to work around BIOS deficiencies, # while still allowing the drivers to be more picky with "acpi=strict" # # Signed-off-by: Bjorn Helgaas # # arch/i386/kernel/acpi/boot.c # 2004/08/26 14:50:48-04:00 len.brown@intel.com +1 -0 # export acpi_strict # # ChangeSet # 2004/08/26 01:04:55-04:00 len.brown@intel.com # merge # # arch/x86_64/Kconfig # 2004/08/26 01:04:50-04:00 len.brown@intel.com +0 -1 # merge # # include/asm-x86_64/mpspec.h # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-x86_64/acpi.h # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-i386/fixmap.h # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # include/asm-i386/acpi.h # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/char/ipmi/ipmi_si_intf.c # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -3 # Auto merged # # drivers/Makefile # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/Makefile # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/io_apic.c # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/Makefile # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/Kconfig # 2004/08/26 01:01:12-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/08/26 00:19:36-04:00 len.brown@intel.com # [ACPI] fix numa build warnings (Keith Owens) # # Signed-off-by: Takayoshi Kochi # # drivers/acpi/numa.c # 2004/07/28 09:07:45-04:00 len.brown@intel.com +10 -2 # fix numa build warnings # # ChangeSet # 2004/08/24 22:18:39-04:00 len.brown@intel.com # [ACPI] quiet ACPI NUMA boot messages # Signed-off-by: Jesse Barnes # # drivers/acpi/tables.c # 2004/08/24 18:12:20-04:00 len.brown@intel.com +2 -2 # quiet boot messages # # drivers/acpi/numa.c # 2004/08/24 18:16:12-04:00 len.brown@intel.com +0 -4 # quiet boot messages # # ChangeSet # 2004/08/21 23:12:45-04:00 len.brown@intel.com # [ACPI] Enable ACPICA workarounds for 'RELAXED_AML' and 'implicit return' # These workarounds are disabled if "acpi=strict" # # include/acpi/acglobal.h # 2004/08/21 23:12:39-04:00 len.brown@intel.com +1 -1 # acpi_gbl_enable_interpreter_slack typo fix # # drivers/acpi/executer/exfldio.c # 2004/08/21 23:12:39-04:00 len.brown@intel.com +2 -35 # acpi_gbl_enable_interpreter_slack typo fix # delete the previous RELAXED_AML workaround it replaces # # drivers/acpi/dispatcher/dsutils.c # 2004/08/21 23:12:39-04:00 len.brown@intel.com +1 -1 # acpi_gbl_enable_interpreter_slack typo fix # # drivers/acpi/bus.c # 2004/08/21 23:12:39-04:00 len.brown@intel.com +4 -0 # if (!acpi_strict) enable_acpi_gbl_interpreter_slack = TRUE # # ChangeSet # 2004/08/20 18:18:05-04:00 len.brown@intel.com # [ACPI] ACPICA 20040816 update from Bob Moore # # Designed and implemented support within the AML interpreter # for the so-called implicit return. This support returns # the result of the last ASL operation within a control # method, in the absence of an explicit Return() operator. # A few machines depend on this behavior, even though it # is not explicitly supported by the ASL language. It is # optional support that can be enabled at runtime via the # acpi_gbl_enable_interpreter_slack flag. # # Removed support for the PCI_Config address space from the # internal low level hardware interfaces (acpi_hw_low_level_read # and acpi_hw_low_level_write). This support was not used # internally, and would not work correctly anyway because # the PCI bus number and segment number were not supported. # There are separate interfaces for PCI configuration space # access because of the unique interface. # acpica-unix-20040816.patch # # AE_CODE_AML_MAX fix from Bjorn Helgaas # # include/acpi/acmacros.h # 2004/08/20 14:05:51-04:00 len.brown@intel.com +0 -18 # ACPICA 20040816 # # include/acpi/acexcep.h # 2004/08/20 14:05:51-04:00 len.brown@intel.com +1 -1 # ACPICA 20040816 # # include/acpi/acconfig.h # 2004/08/20 14:05:51-04:00 len.brown@intel.com +1 -1 # ACPICA 20040816 # # drivers/acpi/hardware/hwtimer.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +12 -16 # ACPICA 20040816 # # drivers/acpi/hardware/hwregs.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +22 -48 # ACPICA 20040816 # # drivers/acpi/hardware/hwgpe.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +1 -1 # ACPICA 20040816 # # drivers/acpi/events/evxface.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +5 -6 # ACPICA 20040816 # # drivers/acpi/events/evrgnini.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +6 -6 # ACPICA 20040816 # # drivers/acpi/events/evregion.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +8 -9 # ACPICA 20040816 # # drivers/acpi/events/evmisc.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +23 -9 # ACPICA 20040816 # # drivers/acpi/events/evgpe.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +5 -1 # ACPICA 20040816 # # drivers/acpi/dispatcher/dsutils.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +37 -16 # ACPICA 20040816 # # drivers/acpi/dispatcher/dsmethod.c # 2004/08/20 14:05:55-04:00 len.brown@intel.com +31 -21 # ACPICA 20040816 # # ChangeSet # 2004/08/19 02:43:31-04:00 len.brown@intel.com # [ACPI] fix __initdata bug in acpi_irq_penalty[] # # Signed-off-by: Bjorn Helgaas # # drivers/acpi/pci_link.c # 2004/08/18 19:26:48-04:00 len.brown@intel.com +2 -2 # fix __initdata bug in acpi_irq_penalty[] # diff -Nru a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt 2004-09-12 21:51:23 -07:00 +++ b/Documentation/kernel-parameters.txt 2004-09-12 21:51:23 -07:00 @@ -138,6 +138,20 @@ Recognize and ignore IRQ0/pin2 Interrupt Override. For broken nForce2 BIOS resulting in XT-PIC timer. + acpi_dbg_layer= [HW,ACPI] + Format: + Each bit of the indicates an acpi debug layer, + 1: enable, 0: disable. It is useful for boot time + debugging. After system has booted up, it can be set + via /proc/acpi/debug_layer. + + acpi_dbg_level= [HW,ACPI] + Format: + Each bit of the indicates an acpi debug level, + 1: enable, 0: disable. It is useful for boot time + debugging. After system has booted up, it can be set + via /proc/acpi/debug_level. + ad1816= [HW,OSS] Format: ,,, See also Documentation/sound/oss/AD1816. diff -Nru a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c --- a/arch/i386/kernel/acpi/boot.c 2004-09-12 21:51:23 -07:00 +++ b/arch/i386/kernel/acpi/boot.c 2004-09-12 21:51:23 -07:00 @@ -71,6 +71,7 @@ int acpi_lapic; int acpi_ioapic; int acpi_strict; +EXPORT_SYMBOL(acpi_strict); acpi_interrupt_flags acpi_sci_flags __initdata; int acpi_sci_override_gsi __initdata; @@ -829,9 +830,15 @@ */ error = acpi_blacklisted(); if (error) { - printk(KERN_WARNING PREFIX "BIOS listed in blacklist, disabling ACPI support\n"); - disable_acpi(); - return error; + extern int acpi_force; + + if (acpi_force) { + printk(KERN_WARNING PREFIX "acpi=force override\n"); + } else { + printk(KERN_WARNING PREFIX "Disabling ACPI support\n"); + disable_acpi(); + return error; + } } /* diff -Nru a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c --- a/arch/i386/kernel/dmi_scan.c 2004-09-12 21:51:23 -07:00 +++ b/arch/i386/kernel/dmi_scan.c 2004-09-12 21:51:23 -07:00 @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include @@ -443,41 +443,6 @@ { NULL, } }; - - -/* - * Walk the blacklist table running matching functions until someone - * returns 1 or we hit the end. - */ - - -static __init void dmi_check_blacklist(void) -{ -#ifdef CONFIG_ACPI_BOOT -#define ACPI_BLACKLIST_CUTOFF_YEAR 2001 - - if (dmi_ident[DMI_BIOS_DATE]) { - char *s = strrchr(dmi_ident[DMI_BIOS_DATE], '/'); - if (s) { - int year, disable = 0; - s++; - year = simple_strtoul(s,NULL,0); - if (year >= 1000) - disable = year < ACPI_BLACKLIST_CUTOFF_YEAR; - else if (year < 1 || (year > 90 && year <= 99)) - disable = 1; - if (disable && !acpi_force) { - printk(KERN_NOTICE "ACPI disabled because your bios is from %s and too old\n", s); - printk(KERN_NOTICE "You can enable it with acpi=force\n"); - disable_acpi(); - } - } - } -#endif - dmi_check_system(dmi_blacklist); -} - - /* * Process a DMI table entry. Right now all we care about are the BIOS @@ -535,7 +500,7 @@ { int err = dmi_iterate(dmi_decode); if(err == 0) - dmi_check_blacklist(); + dmi_check_system(dmi_blacklist); else printk(KERN_INFO "DMI not present.\n"); } diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c 2004-09-12 21:51:23 -07:00 +++ b/arch/i386/kernel/io_apic.c 2004-09-12 21:51:23 -07:00 @@ -2520,15 +2520,7 @@ mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, edge_level, active_high_low); - if (use_pci_vector() && !platform_legacy_irq(irq)) - irq = IO_APIC_VECTOR(irq); - if (edge_level) { - irq_desc[irq].handler = &ioapic_level_type; - } else { - irq_desc[irq].handler = &ioapic_edge_type; - } - - set_intr_gate(entry.vector, interrupt[irq]); + ioapic_register_intr(irq, entry.vector, edge_level); if (!ioapic && (irq < 16)) disable_8259A_irq(irq); diff -Nru a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig --- a/arch/x86_64/Kconfig 2004-09-12 21:51:23 -07:00 +++ b/arch/x86_64/Kconfig 2004-09-12 21:51:23 -07:00 @@ -165,7 +165,7 @@ bool depends on SMP && !MK8 default y - + config MATH_EMULATION bool diff -Nru a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c --- a/arch/x86_64/kernel/io_apic.c 2004-09-12 21:51:23 -07:00 +++ b/arch/x86_64/kernel/io_apic.c 2004-09-12 21:51:23 -07:00 @@ -1926,15 +1926,7 @@ mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, edge_level, active_high_low); - if (use_pci_vector() && !platform_legacy_irq(irq)) - irq = IO_APIC_VECTOR(irq); - if (edge_level) { - irq_desc[irq].handler = &ioapic_level_type; - } else { - irq_desc[irq].handler = &ioapic_edge_type; - } - - set_intr_gate(entry.vector, interrupt[irq]); + ioapic_register_intr(irq, entry.vector, edge_level); if (!ioapic && (irq < 16)) disable_8259A_irq(irq); diff -Nru a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig --- a/drivers/acpi/Kconfig 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/Kconfig 2004-09-12 21:51:23 -07:00 @@ -204,6 +204,33 @@ If you have a legacy free Toshiba laptop (such as the Libretto L1 series), say Y. +config ACPI_CUSTOM_DSDT + bool "Include Custom DSDT" + depends on X86 + depends on ACPI_INTERPRETER + default n + help + Thist option is to load a custom ACPI DSDT + If you don't know what that is, say N. + +config ACPI_CUSTOM_DSDT_FILE + string "Custom DSDT Table file to include" + depends on ACPI_CUSTOM_DSDT + default "" + help + Enter the full path name to the file wich includes the AmlCode declaration. + +config ACPI_BLACKLIST_YEAR + int "Disable ACPI for systems before Jan 1st this year" + default 0 + help + enter a 4-digit year, eg. 2001 to disable ACPI by default + on platforms with DMI BIOS date before January 1st that year. + "acpi=force" can be used to override this mechanism. + + Enter 0 to disable this mechanism and allow ACPI to + run by default no matter what the year. (default) + config ACPI_DEBUG bool "Debug Statements" depends on ACPI_INTERPRETER diff -Nru a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c --- a/drivers/acpi/blacklist.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/blacklist.c 2004-09-12 21:51:23 -07:00 @@ -2,7 +2,9 @@ * blacklist.c * * Check to see if the given machine has a known bad ACPI BIOS + * or if the BIOS is too old. * + * Copyright (C) 2004 Len Brown * Copyright (C) 2002 Andy Grover * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -30,6 +32,7 @@ #include #include #include +#include enum acpi_blacklist_predicates { @@ -70,6 +73,45 @@ }; +#if CONFIG_ACPI_BLACKLIST_YEAR + +static int __init +blacklist_by_year(void) +{ + int year; + char *s = dmi_get_system_info(DMI_BIOS_DATE); + + if (!s) + return 0; + if (!*s) + return 0; + + s = strrchr(s, '/'); + if (!s) + return 0; + + s += 1; + + year = simple_strtoul(s,NULL,0); + + if (year < 100) { /* 2-digit year */ + year += 1900; + if (year < 1996) /* no dates < spec 1.0 */ + year += 100; + } + + if (year < CONFIG_ACPI_BLACKLIST_YEAR) { + printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), " + "acpi=force is required to enable ACPI\n", + year, CONFIG_ACPI_BLACKLIST_YEAR); + return 1; + } + return 0; +} +#else +static inline int blacklist_by_year(void) { return 0; } +#endif + int __init acpi_blacklisted(void) { @@ -119,6 +161,8 @@ i++; } } + + blacklisted += blacklist_by_year(); return blacklisted; } diff -Nru a/drivers/acpi/bus.c b/drivers/acpi/bus.c --- a/drivers/acpi/bus.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/bus.c 2004-09-12 21:51:23 -07:00 @@ -596,7 +596,14 @@ acpi_status status = AE_OK; struct acpi_buffer buffer = {sizeof(acpi_fadt), &acpi_fadt}; - ACPI_FUNCTION_TRACE("acpi_bus_init"); + ACPI_FUNCTION_TRACE("acpi_early_init"); + + if (acpi_disabled) + return; + + /* enable workarounds, unless strict ACPI spec. compliance */ + if (!acpi_strict) + acpi_gbl_enable_interpreter_slack = TRUE; status = acpi_initialize_subsystem(); if (ACPI_FAILURE(status)) { @@ -733,9 +740,6 @@ printk(KERN_INFO PREFIX "Subsystem revision %08x\n", ACPI_CA_VERSION); - - /* Initial core debug level excludes drivers, so include them now */ - acpi_set_debug(ACPI_DEBUG_LOW); if (acpi_disabled) { printk(KERN_INFO PREFIX "Interpreter disabled.\n"); diff -Nru a/drivers/acpi/debug.c b/drivers/acpi/debug.c --- a/drivers/acpi/debug.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/debug.c 2004-09-12 21:51:23 -07:00 @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -13,6 +14,81 @@ #define ACPI_SYSTEM_FILE_DEBUG_LAYER "debug_layer" #define ACPI_SYSTEM_FILE_DEBUG_LEVEL "debug_level" +#ifdef MODULE_PARAM_PREFIX +#undef MODULE_PARAM_PREFIX +#endif + +#define MODULE_PARAM_PREFIX +module_param(acpi_dbg_layer, uint, 0400); +module_param(acpi_dbg_level, uint, 0400); + +struct acpi_dlayer { + const char *name; + unsigned long value; +}; +struct acpi_dlevel { + const char *name; + unsigned long value; +}; +#define ACPI_DEBUG_INIT(v) { .name = #v, .value = v } + +const struct acpi_dlayer acpi_debug_layers[] = +{ + ACPI_DEBUG_INIT(ACPI_UTILITIES), + ACPI_DEBUG_INIT(ACPI_HARDWARE), + ACPI_DEBUG_INIT(ACPI_EVENTS), + ACPI_DEBUG_INIT(ACPI_TABLES), + ACPI_DEBUG_INIT(ACPI_NAMESPACE), + ACPI_DEBUG_INIT(ACPI_PARSER), + ACPI_DEBUG_INIT(ACPI_DISPATCHER), + ACPI_DEBUG_INIT(ACPI_EXECUTER), + ACPI_DEBUG_INIT(ACPI_RESOURCES), + ACPI_DEBUG_INIT(ACPI_CA_DEBUGGER), + ACPI_DEBUG_INIT(ACPI_OS_SERVICES), + ACPI_DEBUG_INIT(ACPI_CA_DISASSEMBLER), + ACPI_DEBUG_INIT(ACPI_COMPILER), + ACPI_DEBUG_INIT(ACPI_TOOLS), +}; + +const struct acpi_dlevel acpi_debug_levels[] = +{ + ACPI_DEBUG_INIT(ACPI_LV_ERROR), + ACPI_DEBUG_INIT(ACPI_LV_WARN), + ACPI_DEBUG_INIT(ACPI_LV_INIT), + ACPI_DEBUG_INIT(ACPI_LV_DEBUG_OBJECT), + ACPI_DEBUG_INIT(ACPI_LV_INFO), + + ACPI_DEBUG_INIT(ACPI_LV_INIT_NAMES), + ACPI_DEBUG_INIT(ACPI_LV_PARSE), + ACPI_DEBUG_INIT(ACPI_LV_LOAD), + ACPI_DEBUG_INIT(ACPI_LV_DISPATCH), + ACPI_DEBUG_INIT(ACPI_LV_EXEC), + ACPI_DEBUG_INIT(ACPI_LV_NAMES), + ACPI_DEBUG_INIT(ACPI_LV_OPREGION), + ACPI_DEBUG_INIT(ACPI_LV_BFIELD), + ACPI_DEBUG_INIT(ACPI_LV_TABLES), + ACPI_DEBUG_INIT(ACPI_LV_VALUES), + ACPI_DEBUG_INIT(ACPI_LV_OBJECTS), + ACPI_DEBUG_INIT(ACPI_LV_RESOURCES), + ACPI_DEBUG_INIT(ACPI_LV_USER_REQUESTS), + ACPI_DEBUG_INIT(ACPI_LV_PACKAGE), + + ACPI_DEBUG_INIT(ACPI_LV_ALLOCATIONS), + ACPI_DEBUG_INIT(ACPI_LV_FUNCTIONS), + ACPI_DEBUG_INIT(ACPI_LV_OPTIMIZATIONS), + + ACPI_DEBUG_INIT(ACPI_LV_MUTEX), + ACPI_DEBUG_INIT(ACPI_LV_THREADS), + ACPI_DEBUG_INIT(ACPI_LV_IO), + ACPI_DEBUG_INIT(ACPI_LV_INTERRUPTS), + + ACPI_DEBUG_INIT(ACPI_LV_AML_DISASSEMBLE), + ACPI_DEBUG_INIT(ACPI_LV_VERBOSE_INFO), + ACPI_DEBUG_INIT(ACPI_LV_FULL_TABLES), + ACPI_DEBUG_INIT(ACPI_LV_EVENTS), +}; +#define NUM_OF(v) ( sizeof(v)/sizeof(v[0]) ) + static int acpi_system_read_debug ( char *page, @@ -24,16 +100,41 @@ { char *p = page; int size = 0; + int i; if (off != 0) goto end; + p += sprintf(p, "%-25s\tHex SET\n", "Description"); + switch ((unsigned long) data) { case 0: - p += sprintf(p, "0x%08x\n", acpi_dbg_layer); + for (i = 0; i < NUM_OF(acpi_debug_layers); i++) { + p += sprintf(p, "%-25s\t0x%08lX [%c]\n", + acpi_debug_layers[i].name, + acpi_debug_layers[i].value, + (acpi_dbg_layer & acpi_debug_layers[i].value) ? + '*' : ' '); + } + p += sprintf(p, "%-25s\t0x%08X [%c]\n", "ACPI_ALL_DRIVERS", + ACPI_ALL_DRIVERS, + (acpi_dbg_layer & ACPI_ALL_DRIVERS) == ACPI_ALL_DRIVERS? + '*' : (acpi_dbg_layer & ACPI_ALL_DRIVERS) == 0 ? + ' ' : '-'); + p += sprintf(p, + "--\ndebug_layer = 0x%08X (* = enabled, - = partial)\n", + acpi_dbg_layer); break; case 1: - p += sprintf(p, "0x%08x\n", acpi_dbg_level); + for (i = 0; i < NUM_OF(acpi_debug_levels); i++) { + p += sprintf(p, "%-25s\t0x%08lX [%c]\n", + acpi_debug_levels[i].name, + acpi_debug_levels[i].value, + (acpi_dbg_level & acpi_debug_levels[i].value) ? + '*' : ' '); + } + p += sprintf(p, "--\ndebug_level = 0x%08X (* = enabled)\n", + acpi_dbg_level); break; default: p += sprintf(p, "Invalid debug option\n"); diff -Nru a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c --- a/drivers/acpi/dispatcher/dsmethod.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/dispatcher/dsmethod.c 2004-09-12 21:51:23 -07:00 @@ -58,15 +58,12 @@ * * FUNCTION: acpi_ds_parse_method * - * PARAMETERS: obj_handle - Node of the method - * Level - Current nesting level - * Context - Points to a method counter - * return_value - Not used + * PARAMETERS: obj_handle - Method node * * RETURN: Status * - * DESCRIPTION: Call the parser and parse the AML that is - * associated with the method. + * DESCRIPTION: Call the parser and parse the AML that is associated with the + * method. * * MUTEX: Assumes parser is locked * @@ -191,8 +188,6 @@ * increments the thread count, and waits at the method semaphore * for clearance to execute. * - * MUTEX: Locks/unlocks parser. - * ******************************************************************************/ acpi_status @@ -251,7 +246,8 @@ * * FUNCTION: acpi_ds_call_control_method * - * PARAMETERS: walk_state - Current state of the walk + * PARAMETERS: Thread - Info for this thread + * this_walk_state - Current walk state * Op - Current Op to be walked * * RETURN: Status @@ -401,12 +397,13 @@ * * FUNCTION: acpi_ds_restart_control_method * - * PARAMETERS: walk_state - State of the method when it was preempted - * Op - Pointer to new current op + * PARAMETERS: walk_state - State for preempted method (caller) + * return_desc - Return value from the called method * * RETURN: Status * - * DESCRIPTION: Restart a method that was preempted + * DESCRIPTION: Restart a method that was preempted by another (nested) method + * invocation. Handle the return value (if any) from the callee. * ******************************************************************************/ @@ -421,17 +418,35 @@ ACPI_FUNCTION_TRACE_PTR ("ds_restart_control_method", walk_state); + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + "****Restart [%4.4s] Op %p return_value_from_callee %p\n", + (char *) &walk_state->method_node->name, walk_state->method_call_op, + return_desc)); + + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + " return_from_this_method_used?=%X res_stack %p Walk %p\n", + walk_state->return_used, + walk_state->results, walk_state)); + + /* Did the called method return a value? */ + if (return_desc) { + /* Are we actually going to use the return value? */ + if (walk_state->return_used) { - /* - * Get the return value (if any) from the previous method. - * NULL if no return value - */ + /* Save the return value from the previous method */ + status = acpi_ds_result_push (return_desc, walk_state); if (ACPI_FAILURE (status)) { acpi_ut_remove_reference (return_desc); return_ACPI_STATUS (status); } + + /* + * Save as THIS method's return value in case it is returned + * immediately to yet another method + */ + walk_state->return_desc = return_desc; } else { /* @@ -441,11 +456,6 @@ acpi_ut_remove_reference (return_desc); } } - - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "Method=%p Return=%p return_used?=%X res_stack=%p State=%p\n", - walk_state->method_call_op, return_desc, walk_state->return_used, - walk_state->results, walk_state)); return_ACPI_STATUS (AE_OK); } diff -Nru a/drivers/acpi/dispatcher/dsutils.c b/drivers/acpi/dispatcher/dsutils.c --- a/drivers/acpi/dispatcher/dsutils.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/dispatcher/dsutils.c 2004-09-12 21:51:23 -07:00 @@ -60,11 +60,10 @@ * * FUNCTION: acpi_ds_is_result_used * - * PARAMETERS: Op - * result_obj - * walk_state + * PARAMETERS: Op - Current Op + * walk_state - Current State * - * RETURN: Status + * RETURN: TRUE if result is used, FALSE otherwise * * DESCRIPTION: Check if a result object will be used by the parent * @@ -89,18 +88,39 @@ } /* - * If there is no parent, the result can't possibly be used! - * (An executing method typically has no parent, since each - * method is parsed separately) However, a method that is - * invoked from another method has a parent. + * If there is no parent, we are executing at the method level. + * An executing method typically has no parent, since each method + * is parsed separately. */ if (!op->common.parent) { + /* + * If this is the last statement in the method, we know it is not a + * Return() operator (would not come here.) The following code is the + * optional support for a so-called "implicit return". Some AML code + * assumes that the last value of the method is "implicitly" returned + * to the caller. Just save the last result as the return value. + * NOTE: this is optional because the ASL language does not actually + * support this behavior. + */ + if ((acpi_gbl_enable_interpreter_slack) && + (walk_state->parser_state.aml >= walk_state->parser_state.aml_end)) { + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + "Result of [%s] will be implicitly returned\n", + acpi_ps_get_opcode_name (op->common.aml_opcode))); + + /* Use the top of the result stack as the implicit return value */ + + walk_state->return_desc = walk_state->results->results.obj_desc[0]; + return_VALUE (TRUE); + } + + /* No parent, the return value cannot possibly be used */ + return_VALUE (FALSE); } - /* - * Get info on the parent. The root Op is AML_SCOPE - */ + /* Get info on the parent. The root_op is AML_SCOPE */ + parent_info = acpi_ps_get_opcode_info (op->common.parent->common.aml_opcode); if (parent_info->class == AML_CLASS_UNKNOWN) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unknown parent opcode. Op=%p\n", op)); @@ -204,9 +224,9 @@ * * FUNCTION: acpi_ds_delete_result_if_not_used * - * PARAMETERS: Op - * result_obj - * walk_state + * PARAMETERS: Op - Current parse Op + * result_obj - Result of the operation + * walk_state - Current state * * RETURN: Status * @@ -338,8 +358,9 @@ * * FUNCTION: acpi_ds_create_operand * - * PARAMETERS: walk_state - * Arg + * PARAMETERS: walk_state - Current walk state + * Arg - Parse object for the argument + * arg_index - Which argument (zero based) * * RETURN: Status * diff -Nru a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c --- a/drivers/acpi/events/evgpe.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/events/evgpe.c 2004-09-12 21:51:23 -07:00 @@ -102,6 +102,8 @@ * FUNCTION: acpi_ev_update_gpe_enable_masks * * PARAMETERS: gpe_event_info - GPE to update + * Type - What to do: ACPI_GPE_DISABLE or + * ACPI_GPE_ENABLE * * RETURN: Status * @@ -166,6 +168,8 @@ * FUNCTION: acpi_ev_enable_gpe * * PARAMETERS: gpe_event_info - GPE to enable + * write_to_hardware - Enable now, or just mark data structs + * (WAKE GPEs should be deferred) * * RETURN: Status * @@ -707,7 +711,7 @@ #ifdef ACPI_GPE_NOTIFY_CHECK /******************************************************************************* - * NOT USED, PROTOTYPE ONLY AND WILL PROBABLY BE REMOVED + * TBD: NOT USED, PROTOTYPE ONLY AND WILL PROBABLY BE REMOVED * * FUNCTION: acpi_ev_check_for_wake_only_gpe * diff -Nru a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c --- a/drivers/acpi/events/evmisc.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/events/evmisc.c 2004-09-12 21:51:23 -07:00 @@ -88,9 +88,10 @@ * * FUNCTION: acpi_ev_queue_notify_request * - * PARAMETERS: + * PARAMETERS: Node - NS node for the notified object + * notify_value - Value from the Notify() request * - * RETURN: None. + * RETURN: Status * * DESCRIPTION: Dispatch a device notification event to a previously * installed handler. @@ -143,9 +144,8 @@ notify_value)); } - /* - * Get the notify object attached to the NS Node - */ + /* Get the notify object attached to the NS Node */ + obj_desc = acpi_ns_get_attached_object (node); if (obj_desc) { /* We have the notify object, Get the right handler */ @@ -193,8 +193,10 @@ } if (!handler_obj) { - /* There is no per-device notify handler for this device */ - + /* + * There is no per-device notify handler for this device. + * This may or may not be a problem. + */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "No notify handler for Notify(%4.4s, %X) node %p\n", acpi_ut_get_node_name (node), notify_value, node)); @@ -208,7 +210,7 @@ * * FUNCTION: acpi_ev_notify_dispatch * - * PARAMETERS: + * PARAMETERS: Context - To be passsed to the notify handler * * RETURN: None. * @@ -275,6 +277,8 @@ * * FUNCTION: acpi_ev_global_lock_thread * + * PARAMETERS: Context - From thread interface, not used + * * RETURN: None * * DESCRIPTION: Invoked by SCI interrupt handler upon acquisition of the @@ -308,7 +312,9 @@ * * FUNCTION: acpi_ev_global_lock_handler * - * RETURN: Status + * PARAMETERS: Context - From thread interface, not used + * + * RETURN: ACPI_INTERRUPT_HANDLED or ACPI_INTERRUPT_NOT_HANDLED * * DESCRIPTION: Invoked directly from the SCI handler when a global lock * release interrupt occurs. Grab the global lock and queue @@ -355,6 +361,8 @@ * * FUNCTION: acpi_ev_init_global_lock_handler * + * PARAMETERS: None + * * RETURN: Status * * DESCRIPTION: Install a handler for the global lock release event @@ -394,6 +402,8 @@ * * FUNCTION: acpi_ev_acquire_global_lock * + * PARAMETERS: Timeout - Max time to wait for the lock, in millisec. + * * RETURN: Status * * DESCRIPTION: Attempt to gain ownership of the Global Lock. @@ -460,6 +470,10 @@ /******************************************************************************* * * FUNCTION: acpi_ev_release_global_lock + * + * PARAMETERS: None + * + * RETURN: Status * * DESCRIPTION: Releases ownership of the Global Lock. * diff -Nru a/drivers/acpi/events/evregion.c b/drivers/acpi/events/evregion.c --- a/drivers/acpi/events/evregion.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/events/evregion.c 2004-09-12 21:51:23 -07:00 @@ -180,7 +180,7 @@ * FUNCTION: acpi_ev_execute_reg_method * * PARAMETERS: region_obj - Object structure - * Function - On (1) or Off (0) + * Function - Passed to _REG: On (1) or Off (0) * * RETURN: Status * @@ -232,7 +232,7 @@ goto cleanup; } - /* Set up the parameter objects */ + /* Setup the parameter objects */ params[0]->integer.value = region_obj->region.space_id; params[1]->integer.value = function; @@ -262,7 +262,6 @@ * FUNCTION: acpi_ev_address_space_dispatch * * PARAMETERS: region_obj - Internal region object - * space_id - ID of the address space (0-255) * Function - Read or Write operation * Address - Where in the space to read or write * bit_width - Field width in bits (8, 16, 32, or 64) @@ -425,8 +424,8 @@ * * FUNCTION: acpi_ev_detach_region * - * PARAMETERS: region_obj - Region Object - * acpi_ns_is_locked - Namespace Region Already Locked? + * PARAMETERS: region_obj - Region Object + * acpi_ns_is_locked - Namespace Region Already Locked? * * RETURN: None * @@ -560,9 +559,9 @@ * * FUNCTION: acpi_ev_attach_region * - * PARAMETERS: handler_obj - Handler Object - * region_obj - Region Object - * acpi_ns_is_locked - Namespace Region Already Locked? + * PARAMETERS: handler_obj - Handler Object + * region_obj - Region Object + * acpi_ns_is_locked - Namespace Region Already Locked? * * RETURN: None * @@ -971,7 +970,7 @@ * * RETURN: Status * - * DESCRIPTION: Run _REG methods for the Space ID; + * DESCRIPTION: Run all _REG methods for the input Space ID; * Note: assumes namespace is locked, or system init time. * ******************************************************************************/ diff -Nru a/drivers/acpi/events/evrgnini.c b/drivers/acpi/events/evrgnini.c --- a/drivers/acpi/events/evrgnini.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/events/evrgnini.c 2004-09-12 21:51:23 -07:00 @@ -54,7 +54,7 @@ * * FUNCTION: acpi_ev_system_memory_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context @@ -108,7 +108,7 @@ * * FUNCTION: acpi_ev_io_space_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context @@ -144,7 +144,7 @@ * * FUNCTION: acpi_ev_pci_config_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context @@ -317,7 +317,7 @@ * * FUNCTION: acpi_ev_pci_bar_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context @@ -348,7 +348,7 @@ * * FUNCTION: acpi_ev_cmos_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context @@ -379,7 +379,7 @@ * * FUNCTION: acpi_ev_default_region_setup * - * PARAMETERS: region_obj - Region we are interested in + * PARAMETERS: Handle - Region we are interested in * Function - Start or stop * handler_context - Address space handler context * region_context - Region specific context diff -Nru a/drivers/acpi/events/evxface.c b/drivers/acpi/events/evxface.c --- a/drivers/acpi/events/evxface.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/events/evxface.c 2004-09-12 21:51:23 -07:00 @@ -359,6 +359,7 @@ * ACPI_DEVICE_NOTIFY: driver_handler (80-ff) * ACPI_ALL_NOTIFY: both system and device * Handler - Address of the handler + * * RETURN: Status * * DESCRIPTION: Remove a handler for notifies on an ACPI device @@ -401,9 +402,8 @@ goto unlock_and_exit; } - /* - * Root Object - */ + /* Root Object */ + if (device == ACPI_ROOT_OBJECT) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Removing notify handler for ROOT object.\n")); @@ -437,9 +437,8 @@ } } - /* - * All Other Objects - */ + /* All Other Objects */ + else { /* Notifies allowed on this object? */ diff -Nru a/drivers/acpi/executer/exfldio.c b/drivers/acpi/executer/exfldio.c --- a/drivers/acpi/executer/exfldio.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/executer/exfldio.c 2004-09-12 21:51:23 -07:00 @@ -130,7 +130,7 @@ if (rgn_desc->region.length < (obj_desc->common_field.base_byte_offset + field_datum_byte_offset + obj_desc->common_field.access_byte_width)) { - if (acpi_gbl_enable_interpeter_slack) { + if (acpi_gbl_enable_interpreter_slack) { /* * Slack mode only: We will go ahead and allow access to this * field if it is within the region length rounded up to the next @@ -169,40 +169,7 @@ field_datum_byte_offset, obj_desc->common_field.access_byte_width, acpi_ut_get_node_name (rgn_desc->region.node), rgn_desc->region.length)); - if (!acpi_strict) { - /* - * Allow access to the field if it is within the region size - * rounded up to a multiple of the access byte width. This - * overcomes "off-by-one" programming errors in the AML often - * found in Toshiba laptops. These errors were allowed by - * the Microsoft ASL compiler. - */ - u32 rounded_length = ACPI_ROUND_UP(rgn_desc->region.length, - obj_desc->common_field.access_byte_width); - - if (rounded_length < (obj_desc->common_field.base_byte_offset - + field_datum_byte_offset - + obj_desc->common_field.access_byte_width)) { - return_ACPI_STATUS (AE_AML_REGION_LIMIT); - } else { - static int warn_once = 1; - if (warn_once) { - // Could also associate a flag with each field, and - // warn once for each field. - ACPI_REPORT_WARNING(( - "The ACPI AML in your computer contains errors, " - "please nag the manufacturer to correct it.\n")); - ACPI_REPORT_WARNING(( - "Allowing relaxed access to fields; " - "turn on CONFIG_ACPI_DEBUG for details.\n")); - warn_once = 0; - } - return_ACPI_STATUS (AE_OK); - } - } - else { - return_ACPI_STATUS (AE_AML_REGION_LIMIT); - } + return_ACPI_STATUS (AE_AML_REGION_LIMIT); } return_ACPI_STATUS (AE_OK); diff -Nru a/drivers/acpi/hardware/hwgpe.c b/drivers/acpi/hardware/hwgpe.c --- a/drivers/acpi/hardware/hwgpe.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/hardware/hwgpe.c 2004-09-12 21:51:23 -07:00 @@ -96,7 +96,7 @@ * * PARAMETERS: gpe_event_info - Info block for the GPE to be cleared * - * RETURN: status_status + * RETURN: Status * * DESCRIPTION: Clear the status bit for a single GPE. * diff -Nru a/drivers/acpi/hardware/hwregs.c b/drivers/acpi/hardware/hwregs.c --- a/drivers/acpi/hardware/hwregs.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/hardware/hwregs.c 2004-09-12 21:51:23 -07:00 @@ -249,8 +249,8 @@ * return_value - Value that was read from the register * Flags - Lock the hardware or not * - * RETURN: Value is read from specified Register. Value returned is - * normalized to bit0 (is shifted all the way right) + * RETURN: Status and the value read from specified Register. Value + * returned is normalized to bit0 (is shifted all the way right) * * DESCRIPTION: ACPI bit_register read function. * @@ -284,6 +284,8 @@ } } + /* Read from the register */ + status = acpi_hw_register_read (ACPI_MTX_DO_NOT_LOCK, bit_reg_info->parent_register, ®ister_value); @@ -313,10 +315,10 @@ * * PARAMETERS: register_id - ID of ACPI bit_register to access * Value - (only used on write) value to write to the - * Register, NOT pre-normalized to the bit pos. + * Register, NOT pre-normalized to the bit pos * Flags - Lock the hardware or not * - * RETURN: None + * RETURN: Status * * DESCRIPTION: ACPI Bit Register write function. * @@ -461,10 +463,11 @@ * * FUNCTION: acpi_hw_register_read * - * PARAMETERS: use_lock - Mutex hw access. - * register_id - register_iD + Offset. + * PARAMETERS: use_lock - Mutex hw access + * register_id - register_iD + Offset + * return_value - Value that was read from the register * - * RETURN: Value read or written. + * RETURN: Status and the value read. * * DESCRIPTION: Acpi register read function. Registers are read at the * given offset. @@ -572,10 +575,11 @@ * * FUNCTION: acpi_hw_register_write * - * PARAMETERS: use_lock - Mutex hw access. - * register_id - register_iD + Offset. + * PARAMETERS: use_lock - Mutex hw access + * register_id - register_iD + Offset + * Value - The value to write * - * RETURN: Value read or written. + * RETURN: Status * * DESCRIPTION: Acpi register Write function. Registers are written at the * given offset. @@ -691,11 +695,11 @@ * * PARAMETERS: Width - 8, 16, or 32 * Value - Where the value is returned - * Register - GAS register structure + * Reg - GAS register structure * * RETURN: Status * - * DESCRIPTION: Read from either memory, IO, or PCI config space. + * DESCRIPTION: Read from either memory or IO space. * ******************************************************************************/ @@ -705,8 +709,6 @@ u32 *value, struct acpi_generic_address *reg) { - struct acpi_pci_id pci_id; - u16 pci_register; acpi_status status; @@ -725,8 +727,8 @@ *value = 0; /* - * Three address spaces supported: - * Memory, IO, or PCI_Config. + * Two address spaces supported: Memory or IO. + * PCI_Config is not supported here because the GAS struct is insufficient */ switch (reg->address_space_id) { case ACPI_ADR_SPACE_SYSTEM_MEMORY: @@ -744,19 +746,6 @@ break; - case ACPI_ADR_SPACE_PCI_CONFIG: - - pci_id.segment = 0; - pci_id.bus = 0; - pci_id.device = ACPI_PCI_DEVICE (reg->address); - pci_id.function = ACPI_PCI_FUNCTION (reg->address); - pci_register = (u16) ACPI_PCI_REGISTER (reg->address); - - status = acpi_os_read_pci_configuration (&pci_id, pci_register, - value, width); - break; - - default: ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported address space: %X\n", reg->address_space_id)); @@ -778,11 +767,11 @@ * * PARAMETERS: Width - 8, 16, or 32 * Value - To be written - * Register - GAS register structure + * Reg - GAS register structure * * RETURN: Status * - * DESCRIPTION: Write to either memory, IO, or PCI config space. + * DESCRIPTION: Write to either memory or IO space. * ******************************************************************************/ @@ -792,8 +781,6 @@ u32 value, struct acpi_generic_address *reg) { - struct acpi_pci_id pci_id; - u16 pci_register; acpi_status status; @@ -811,8 +798,8 @@ } /* - * Three address spaces supported: - * Memory, IO, or PCI_Config. + * Two address spaces supported: Memory or IO. + * PCI_Config is not supported here because the GAS struct is insufficient */ switch (reg->address_space_id) { case ACPI_ADR_SPACE_SYSTEM_MEMORY: @@ -827,19 +814,6 @@ status = acpi_os_write_port ((acpi_io_address) reg->address, value, width); - break; - - - case ACPI_ADR_SPACE_PCI_CONFIG: - - pci_id.segment = 0; - pci_id.bus = 0; - pci_id.device = ACPI_PCI_DEVICE (reg->address); - pci_id.function = ACPI_PCI_FUNCTION (reg->address); - pci_register = (u16) ACPI_PCI_REGISTER (reg->address); - - status = acpi_os_write_pci_configuration (&pci_id, pci_register, - (acpi_integer) value, width); break; diff -Nru a/drivers/acpi/hardware/hwtimer.c b/drivers/acpi/hardware/hwtimer.c --- a/drivers/acpi/hardware/hwtimer.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/hardware/hwtimer.c 2004-09-12 21:51:23 -07:00 @@ -52,11 +52,11 @@ * * FUNCTION: acpi_get_timer_resolution * - * PARAMETERS: none + * PARAMETERS: Resolution - Where the resolution is returned * - * RETURN: Number of bits of resolution in the PM Timer (24 or 32). + * RETURN: Status and timer resolution * - * DESCRIPTION: Obtains resolution of the ACPI PM Timer. + * DESCRIPTION: Obtains resolution of the ACPI PM Timer (24 or 32 bits). * ******************************************************************************/ @@ -86,11 +86,11 @@ * * FUNCTION: acpi_get_timer * - * PARAMETERS: none + * PARAMETERS: Ticks - Where the timer value is returned * - * RETURN: Current value of the ACPI PM Timer (in ticks). + * RETURN: Status and current ticks * - * DESCRIPTION: Obtains current value of ACPI PM Timer. + * DESCRIPTION: Obtains current value of ACPI PM Timer (in ticks). * ******************************************************************************/ @@ -118,11 +118,11 @@ * * FUNCTION: acpi_get_timer_duration * - * PARAMETERS: start_ticks - * end_ticks - * time_elapsed + * PARAMETERS: start_ticks - Starting timestamp + * end_ticks - End timestamp + * time_elapsed - Where the elapsed time is returned * - * RETURN: time_elapsed + * RETURN: Status and time_elapsed * * DESCRIPTION: Computes the time elapsed (in microseconds) between two * PM Timer time stamps, taking into account the possibility of @@ -136,7 +136,7 @@ * Note that this function accommodates only a single timer * rollover. Thus for 24-bit timers, this function should only * be used for calculating durations less than ~4.6 seconds - * (~20 minutes for 32-bit timers) -- calculations below + * (~20 minutes for 32-bit timers) -- calculations below: * * 2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec * 2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes @@ -164,7 +164,6 @@ /* * Compute Tick Delta: - * ------------------- * Handle (max one) timer rollovers on 24- versus 32-bit timers. */ if (start_ticks < end_ticks) { @@ -188,10 +187,7 @@ } /* - * Compute Duration: - * ----------------- - * - * Requires a 64-bit divide: + * Compute Duration (Requires a 64-bit divide): * * time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY; */ diff -Nru a/drivers/acpi/numa.c b/drivers/acpi/numa.c --- a/drivers/acpi/numa.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/numa.c 2004-09-12 21:51:23 -07:00 @@ -51,6 +51,7 @@ switch (header->type) { case ACPI_SRAT_PROCESSOR_AFFINITY: +#ifdef ACPI_DEBUG_OUTPUT { struct acpi_table_processor_affinity *p = (struct acpi_table_processor_affinity*) header; @@ -58,9 +59,11 @@ p->apic_id, p->lsapic_eid, p->proximity_domain, p->flags.enabled?"enabled":"disabled")); } +#endif /* ACPI_DEBUG_OUTPUT */ break; case ACPI_SRAT_MEMORY_AFFINITY: +#ifdef ACPI_DEBUG_OUTPUT { struct acpi_table_memory_affinity *p = (struct acpi_table_memory_affinity*) header; @@ -70,6 +73,7 @@ p->flags.enabled ? "enabled" : "disabled", p->flags.hot_pluggable ? " hot-pluggable" : "")); } +#endif /* ACPI_DEBUG_OUTPUT */ break; default: @@ -94,8 +98,6 @@ /* downcast just for %llu vs %lu for i386/ia64 */ localities = (u32) slit->localities; - printk(KERN_INFO PREFIX "SLIT localities %ux%u\n", localities, localities); - acpi_numa_slit_init(slit); return 0; @@ -103,7 +105,9 @@ static int __init -acpi_parse_processor_affinity (acpi_table_entry_header *header) +acpi_parse_processor_affinity ( + acpi_table_entry_header *header, + const unsigned long end) { struct acpi_table_processor_affinity *processor_affinity; @@ -121,7 +125,9 @@ static int __init -acpi_parse_memory_affinity (acpi_table_entry_header *header) +acpi_parse_memory_affinity ( + acpi_table_entry_header *header, + const unsigned long end) { struct acpi_table_memory_affinity *memory_affinity; @@ -147,8 +153,6 @@ return -EINVAL; srat = (struct acpi_table_srat *) __va(phys_addr); - - printk(KERN_INFO PREFIX "SRAT revision %d\n", srat->table_revision); return 0; } diff -Nru a/drivers/acpi/osl.c b/drivers/acpi/osl.c --- a/drivers/acpi/osl.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/osl.c 2004-09-12 21:51:23 -07:00 @@ -55,6 +55,9 @@ void *context; }; +#ifdef CONFIG_ACPI_CUSTOM_DSDT +#include CONFIG_ACPI_CUSTOM_DSDT_FILE +#endif #ifdef ENABLE_DEBUGGER #include @@ -241,7 +244,14 @@ if (!existing_table || !new_table) return AE_BAD_PARAMETER; +#ifdef CONFIG_ACPI_CUSTOM_DSDT + if (strncmp(existing_table->signature, "DSDT", 4) == 0) + *new_table = (struct acpi_table_header*)AmlCode; + else + *new_table = NULL; +#else *new_table = NULL; +#endif return AE_OK; } diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/pci_link.c 2004-09-12 21:51:23 -07:00 @@ -448,7 +448,7 @@ #define PIRQ_PENALTY_ISA_USED (16*16*16*16*16) #define PIRQ_PENALTY_ISA_ALWAYS (16*16*16*16*16*16) -static int __initdata acpi_irq_penalty[ACPI_MAX_IRQS] = { +static int acpi_irq_penalty[ACPI_MAX_IRQS] = { PIRQ_PENALTY_ISA_ALWAYS, /* IRQ0 timer */ PIRQ_PENALTY_ISA_ALWAYS, /* IRQ1 keyboard */ PIRQ_PENALTY_ISA_ALWAYS, /* IRQ2 cascade */ @@ -468,7 +468,7 @@ /* >IRQ15 */ }; -int +int __init acpi_irq_penalty_init(void) { struct list_head *node = NULL; diff -Nru a/drivers/acpi/tables.c b/drivers/acpi/tables.c --- a/drivers/acpi/tables.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/tables.c 2004-09-12 21:51:23 -07:00 @@ -101,7 +101,7 @@ else name = header->signature; - printk(KERN_INFO PREFIX "%.4s (v%3.3d %6.6s %8.8s 0x%08x %.4s 0x%08x) @ 0x%p\n", + printk(KERN_DEBUG PREFIX "%.4s (v%3.3d %6.6s %8.8s 0x%08x %.4s 0x%08x) @ 0x%p\n", name, header->revision, header->oem_id, header->oem_table_id, header->oem_revision, header->asl_compiler_id, header->asl_compiler_revision, @@ -587,7 +587,7 @@ return -ENODEV; } - printk(KERN_INFO PREFIX "RSDP (v%3.3d %6.6s ) @ 0x%p\n", + printk(KERN_DEBUG PREFIX "RSDP (v%3.3d %6.6s ) @ 0x%p\n", rsdp->revision, rsdp->oem_id, (void *) rsdp_phys); if (rsdp->revision < 2) diff -Nru a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c --- a/drivers/acpi/utilities/utglobal.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/acpi/utilities/utglobal.c 2004-09-12 21:51:23 -07:00 @@ -142,16 +142,11 @@ */ /* Debug switch - level and trace mask */ - -#ifdef ACPI_DEBUG_OUTPUT -u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT; -#else -u32 acpi_dbg_level = ACPI_NORMAL_DEFAULT; -#endif +u32 acpi_dbg_level = 0; /* Debug switch - layer (component) mask */ -u32 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT; +u32 acpi_dbg_layer = 0; u32 acpi_gbl_nesting_level = 0; diff -Nru a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c --- a/drivers/char/ipmi/ipmi_si_intf.c 2004-09-12 21:51:23 -07:00 +++ b/drivers/char/ipmi/ipmi_si_intf.c 2004-09-12 21:51:23 -07:00 @@ -1331,7 +1331,7 @@ static int acpi_failure = 0; /* For GPE-type interrupts. */ -u32 ipmi_acpi_gpe(void *context) +void ipmi_acpi_gpe(void *context) { struct smi_info *smi_info = context; unsigned long flags; @@ -1355,8 +1355,6 @@ smi_event_handler(smi_info, 0); out: spin_unlock_irqrestore(&(smi_info->si_lock), flags); - - return ACPI_INTERRUPT_HANDLED; } static int acpi_gpe_irq_setup(struct smi_info *info) diff -Nru a/include/acpi/acconfig.h b/include/acpi/acconfig.h --- a/include/acpi/acconfig.h 2004-09-12 21:51:23 -07:00 +++ b/include/acpi/acconfig.h 2004-09-12 21:51:23 -07:00 @@ -64,7 +64,7 @@ /* Version string */ -#define ACPI_CA_VERSION 0x20040715 +#define ACPI_CA_VERSION 0x20040816 /* * OS name, used for the _OS object. The _OS object is essentially obsolete, diff -Nru a/include/acpi/acexcep.h b/include/acpi/acexcep.h --- a/include/acpi/acexcep.h 2004-09-12 21:51:23 -07:00 +++ b/include/acpi/acexcep.h 2004-09-12 21:51:23 -07:00 @@ -166,7 +166,7 @@ #define AE_AML_CIRCULAR_REFERENCE (acpi_status) (0x0020 | AE_CODE_AML) #define AE_AML_BAD_RESOURCE_LENGTH (acpi_status) (0x0021 | AE_CODE_AML) -#define AE_CODE_AML_MAX 0x0020 +#define AE_CODE_AML_MAX 0x0021 /* * Internal exceptions used for control diff -Nru a/include/acpi/acglobal.h b/include/acpi/acglobal.h --- a/include/acpi/acglobal.h 2004-09-12 21:51:23 -07:00 +++ b/include/acpi/acglobal.h 2004-09-12 21:51:23 -07:00 @@ -94,7 +94,7 @@ * interpreter strictly follows the ACPI specification. Setting to TRUE * allows the interpreter to forgive certain bad AML constructs. */ -ACPI_EXTERN u8 ACPI_INIT_GLOBAL (acpi_gbl_enable_interpeter_slack, FALSE); +ACPI_EXTERN u8 ACPI_INIT_GLOBAL (acpi_gbl_enable_interpreter_slack, FALSE); /* * Automatically serialize ALL control methods? Default is FALSE, meaning diff -Nru a/include/acpi/acmacros.h b/include/acpi/acmacros.h --- a/include/acpi/acmacros.h 2004-09-12 21:51:23 -07:00 +++ b/include/acpi/acmacros.h 2004-09-12 21:51:23 -07:00 @@ -364,24 +364,6 @@ #define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7')) -/* Macros for GAS addressing */ - -#if ACPI_MACHINE_WIDTH != 16 - -#define ACPI_PCI_DEVICE(a) (u16) ((ACPI_HIDWORD ((a))) & 0x0000FFFF) -#define ACPI_PCI_FUNCTION(a) (u16) ((ACPI_LODWORD ((a))) >> 16) -#define ACPI_PCI_REGISTER(a) (u16) ((ACPI_LODWORD ((a))) & 0x0000FFFF) - -#else - -/* No support for GAS and PCI IDs in 16-bit mode */ - -#define ACPI_PCI_FUNCTION(a) (u16) ((a) & 0xFFFF0000) -#define ACPI_PCI_DEVICE(a) (u16) ((a) & 0x0000FFFF) -#define ACPI_PCI_REGISTER(a) (u16) ((a) & 0x0000FFFF) - -#endif - /* Bitfields within ACPI registers */ diff -Nru a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h --- a/include/acpi/acpi_drivers.h 2004-09-12 21:51:23 -07:00 +++ b/include/acpi/acpi_drivers.h 2004-09-12 21:51:23 -07:00 @@ -106,59 +106,4 @@ int acpi_processor_set_thermal_limit(acpi_handle handle, int type); -/* -------------------------------------------------------------------------- - Debug Support - -------------------------------------------------------------------------- */ - -#define ACPI_DEBUG_RESTORE 0 -#define ACPI_DEBUG_LOW 1 -#define ACPI_DEBUG_MEDIUM 2 -#define ACPI_DEBUG_HIGH 3 -#define ACPI_DEBUG_DRIVERS 4 - -extern u32 acpi_dbg_level; -extern u32 acpi_dbg_layer; - -static inline void -acpi_set_debug ( - u32 flag) -{ - static u32 layer_save; - static u32 level_save; - - switch (flag) { - case ACPI_DEBUG_RESTORE: - acpi_dbg_layer = layer_save; - acpi_dbg_level = level_save; - break; - case ACPI_DEBUG_LOW: - case ACPI_DEBUG_MEDIUM: - case ACPI_DEBUG_HIGH: - case ACPI_DEBUG_DRIVERS: - layer_save = acpi_dbg_layer; - level_save = acpi_dbg_level; - break; - } - - switch (flag) { - case ACPI_DEBUG_LOW: - acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; - acpi_dbg_level = ACPI_DEBUG_DEFAULT; - break; - case ACPI_DEBUG_MEDIUM: - acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; - acpi_dbg_level = ACPI_LV_FUNCTIONS | ACPI_LV_ALL_EXCEPTIONS; - break; - case ACPI_DEBUG_HIGH: - acpi_dbg_layer = 0xFFFFFFFF; - acpi_dbg_level = 0xFFFFFFFF; - break; - case ACPI_DEBUG_DRIVERS: - acpi_dbg_layer = ACPI_ALL_DRIVERS; - acpi_dbg_level = 0xFFFFFFFF; - break; - } -} - - #endif /*__ACPI_DRIVERS_H__*/ diff -Nru a/include/linux/acpi.h b/include/linux/acpi.h --- a/include/linux/acpi.h 2004-09-12 21:51:23 -07:00 +++ b/include/linux/acpi.h 2004-09-12 21:51:23 -07:00 @@ -453,14 +453,15 @@ #ifdef CONFIG_ACPI_EC -int ec_read(u8 addr, u8 *val); -int ec_write(u8 addr, u8 val); +extern int ec_read(u8 addr, u8 *val); +extern int ec_write(u8 addr, u8 val); #endif /*CONFIG_ACPI_EC*/ #ifdef CONFIG_ACPI_INTERPRETER -int acpi_blacklisted(void); +extern int acpi_blacklisted(void); +extern void acpi_bios_year(char *s); #else /*!CONFIG_ACPI_INTERPRETER*/