http://linux-acpi.bkbits.net/linux-acpi-test-mm len.brown@intel.com|ChangeSet|20041010172704|50599 len.brown # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/10/10 22:09:40-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # arch/i386/kernel/io_apic.c # 2004/10/10 22:09:35-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/10/10 04:34:32-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-latest-dominik # into intel.com:/home/lenb/bk/26-latest-mm # # drivers/acpi/acpi_ksyms.c # 2004/10/10 04:34:29-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/10/10 04:25:57-04:00 len.brown@intel.com # EXPORT_SYMBOL(acpi_os_write_port); # EXPORT_SYMBOL(acpi_fadt_is_v1); # # drivers/acpi/acpi_ksyms.c # 2004/10/10 04:24:53-04:00 len.brown@intel.com +3 -0 # EXPORT_SYMBOL(acpi_os_write_port); # EXPORT_SYMBOL(acpi_fadt_is_v1); # # ChangeSet # 2004/10/09 14:14:38-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/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/acpi/Kconfig # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/Makefile # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/Kconfig # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/ia64/kernel/setup.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/ia64/kernel/acpi.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/kernel/dmi_scan.c # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/Kconfig # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/09 14:14:34-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/10/09 14:13:26-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # drivers/acpi/osl.c # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/acpi/Kconfig # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/kernel/dmi_scan.c # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/09 14:13:21-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/10/08 18:51:45-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-latest-dev # into intel.com:/home/lenb/bk/26-latest-mm # # drivers/acpi/Kconfig # 2004/10/08 18:51:41-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/10/08 18:51:41-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/10/08 18:44:00-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-latest-dominik # into intel.com:/home/lenb/bk/26-latest-mm # # arch/x86_64/kernel/io_apic.c # 2004/10/08 18:43:56-04:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/08 18:43:56-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/10/08 18:01:04-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-ref # into intel.com:/home/lenb/bk/26-latest-mm # # drivers/Makefile # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/Kconfig # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/ia64/kernel/setup.c # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/ia64/kernel/acpi.c # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/08 18:01:00-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/10/08 16:55:44-04:00 len.brown@intel.com # [ACPI] Notify SMM of cpufreq # http://marc.theaimsgroup.com/?l=acpi4linux&m=109428989121089&w=2 # # Signed-off-by: Dominik Brodowski # # include/acpi/processor.h # 2004/09/04 05:07:43-04:00 len.brown@intel.com +4 -0 # Notify SMM of cpufreq # # include/acpi/actbl.h # 2004/09/04 05:07:43-04:00 len.brown@intel.com +2 -0 # Notify SMM of cpufreq # # drivers/acpi/tables/tbconvrt.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +8 -2 # Notify SMM of cpufreq # # drivers/acpi/processor.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +79 -8 # Notify SMM of cpufreq # # arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +3 -0 # Notify SMM of cpufreq # # arch/i386/kernel/cpu/cpufreq/powernow-k8.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +4 -0 # Notify SMM of cpufreq # # arch/i386/kernel/cpu/cpufreq/powernow-k7.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +3 -0 # Notify SMM of cpufreq # # arch/i386/kernel/cpu/cpufreq/acpi.c # 2004/09/04 05:07:43-04:00 len.brown@intel.com +3 -1 # Notify SMM of cpufreq # # ChangeSet # 2004/10/08 11:48:09-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi # # arch/ia64/kernel/setup.c # 2004/10/08 11:48:05-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/ia64/kernel/acpi.c # 2004/10/08 11:48:05-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/10/06 20:25:56-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/10/06 20:25:53-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/acpi/osl.c # 2004/10/06 20:25:53-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/Makefile # 2004/10/06 20:25:53-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/10/06 20:25:53-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/x86_64/Kconfig # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/ia64/kernel/acpi.c # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/kernel/dmi_scan.c # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/i386/Kconfig # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/06 20:25:52-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/17 00:29:39-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 # # drivers/Makefile # 2004/09/17 00:29:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/Kconfig # 2004/09/17 00:29:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/dmi_scan.c # 2004/09/17 00:29:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/Kconfig # 2004/09/17 00:29:35-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/09/10 16:26:55-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-x86_64/mpspec.h # 2004/09/10 16:26:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/Makefile # 2004/09/10 16:26:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/09/10 16:26:50-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/ia64/kernel/acpi.c # 2004/09/10 16:26:50-04:00 len.brown@intel.com +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: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/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 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 # diff -Nru a/arch/i386/kernel/cpu/cpufreq/acpi.c b/arch/i386/kernel/cpu/cpufreq/acpi.c --- a/arch/i386/kernel/cpu/cpufreq/acpi.c 2004-10-10 22:12:19 -07:00 +++ b/arch/i386/kernel/cpu/cpufreq/acpi.c 2004-10-10 22:12:19 -07:00 @@ -428,7 +428,9 @@ if (result) { goto err_freqfree; } - + + /* notify BIOS that we exist */ + acpi_processor_notify_smm(THIS_MODULE); printk(KERN_INFO "cpufreq: CPU%u - ACPI performance management activated.\n", cpu); diff -Nru a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c --- a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2004-10-10 22:12:19 -07:00 +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2004-10-10 22:12:19 -07:00 @@ -400,6 +400,9 @@ powernow_table[i].frequency = CPUFREQ_TABLE_END; powernow_table[i].index = 0; + /* notify BIOS that we exist */ + acpi_processor_notify_smm(THIS_MODULE); + return 0; err2: diff -Nru a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2004-10-10 22:12:19 -07:00 +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2004-10-10 22:12:19 -07:00 @@ -768,6 +768,10 @@ data->numps = data->acpi_data.state_count; print_basics(data); powernow_k8_acpi_pst_values(data, 0); + + /* notify BIOS that we exist */ + acpi_processor_notify_smm(THIS_MODULE); + return 0; err_out_mem: diff -Nru a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c --- a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2004-10-10 22:12:19 -07:00 +++ b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2004-10-10 22:12:19 -07:00 @@ -426,6 +426,9 @@ centrino_model->op_points[i].frequency = CPUFREQ_ENTRY_INVALID; } + /* notify BIOS that we exist */ + acpi_processor_notify_smm(THIS_MODULE); + return 0; err_kfree_all: diff -Nru a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig --- a/arch/x86_64/Kconfig 2004-10-10 22:12:19 -07:00 +++ b/arch/x86_64/Kconfig 2004-10-10 22:12:19 -07:00 @@ -169,7 +169,7 @@ bool depends on SMP && !MK8 default y - + config MATH_EMULATION bool diff -Nru a/drivers/acpi/acpi_ksyms.c b/drivers/acpi/acpi_ksyms.c --- a/drivers/acpi/acpi_ksyms.c 2004-10-10 22:12:19 -07:00 +++ b/drivers/acpi/acpi_ksyms.c 2004-10-10 22:12:19 -07:00 @@ -102,6 +102,8 @@ EXPORT_SYMBOL(acpi_os_printf); EXPORT_SYMBOL(acpi_os_sleep); EXPORT_SYMBOL(acpi_os_stall); +EXPORT_SYMBOL(acpi_os_read_port); +EXPORT_SYMBOL(acpi_os_write_port); EXPORT_SYMBOL(acpi_os_signal); EXPORT_SYMBOL(acpi_os_queue_for_execution); EXPORT_SYMBOL(acpi_os_signal_semaphore); @@ -125,6 +127,7 @@ #ifdef CONFIG_ACPI_BUS EXPORT_SYMBOL(acpi_fadt); +EXPORT_SYMBOL(acpi_fadt_is_v1); EXPORT_SYMBOL(acpi_walk_namespace); EXPORT_SYMBOL(acpi_root_dir); EXPORT_SYMBOL(acpi_bus_get_device); diff -Nru a/drivers/acpi/processor.c b/drivers/acpi/processor.c --- a/drivers/acpi/processor.c 2004-10-10 22:12:19 -07:00 +++ b/drivers/acpi/processor.c 2004-10-10 22:12:19 -07:00 @@ -762,7 +762,10 @@ * policy is adjusted accordingly. */ -static int acpi_processor_ppc_is_init = 0; +#define PPC_REGISTERED 1 +#define PPC_IN_USE 2 + +static int acpi_processor_ppc_status = 0; static int acpi_processor_ppc_notifier(struct notifier_block *nb, unsigned long event, @@ -820,6 +823,10 @@ * (e.g. 0 = states 0..n; 1 = states 1..n; etc. */ status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); + + if (status != AE_NOT_FOUND) + acpi_processor_ppc_status |= PPC_IN_USE; + if(ACPI_FAILURE(status) && status != AE_NOT_FOUND) { ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error evaluating _PPC\n")); return_VALUE(-ENODEV); @@ -844,17 +851,17 @@ static void acpi_processor_ppc_init(void) { if (!cpufreq_register_notifier(&acpi_ppc_notifier_block, CPUFREQ_POLICY_NOTIFIER)) - acpi_processor_ppc_is_init = 1; + acpi_processor_ppc_status |= PPC_REGISTERED; else printk(KERN_DEBUG "Warning: Processor Platform Limit not supported.\n"); } static void acpi_processor_ppc_exit(void) { - if (acpi_processor_ppc_is_init) + if (acpi_processor_ppc_status & PPC_REGISTERED) cpufreq_unregister_notifier(&acpi_ppc_notifier_block, CPUFREQ_POLICY_NOTIFIER); - acpi_processor_ppc_is_init = 0; + acpi_processor_ppc_status &= ~PPC_REGISTERED; } /* @@ -1074,6 +1081,73 @@ } +int acpi_processor_notify_smm(struct module *calling_module) { + acpi_status status; + static int is_done = 0; + + ACPI_FUNCTION_TRACE("acpi_processor_notify_smm"); + + if (!(acpi_processor_ppc_status & PPC_REGISTERED)) + return_VALUE(-EBUSY); + + if (!try_module_get(calling_module)) + return_VALUE(-EINVAL); + + /* is_done is set to negative if an error occured, + * and to postitive if _no_ error occured, but SMM + * was already notified. This avoids double notification + * which might lead to unexpected results... + */ + if (is_done > 0) { + module_put(calling_module); + return_VALUE(0); + } + else if (is_done < 0) { + module_put(calling_module); + return_VALUE(is_done); + } + + is_done = -EIO; + + /* Can't write pstate_cnt to smi_cmd if either value is zero */ + if ((!acpi_fadt.smi_cmd) || + (!acpi_fadt.pstate_cnt)) { + ACPI_DEBUG_PRINT((ACPI_DB_INFO, + "No SMI port or pstate_cnt\n")); + module_put(calling_module); + return_VALUE(0); + } + + ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Writing pstate_cnt [0x%x] to smi_cmd [0x%x]\n", acpi_fadt.pstate_cnt, acpi_fadt.smi_cmd)); + + /* FADT v1 doesn't support pstate_cnt, many BIOS vendors use + * it anyway, so we need to support it... */ + if (acpi_fadt_is_v1) { + ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Using v1.0 FADT reserved value for pstate_cnt\n")); + } + + status = acpi_os_write_port (acpi_fadt.smi_cmd, + (u32) acpi_fadt.pstate_cnt, 8); + if (ACPI_FAILURE (status)) { + ACPI_DEBUG_PRINT((ACPI_DB_ERROR, + "Failed to write pstate_cnt [0x%x] to " + "smi_cmd [0x%x]\n", acpi_fadt.pstate_cnt, acpi_fadt.smi_cmd)); + module_put(calling_module); + return_VALUE(status); + } + + /* Success. If there's no _PPC, we need to fear nothing, so + * we can allow the cpufreq driver to be rmmod'ed. */ + is_done = 1; + + if (!(acpi_processor_ppc_status & PPC_IN_USE)) + module_put(calling_module); + + return_VALUE(0); +} +EXPORT_SYMBOL(acpi_processor_notify_smm); + + #ifdef CONFIG_X86_ACPI_CPUFREQ_PROC_INTF /* /proc/acpi/processor/../performance interface (DEPRECATED) */ @@ -1230,7 +1304,7 @@ ACPI_FUNCTION_TRACE("acpi_processor_register_performance"); - if (!acpi_processor_ppc_is_init) + if (!(acpi_processor_ppc_status & PPC_REGISTERED)) return_VALUE(-EINVAL); down(&performance_sem); @@ -1270,9 +1344,6 @@ struct acpi_processor *pr; ACPI_FUNCTION_TRACE("acpi_processor_unregister_performance"); - - if (!acpi_processor_ppc_is_init) - return_VOID; down(&performance_sem); diff -Nru a/drivers/acpi/tables/tbconvrt.c b/drivers/acpi/tables/tbconvrt.c --- a/drivers/acpi/tables/tbconvrt.c 2004-10-10 22:12:19 -07:00 +++ b/drivers/acpi/tables/tbconvrt.c 2004-10-10 22:12:19 -07:00 @@ -50,6 +50,8 @@ ACPI_MODULE_NAME ("tbconvrt") +u8 acpi_fadt_is_v1; + /******************************************************************************* * * FUNCTION: acpi_tb_get_table_count @@ -212,6 +214,7 @@ /* ACPI 1.0 FACS */ /* The BIOS stored FADT should agree with Revision 1.0 */ + acpi_fadt_is_v1 = 1; /* * Copy the table header and the common part of the tables. @@ -240,9 +243,12 @@ /* * Processor Performance State Control. This is the value OSPM writes to * the SMI_CMD register to assume processor performance state control - * responsibility. There isn't any equivalence in 1.0, leave it zeroed. + * responsibility. There isn't any equivalence in 1.0, but as many 1.x + * ACPI tables contain _PCT and _PSS we also keep this value, unless + * acpi_strict is set. */ - local_fadt->pstate_cnt = 0; + if (acpi_strict) + local_fadt->pstate_cnt = 0; /* * Support for the _CST object and C States change notification. 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-10-10 22:12:19 -07:00 +++ b/drivers/char/ipmi/ipmi_si_intf.c 2004-10-10 22:12:19 -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/actbl.h b/include/acpi/actbl.h --- a/include/acpi/actbl.h 2004-10-10 22:12:19 -07:00 +++ b/include/acpi/actbl.h 2004-10-10 22:12:19 -07:00 @@ -330,6 +330,8 @@ #include "actbl1.h" /* Acpi 1.0 table definitions */ #include "actbl2.h" /* Acpi 2.0 table definitions */ +extern u8 acpi_fadt_is_v1; /* is set to 1 if FADT is revision 1, + * needed for certain workarounds */ #pragma pack(1) /* diff -Nru a/include/acpi/processor.h b/include/acpi/processor.h --- a/include/acpi/processor.h 2004-10-10 22:12:19 -07:00 +++ b/include/acpi/processor.h 2004-10-10 22:12:19 -07:00 @@ -140,4 +140,8 @@ struct acpi_processor_performance * performance, unsigned int cpu); +/* note: this locks both the calling module and the processor module + if a _PPC object exists, rmmod is disallowed then */ +int acpi_processor_notify_smm(struct module *calling_module); + #endif