diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index f2024df7ebe5..fc532395d116 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt @@ -273,3 +273,48 @@ Why: Speedstep-centrino driver with ACPI hooks and acpi-cpufreq driver are Who: Venkatesh Pallipadi --------------------------- + +What: ACPI hotkey driver (CONFIG_ACPI_HOTKEY) +When: 2.6.21 +Why: hotkey.c was an attempt to consolidate multiple drivers that use + ACPI to implement hotkeys. However, hotkeys are not documented + in the ACPI specification, so the drivers used undocumented + vendor-specific hooks and turned out to be more different than + the same. + + Further, the keys and the features supplied by each platform + are different, so there will always be a need for + platform-specific drivers. + + So the new plan is to delete hotkey.c and instead, work on the + platform specific drivers to try to make them look the same + to the user when they supply the same features. + + hotkey.c has always depended on CONFIG_EXPERIMENTAL + +Who: Len Brown + +--------------------------- + +What: /sys/firmware/acpi/namespace +When: 2.6.21 +Why: The ACPI namespace is effectively the symbol list for + the BIOS. The device names are completely arbitrary + and have no place being exposed to user-space. + + For those interested in the BIOS ACPI namespace, + the BIOS can be extracted and disassembled with acpidump + and iasl as documented in the pmtools package here: + http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils + +Who: Len Brown + +--------------------------- + +What: /proc/acpi/button +When: August 2007 +Why: /proc/acpi/button has been replaced by events to the input layer + since 2.6.20. +Who: Len Brown + +--------------------------- diff --git a/MAINTAINERS b/MAINTAINERS index 49e4f554d211..1b1491d64ca6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -207,16 +207,45 @@ S: Supported ACPI P: Len Brown M: len.brown@intel.com +M: lenb@kernel.org L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ T: git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git -S: Maintained +S: Supported + +ACPI BATTERY DRIVERS +P: Vladimir P. Lebedev +M: vladimir.p.lebedev@intel.com +L: linux-acpi@vger.kernel.org +W: http://acpi.sourceforge.net/ +S: Supported + +ACPI EC DRIVER +P: Alexey Starikovskiy +M: alexey.y.starikovskiy@linux.intel.com +L: linux-acpi@vger.kernel.org +W: http://acpi.sourceforge.net/ +S: Supported + +ACPI FAN DRIVER +P: Konstantin A. Karasyov +M: konstantin.a.karasyov@intel.com +L: linux-acpi@vger.kernel.org +W: http://acpi.sourceforge.net/ +S: Supported ACPI PCI HOTPLUG DRIVER P: Kristen Carlson Accardi M: kristen.c.accardi@intel.com L: pcihpd-discuss@lists.sourceforge.net -S: Maintained +S: Supported + +ACPI THERMAL DRIVER +P: Konstantin A. Karasyov +M: konstantin.a.karasyov@intel.com +L: linux-acpi@vger.kernel.org +W: http://acpi.sourceforge.net/ +S: Supported AD1816 SOUND DRIVER P: Thorsten Knabe @@ -1085,7 +1114,7 @@ DOCKING STATION DRIVER P: Kristen Carlson Accardi M: kristen.c.accardi@intel.com L: linux-acpi@vger.kernel.org -S: Maintained +S: Supported DOUBLETALK DRIVER P: James R. Van Zandt @@ -2535,7 +2564,7 @@ PCIE HOTPLUG DRIVER P: Kristen Carlson Accardi M: kristen.c.accardi@intel.com L: pcihpd-discuss@lists.sourceforge.net -S: Maintained +S: Supported PCMCIA SUBSYSTEM P: Linux PCMCIA Team @@ -3041,7 +3070,7 @@ SHPC HOTPLUG DRIVER P: Kristen Carlson Accardi M: kristen.c.accardi@intel.com L: pcihpd-discuss@lists.sourceforge.net -S: Maintained +S: Supported SECURE DIGITAL HOST CONTROLLER INTERFACE DRIVER P: Pierre Ossman diff --git a/arch/i386/kernel/acpi/cstate.c b/arch/i386/kernel/acpi/cstate.c index 12e937c1ce4b..2d39f55d29a8 100644 --- a/arch/i386/kernel/acpi/cstate.c +++ b/arch/i386/kernel/acpi/cstate.c @@ -47,13 +47,13 @@ EXPORT_SYMBOL(acpi_processor_power_init_bm_check); /* The code below handles cstate entry with monitor-mwait pair on Intel*/ -struct cstate_entry_s { +struct cstate_entry { struct { unsigned int eax; unsigned int ecx; } states[ACPI_PROCESSOR_MAX_POWER]; }; -static struct cstate_entry_s *cpu_cstate_entry; /* per CPU ptr */ +static struct cstate_entry *cpu_cstate_entry; /* per CPU ptr */ static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; @@ -71,7 +71,7 @@ static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; int acpi_processor_ffh_cstate_probe(unsigned int cpu, struct acpi_processor_cx *cx, struct acpi_power_register *reg) { - struct cstate_entry_s *percpu_entry; + struct cstate_entry *percpu_entry; struct cpuinfo_x86 *c = cpu_data + cpu; cpumask_t saved_mask; @@ -136,7 +136,7 @@ EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe); void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx) { unsigned int cpu = smp_processor_id(); - struct cstate_entry_s *percpu_entry; + struct cstate_entry *percpu_entry; percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu); mwait_idle_with_hints(percpu_entry->states[cx->index].eax, @@ -150,7 +150,7 @@ static int __init ffh_cstate_init(void) if (c->x86_vendor != X86_VENDOR_INTEL) return -1; - cpu_cstate_entry = alloc_percpu(struct cstate_entry_s); + cpu_cstate_entry = alloc_percpu(struct cstate_entry); return 0; } diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 73ef4a85b861..ef2fe474f107 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c @@ -590,6 +590,9 @@ void __init acpi_numa_arch_fixup(void) */ int acpi_register_gsi(u32 gsi, int triggering, int polarity) { + if (acpi_irq_model == ACPI_IRQ_MODEL_PLATFORM) + return gsi; + if (has_8259 && gsi < 16) return isa_irq_to_vector(gsi); diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c index 99d7f278612a..cb96b4ea7df6 100644 --- a/arch/ia64/sn/kernel/io_acpi_init.c +++ b/arch/ia64/sn/kernel/io_acpi_init.c @@ -223,6 +223,9 @@ sn_io_acpi_init(void) u64 result; s64 status; + /* SN Altix does not follow the IOSAPIC IRQ routing model */ + acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM; + acpi_bus_register_driver(&acpi_sn_hubdev_driver); status = sal_ioif_init(&result); if (status || result) diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 1639998e4d27..f4f000abc4e9 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig @@ -225,17 +225,6 @@ config ACPI_IBM_DOCK If you are not sure, say N here. -config ACPI_IBM_BAY - bool "Legacy Removable Bay Support" - depends on ACPI_IBM - depends on ACPI_BAY=n - default n - ---help--- - Allows the ibm_acpi driver to handle removable bays. - This support is obsoleted by CONFIG_ACPI_BAY. - - If you are not sure, say N here. - config ACPI_TOSHIBA tristate "Toshiba Laptop Extras" depends on X86 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 279c4bac92e5..766332e45592 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -561,6 +561,9 @@ static int __init acpi_bus_init_irq(void) case ACPI_IRQ_MODEL_IOSAPIC: message = "IOSAPIC"; break; + case ACPI_IRQ_MODEL_PLATFORM: + message = "platform specific model"; + break; default: printk(KERN_WARNING PREFIX "Unknown interrupt routing model\n"); return -ENODEV; diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 4144d5dd442e..cbdf031f3c09 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -1016,8 +1016,8 @@ static int __init acpi_ec_set_intr_mode(char *str) acpi_ec_mode = EC_POLL; } acpi_ec_driver.ops.add = acpi_ec_add; - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "EC %s mode.\n", - intr ? "interrupt" : "polling")); + printk(KERN_NOTICE PREFIX "%s mode.\n", + intr ? "interrupt" : "polling"); return 1; } diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c index b72d13d11a27..c6144ca66638 100644 --- a/drivers/acpi/ibm_acpi.c +++ b/drivers/acpi/ibm_acpi.c @@ -157,7 +157,6 @@ IBM_HANDLE(dock, root, "\\_SB.GDCK", /* X30, X31, X40 */ "\\_SB.PCI.ISA.SLCE", /* 570 */ ); /* A21e,G4x,R30,R31,R32,R40,R40e,R50e */ #endif -#ifdef CONFIG_ACPI_IBM_BAY IBM_HANDLE(bay, root, "\\_SB.PCI.IDE.SECN.MAST", /* 570 */ "\\_SB.PCI0.IDE0.IDES.IDSM", /* 600e/x, 770e, 770x */ "\\_SB.PCI0.SATA.SCND.MSTR", /* T60, X60, Z60 */ @@ -175,7 +174,6 @@ IBM_HANDLE(bay2, root, "\\_SB.PCI0.IDE0.PRIM.SLAV", /* A3x, R32 */ IBM_HANDLE(bay2_ej, bay2, "_EJ3", /* 600e/x, 770e, A3x */ "_EJ0", /* 770x */ ); /* all others */ -#endif /* don't list other alternatives as we install a notify handler on the 570 */ IBM_HANDLE(pci, root, "\\_SB.PCI"); /* 570 */ @@ -1042,7 +1040,6 @@ static int light_write(char *buf) return 0; } -#if defined(CONFIG_ACPI_IBM_DOCK) || defined(CONFIG_ACPI_IBM_BAY) static int _sta(acpi_handle handle) { int status; @@ -1052,7 +1049,7 @@ static int _sta(acpi_handle handle) return status; } -#endif + #ifdef CONFIG_ACPI_IBM_DOCK #define dock_docked() (_sta(dock_handle) & 1) @@ -1118,7 +1115,6 @@ static void dock_notify(struct ibm_struct *ibm, u32 event) } #endif -#ifdef CONFIG_ACPI_IBM_BAY static int bay_status_supported; static int bay_status2_supported; static int bay_eject_supported; @@ -1194,7 +1190,6 @@ static void bay_notify(struct ibm_struct *ibm, u32 event) { acpi_bus_generate_event(ibm->device, event, 0); } -#endif static int cmos_read(char *p) { @@ -2354,7 +2349,6 @@ static struct ibm_struct ibms[] = { .type = ACPI_SYSTEM_NOTIFY, }, #endif -#ifdef CONFIG_ACPI_IBM_BAY { .name = "bay", .init = bay_init, @@ -2364,7 +2358,6 @@ static struct ibm_struct ibms[] = { .handle = &bay_handle, .type = ACPI_SYSTEM_NOTIFY, }, -#endif { .name = "cmos", .read = cmos_read, @@ -2650,9 +2643,7 @@ IBM_PARAM(light); #ifdef CONFIG_ACPI_IBM_DOCK IBM_PARAM(dock); #endif -#ifdef CONFIG_ACPI_IBM_BAY IBM_PARAM(bay); -#endif IBM_PARAM(cmos); IBM_PARAM(led); IBM_PARAM(beep); @@ -2735,14 +2726,12 @@ static int __init acpi_ibm_init(void) IBM_HANDLE_INIT(dock); #endif IBM_HANDLE_INIT(pci); -#ifdef CONFIG_ACPI_IBM_BAY IBM_HANDLE_INIT(bay); if (bay_handle) IBM_HANDLE_INIT(bay_ej); IBM_HANDLE_INIT(bay2); if (bay2_handle) IBM_HANDLE_INIT(bay2_ej); -#endif IBM_HANDLE_INIT(beep); IBM_HANDLE_INIT(ecrd); IBM_HANDLE_INIT(ecwr); diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index 25718fed39f1..5f9496d59ed6 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c @@ -476,9 +476,6 @@ static int acpi_processor_get_info(struct acpi_processor *pr) if (cpu_index == -1) { if (ACPI_FAILURE (acpi_processor_hotadd_init(pr->handle, &pr->id))) { - printk(KERN_ERR PREFIX - "Getting cpuindex for acpiid 0x%x\n", - pr->acpi_id); return -ENODEV; } } diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index 0e60382714bb..5207f9e4b443 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c @@ -736,10 +736,6 @@ int acpi_processor_preregister_performance( } err_ret: - if (retval) { - ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error while parsing _PSD domain information. Assuming no coordination\n")); - } - for_each_possible_cpu(i) { pr = processors[i]; if (!pr || !pr->performance) diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 2b0c955590fe..91f1f2363870 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -47,6 +47,7 @@ enum acpi_irq_model_id { ACPI_IRQ_MODEL_PIC = 0, ACPI_IRQ_MODEL_IOAPIC, ACPI_IRQ_MODEL_IOSAPIC, + ACPI_IRQ_MODEL_PLATFORM, ACPI_IRQ_MODEL_COUNT };