···273Who: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>274275---------------------------276+277+What: ACPI hotkey driver (CONFIG_ACPI_HOTKEY)278+When: 2.6.21279+Why: hotkey.c was an attempt to consolidate multiple drivers that use280+ ACPI to implement hotkeys. However, hotkeys are not documented281+ in the ACPI specification, so the drivers used undocumented282+ vendor-specific hooks and turned out to be more different than283+ the same.284+285+ Further, the keys and the features supplied by each platform286+ are different, so there will always be a need for287+ platform-specific drivers.288+289+ So the new plan is to delete hotkey.c and instead, work on the290+ platform specific drivers to try to make them look the same291+ to the user when they supply the same features.292+293+ hotkey.c has always depended on CONFIG_EXPERIMENTAL294+295+Who: Len Brown <len.brown@intel.com>296+297+---------------------------298+299+What: /sys/firmware/acpi/namespace300+When: 2.6.21301+Why: The ACPI namespace is effectively the symbol list for302+ the BIOS. The device names are completely arbitrary303+ and have no place being exposed to user-space.304+305+ For those interested in the BIOS ACPI namespace,306+ the BIOS can be extracted and disassembled with acpidump307+ and iasl as documented in the pmtools package here:308+ http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils309+310+Who: Len Brown <len.brown@intel.com>311+312+---------------------------313+314+What: /proc/acpi/button315+When: August 2007316+Why: /proc/acpi/button has been replaced by events to the input layer317+ since 2.6.20.318+Who: Len Brown <len.brown@intel.com>319+320+---------------------------
+34-5
MAINTAINERS
···207ACPI208P: Len Brown209M: len.brown@intel.com0210L: linux-acpi@vger.kernel.org211W: http://acpi.sourceforge.net/212T: git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git213-S: Maintained000000000000000000000214215ACPI PCI HOTPLUG DRIVER216P: Kristen Carlson Accardi217M: kristen.c.accardi@intel.com218L: pcihpd-discuss@lists.sourceforge.net219-S: Maintained0000000220221AD1816 SOUND DRIVER222P: Thorsten Knabe···1114P: Kristen Carlson Accardi1115M: kristen.c.accardi@intel.com1116L: linux-acpi@vger.kernel.org1117-S: Maintained11181119DOUBLETALK DRIVER1120P: James R. Van Zandt···2564P: Kristen Carlson Accardi2565M: kristen.c.accardi@intel.com2566L: pcihpd-discuss@lists.sourceforge.net2567-S: Maintained25682569PCMCIA SUBSYSTEM2570P: Linux PCMCIA Team···3064P: Kristen Carlson Accardi3065M: kristen.c.accardi@intel.com3066L: pcihpd-discuss@lists.sourceforge.net3067-S: Maintained30683069SECURE DIGITAL HOST CONTROLLER INTERFACE DRIVER3070P: Pierre Ossman
···207ACPI208P: Len Brown209M: len.brown@intel.com210+M: lenb@kernel.org211L: linux-acpi@vger.kernel.org212W: http://acpi.sourceforge.net/213T: git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git214+S: Supported215+216+ACPI BATTERY DRIVERS217+P: Vladimir P. Lebedev218+M: vladimir.p.lebedev@intel.com219+L: linux-acpi@vger.kernel.org220+W: http://acpi.sourceforge.net/221+S: Supported222+223+ACPI EC DRIVER224+P: Alexey Starikovskiy225+M: alexey.y.starikovskiy@linux.intel.com226+L: linux-acpi@vger.kernel.org227+W: http://acpi.sourceforge.net/228+S: Supported229+230+ACPI FAN DRIVER231+P: Konstantin A. Karasyov232+M: konstantin.a.karasyov@intel.com233+L: linux-acpi@vger.kernel.org234+W: http://acpi.sourceforge.net/235+S: Supported236237ACPI PCI HOTPLUG DRIVER238P: Kristen Carlson Accardi239M: kristen.c.accardi@intel.com240L: pcihpd-discuss@lists.sourceforge.net241+S: Supported242+243+ACPI THERMAL DRIVER244+P: Konstantin A. Karasyov245+M: konstantin.a.karasyov@intel.com246+L: linux-acpi@vger.kernel.org247+W: http://acpi.sourceforge.net/248+S: Supported249250AD1816 SOUND DRIVER251P: Thorsten Knabe···1085P: Kristen Carlson Accardi1086M: kristen.c.accardi@intel.com1087L: linux-acpi@vger.kernel.org1088+S: Supported10891090DOUBLETALK DRIVER1091P: James R. Van Zandt···2535P: Kristen Carlson Accardi2536M: kristen.c.accardi@intel.com2537L: pcihpd-discuss@lists.sourceforge.net2538+S: Supported25392540PCMCIA SUBSYSTEM2541P: Linux PCMCIA Team···3035P: Kristen Carlson Accardi3036M: kristen.c.accardi@intel.com3037L: pcihpd-discuss@lists.sourceforge.net3038+S: Supported30393040SECURE DIGITAL HOST CONTROLLER INTERFACE DRIVER3041P: Pierre Ossman
+5-5
arch/i386/kernel/acpi/cstate.c
···4748/* The code below handles cstate entry with monitor-mwait pair on Intel*/4950-struct cstate_entry_s {51 struct {52 unsigned int eax;53 unsigned int ecx;54 } states[ACPI_PROCESSOR_MAX_POWER];55};56-static struct cstate_entry_s *cpu_cstate_entry; /* per CPU ptr */5758static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];59···71int acpi_processor_ffh_cstate_probe(unsigned int cpu,72 struct acpi_processor_cx *cx, struct acpi_power_register *reg)73{74- struct cstate_entry_s *percpu_entry;75 struct cpuinfo_x86 *c = cpu_data + cpu;7677 cpumask_t saved_mask;···136void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx)137{138 unsigned int cpu = smp_processor_id();139- struct cstate_entry_s *percpu_entry;140141 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu);142 mwait_idle_with_hints(percpu_entry->states[cx->index].eax,···150 if (c->x86_vendor != X86_VENDOR_INTEL)151 return -1;152153- cpu_cstate_entry = alloc_percpu(struct cstate_entry_s);154 return 0;155}156
···4748/* The code below handles cstate entry with monitor-mwait pair on Intel*/4950+struct cstate_entry {51 struct {52 unsigned int eax;53 unsigned int ecx;54 } states[ACPI_PROCESSOR_MAX_POWER];55};56+static struct cstate_entry *cpu_cstate_entry; /* per CPU ptr */5758static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];59···71int acpi_processor_ffh_cstate_probe(unsigned int cpu,72 struct acpi_processor_cx *cx, struct acpi_power_register *reg)73{74+ struct cstate_entry *percpu_entry;75 struct cpuinfo_x86 *c = cpu_data + cpu;7677 cpumask_t saved_mask;···136void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx)137{138 unsigned int cpu = smp_processor_id();139+ struct cstate_entry *percpu_entry;140141 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu);142 mwait_idle_with_hints(percpu_entry->states[cx->index].eax,···150 if (c->x86_vendor != X86_VENDOR_INTEL)151 return -1;152153+ cpu_cstate_entry = alloc_percpu(struct cstate_entry);154 return 0;155}156