Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git release This will update the files shown below. thanks! Len Brown Intel Open Source Technology Center ps. individual patches are available on linux-acpi@xxxxxxxxxxxxxxx and a consolidated plain patch is available here: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/2.6.30/acpi-release-20090521-2.6.30.diff.gz Documentation/kernel-parameters.txt | 8 - Documentation/laptops/thinkpad-acpi.txt | 47 ++- MAINTAINERS | 15 +- arch/ia64/kernel/acpi-processor.c | 12 + arch/x86/include/asm/acpi.h | 1 + arch/x86/include/asm/pci_x86.h | 3 + arch/x86/kernel/acpi/boot.c | 80 +---- arch/x86/kernel/acpi/cstate.c | 16 +- arch/x86/kernel/acpi/processor.c | 13 + arch/x86/pci/mmconfig-shared.c | 65 ++++- drivers/acpi/ac.c | 20 +- drivers/acpi/battery.c | 34 +-- drivers/acpi/blacklist.c | 16 + drivers/acpi/bus.c | 91 ++---- drivers/acpi/glue.c | 40 -- drivers/acpi/osl.c | 25 +- drivers/acpi/pci_bind.c | 313 ++-------------- drivers/acpi/pci_irq.c | 17 +- drivers/acpi/pci_root.c | 297 +++++++++------- drivers/acpi/power.c | 28 +-- drivers/acpi/processor_core.c | 45 ++- drivers/acpi/processor_idle.c | 47 ++-- drivers/acpi/scan.c | 69 ++-- drivers/acpi/video.c | 61 +++- drivers/acpi/video_detect.c | 9 +- drivers/gpu/drm/i915/i915_opregion.c | 2 +- drivers/pci/hotplug/acpi_pcihp.c | 40 +-- drivers/pci/hotplug/acpiphp_glue.c | 27 +- drivers/platform/x86/Kconfig | 34 ++- drivers/platform/x86/Makefile | 1 + drivers/platform/x86/acerhdf.c | 602 +++++++++++++++++++++++++++++++ drivers/platform/x86/asus-laptop.c | 111 +++---- drivers/platform/x86/asus_acpi.c | 30 +- drivers/platform/x86/dell-wmi.c | 56 +++- drivers/platform/x86/eeepc-laptop.c | 126 ++++++- drivers/platform/x86/hp-wmi.c | 87 +++-- drivers/platform/x86/thinkpad_acpi.c | 411 +++++++++++++++++++-- drivers/pnp/pnpacpi/rsparser.c | 46 +++- include/acpi/acpi_bus.h | 7 +- include/acpi/acpi_drivers.h | 13 +- include/acpi/processor.h | 1 + include/acpi/video.h | 4 +- include/linux/acpi.h | 6 +- include/linux/pci_hotplug.h | 1 - init/main.c | 6 +- 45 files changed, 1926 insertions(+), 1057 deletions(-) create mode 100644 drivers/platform/x86/acerhdf.c through these commits: Alex Chiang (2): ACPI: acpi_device_register() should call device_register() ACPI: clean up whitespace in drivers/acpi/scan.c Alexander Chiang (12): ACPI: make acpi_pci_bind() static ACPI: Introduce acpi_is_root_bridge() ACPI: Introduce acpi_get_pci_dev() ACPI: rearrange acpi_pci_bind/acpi_pci_unbind in pci_bind.c ACPI: eviscerate pci_bind.c ACPI: simplify acpi_pci_irq_add_prt() API ACPI: simplify acpi_pci_irq_del_prt() API ACPI: acpi_pci_unbind should clean up properly after acpi_pci_bind PCI Hotplug: acpiphp: convert to acpi_get_pci_dev ACPI: kill acpi_get_pci_id ACPI: video: convert to acpi_get_pci_dev ACPI: kill acpi_get_physical_pci_device() Bjorn Helgaas (20): ACPI: use LNXCPU, not ACPI_CPU, for Linux-specific processor _HID ACPI: processor: check for synthetic _HID, default to "Device" declaration ACPI: processor: move device _HID into driver PNPACPI: parse Extended Address Space Descriptors ACPI: don't check power state after _ON/_OFF ACPI: allow drivers to request both device and system notify events ACPI: ac: use .notify method instead of installing handler directly ACPI: battery: use .notify method instead of installing handler directly ACPI: asus-laptop: use .notify method instead of installing handler directly ACPI: asus-acpi: use .notify method instead of installing handler directly ACPI: eeepc-laptop: use .notify method instead of installing handler directly ACPI: simplify notification debug messages ACPI: remove unused "status_changed" return value from Check Device handling ACPI: remove unused return values from Bus Check & Device Check handling ACPI: use handle, not device, in system notification path ACPI: pci_root: check _CRS, then _BBN for downstream bus number ACPI: pci_root: simplify acpi_pci_root_add() control flow ACPI: pci_root: use driver data rather than list lookup ACPI: pci_root: simplify list traversals ACPI: pci_root: remove unused dev/fn information Corentin Chary (7): asus-laptop: platform dev as parent for led and backlight acpi4asus: update MAINTAINER and KConfig links asus_acpi: Deprecate in favor of asus-laptop eeepc-laptop: sync eeepc-laptop with asus_acpi eeepc-laptop: cpufv updates asus-laptop: use pr_fmt and pr_<level> asus-laptop: remove EXPERIMENTAL dependency Henrique de Moraes Holschuh (7): thinkpad-acpi: store fw version with strict checking thinkpad-acpi: add quirklist engine thinkpad-acpi: fix BEEP ACPI handler warnings thinkpad-acpi: enhance led support thinkpad-acpi: silence bogus warning when ACPI video is disabled thinkpad-acpi: forbid the use of HBRV on Lenovo ThinkPads thinkpad-acpi: support the second fan on the X61 Len Brown (7): ACPI: delete acpi.power_nocheck from kernel-parameters.txt ACPI: delete dead acpi_disabled setting code ACPI, PCI, x86: move MCFG parsing routine from ACPI to PCI file ACPI: move declaration acpi_early_init() to acpi.h ACPI: #define acpi_disabled 1 for CONFIG_ACPI=n ACPI: battery: fix CONFIG_ACPI_PROCFS_POWER=n build warning ACPI: idle: rename lapic timer workaround routines Mario Limonciello (2): dell-wmi: mask off upper bytes of event response dell-wmi: add additional keyboard events Matthew Garrett (2): dell-wmi: don't generate errors on empty messages hp-wmi: Add support for reporting tablet state Olivier Berger (1): ACPI: Remove Asus P4B266 from blacklist Pallipadi, Venkatesh (2): ACPI: Disable ARB_DISABLE on platforms where it is not needed ACPI: pdc init related memory leak with physical CPU hotplug Pekka Enberg (1): eeepc-laptop: enable camera by default Peter Feuerer (1): acerhdf: Acer Aspire One fan control Zhang Rui (5): Show the physical device node of backlight class device. ACPI: fix a deadlock in hotplug case ACPI: DMI to disable Vista compatibility on some Sony laptops ACPI: run ACPI device hot removal in kacpi_hotplug_wq ACPI: video: DMI workaround broken Acer 7720 BIOS enabling display brightness Zhao Yakui (3): ACPI: increase size of acpi_bus_id[] ACPI: Add the reference count to avoid unloading ACPI video bus twice ACPI: Rename ACPI processor device bus ID with this log: commit 21ab01e2fcbfcc0d1faba2b7336b3c0f7f3c1ac8 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Fri Jun 19 14:52:11 2009 +0200 asus-laptop: remove EXPERIMENTAL dependency Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 2fcc23da5522b89677fb0af6043a88e88fdd09a2 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Fri Jun 19 14:52:03 2009 +0200 asus-laptop: use pr_fmt and pr_<level> Convert the unusual printk(ASUS_<level> uses to the more standard pr_fmt and pr_<level>(. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit b31d0fde89c905673ceed0404d5ae24f2261d7c7 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Tue Jun 16 19:28:56 2009 +0000 eeepc-laptop: cpufv updates Limit cpufv input to acceptables values. Add an available_cpufv file to show available presets. Change cpufv ouput format from %d to %#x, it won't break compatibility with existing userspace tools, but it provide a more human readable output. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit b7b700d4a473d56103e87e341ad555e8a7cce06d Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Tue Jun 16 19:28:52 2009 +0000 eeepc-laptop: sync eeepc-laptop with asus_acpi In the default Eee PC distribution, there is a modified asus_acpi driver. eeepc-laptop is a cleaned version of this driver. Sync ASL enum and getter/setters with asus_acpi. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 6122af3743a48dddae19810626dd7c9c8e6c1df8 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Tue Jun 16 19:28:48 2009 +0000 asus_acpi: Deprecate in favor of asus-laptop asus-laptop have been merged in the kernel two years ago, it is now stable and used by most distribution instead of the old asus_acpi driver. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 76593d6fb0a51cb0d666f37d91a990e36c068365 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Tue Jun 16 19:28:47 2009 +0000 acpi4asus: update MAINTAINER and KConfig links The bug tracker have moved from sourceforge to http://dev.iksaif.net . The homepage of the project is now http://acpi4asus.sf.net with links to the new bug tracker. No change for the mailing list. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 116bf2e010a0600371aede450351973821dfd9e2 Author: Corentin Chary <corentincj@xxxxxxxxxx> Date: Tue Jun 16 19:28:46 2009 +0000 asus-laptop: platform dev as parent for led and backlight Makes asus-laptop platform device the parent device of backlight and led classes. With this patch, leds and backlight are also available in /sys/devices/platform/asus-laptop/ like thinkpad_acpi. Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit cede2cb6ee9b0ddaa3dbc9939418ff177a831600 Author: Pekka Enberg <penberg@xxxxxxxxxxxxxx> Date: Tue Jun 16 19:28:45 2009 +0000 eeepc-laptop: enable camera by default If we leave the camera disabled by default, userspace programs (e.g. Skype, Cheese) leave the user out in the cold saying that the machine "has no camera." Therefore, it's better to enable camera by default and let people who really don't want it just disable the thing. To reduce power usage you should enable USB autosuspend: echo -n auto > /sys/bus/usb/drivers/uvcvideo/*:*/../power/level Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx> Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 57599cc997b81a7c4f764693a7316886a72067fe Merge: fbe8cdd 586caae Author: Len Brown <len.brown@xxxxxxxxx> Date: Wed Jun 24 01:22:20 2009 -0400 Merge branch 'bjorn-notify' into release Conflicts: drivers/platform/x86/eeepc-laptop.c Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit fbe8cddd2d85979d273d7937a2b8a47498694d91 Merge: 4e8a237 e86435e 7fe2a6c 0705495 35a7c64 152a4e6 86e437f c8d72a5 7a04b84 ee1ca48 9eccbc2 7e275cc 7b768f0 8cb24c8 113b3a2 d737724 056c308 871043b Author: Len Brown <len.brown@xxxxxxxxx> Date: Wed Jun 24 01:19:50 2009 -0400 Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release commit 7a04b8491a077471a34938b8ca060c37220953be Author: Zhao Yakui <yakui.zhao@xxxxxxxxx> Date: Wed Jun 24 11:46:44 2009 +0800 ACPI: Rename ACPI processor device bus ID Some BIOS re-use the same processor bus id in different scope: \_SB.SCK0.CPU0 \_SB.SCK1.CPU0 But the (deprecated) /proc/acpi/ interface assumes the bus-id's are unique, resulting in an OOPS when the processor driver is loaded: WARNING: at fs/proc/generic.c:590 proc_register+0x148/0x180() Hardware name: Sunrise Ridge proc_dir_entry 'processor/CPU0' already registered Call Trace: [<ffffffff8023f7ef>] warn_slowpath+0xb1/0xe5 [<ffffffff8036243b>] ? ida_get_new_above+0x190/0x1b1 [<ffffffff803625a8>] ? idr_pre_get+0x5f/0x75 [<ffffffff8030b2f6>] proc_register+0x148/0x180 [<ffffffff8030b4ff>] proc_mkdir_mode+0x3d/0x52 [<ffffffff8030b525>] proc_mkdir+0x11/0x13 [<ffffffffa0014b89>] acpi_processor_start+0x755/0x9bc [processor] Rename the processor device bus id. And the new bus id will be generated as the following format: CPU+ CPU ID For example: If the cpu ID is 5, then the bus ID will be "CPU5". If the CPU ID is 10, then the bus ID will be "CPUA". Yes, this will change the directory names seen in /proc/acpi/processor/* on some systems. Before this patch, those directory names where totally arbitrary strings based on the interal AML device strings. http://bugzilla.kernel.org/show_bug.cgi?id=13612 Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit e86435eb91b2bff114c5a02e46e16ce21b647ebe Author: Peter Feuerer <peter@xxxxxxxx> Date: Sun Jun 21 18:53:03 2009 +0200 acerhdf: Acer Aspire One fan control Acerhdf is a driver for Acer Aspire One netbooks. It allows to access the temperature sensor and to control the fan. Signed-off-by: Peter Feuerer <peter@xxxxxxxx> Signed-off-by: Andreas Mohr <andi@xxxxxxxx> Signed-off-by: Borislav Petkov <petkovbb@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 152a4e630f7ffdd7ff64427c4ba488dc0bce76af Author: Zhang Rui <rui.zhang@xxxxxxxxx> Date: Mon Jun 22 11:31:18 2009 +0800 ACPI: video: DMI workaround broken Acer 7720 BIOS enabling display brightness http://bugzilla.kernel.org/show_bug.cgi?id=13121 Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c8d72a5e76988140bfdfd8722f2228d94e7fa10f Author: Zhang Rui <rui.zhang@xxxxxxxxx> Date: Mon Jun 22 11:31:16 2009 +0800 ACPI: run ACPI device hot removal in kacpi_hotplug_wq Now that new interface is available, convert to using it rather than creating a new kernel thread. Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 86e437f077c68112edcb6854ec036ed7e3f9a7f3 Author: Zhao Yakui <yakui.zhao@xxxxxxxxx> Date: Tue Jun 16 11:23:13 2009 +0800 ACPI: Add the reference count to avoid unloading ACPI video bus twice Sometimes both acpi video and i915 driver are compiled as modules. And there exists the strict dependency between the two drivers. The acpi video bus will be unloaded in course of unloading the i915 driver. If we unload the acpi video driver, then the kernel oops will be triggered. Add the reference count to avoid unloading the ACPI video bus twice. The reference count should be checked before unregistering the acpi video bus. If the reference count is already zero, it won't unregister it again. And after the acpi video bus is already unregistered, the reference count will be set to zero. http://bugzilla.kernel.org/show_bug.cgi?id=13396 Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> Acked-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 35a7c64fbc77bab4ca8ae477e8ab278ccd679ce2 Author: Zhang Rui <rui.zhang@xxxxxxxxx> Date: Mon Jun 22 11:31:17 2009 +0800 ACPI: DMI to disable Vista compatibility on some Sony laptops Linux claims Vista compatibility to the BIOS for a number of reasons, but this brings hard lockup on some Sony laptops. Disable Vista compatibility via DMI for these laptops unless we can figure out what Vista is doing for this platform. http://bugzilla.kernel.org/show_bug.cgi?id=12904 Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c02256be79a1a3557332ac51e653d574a2a7d2b5 Author: Zhang Rui <rui.zhang@xxxxxxxxx> Date: Tue Jun 23 10:20:29 2009 +0800 ACPI: fix a deadlock in hotplug case we used to run the hotplug code in keventd_wq. But when hot removing the ACPI battery device, power_supply_unregister invokes flush_scheduled_work. This causes a deadlock. i.e 1. When dock is unplugged, all the hotplug code is run on kevent_wq. 2. the hotplug code removes all the child devices of dock device. 3. removing the child device may invoke flush_scheduled_work 4. flush_scheduled_work waits until all the work on kevent_wq to be finished, while this will never be true because the hotplug code is running on keventd_wq... Introduce a new workqueue for hotplug in this patch. http://bugzilla.kernel.org/show_bug.cgi?id=13533 Tested-by: Paul Martin <pm@xxxxxxxxxx> Tested-by: Vojtech Gondzala <vojtech.gondzala@xxxxxxxxx> Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Reviewed-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 056c308d3e4859334b519033d62ef050f0e0e261 Author: Zhang Rui <rui.zhang@xxxxxxxxx> Date: Mon Jun 22 11:31:14 2009 +0800 Show the physical device node of backlight class device. Create symbol link from backlight class device to ACPI video device. More and more laptops are shipped with multiple ACPI video devices, while we export only one of them to userspace. With this patch applied, we can know which ACPI video device is used by "cat /sys/class/backlight/acpi_video0/device/path". Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 7b768f07dce463a054c9dd84862d15ccc3d2b712 Author: Pallipadi, Venkatesh <venkatesh.pallipadi@xxxxxxxxx> Date: Fri Jun 19 17:14:59 2009 -0700 ACPI: pdc init related memory leak with physical CPU hotplug arch_acpi_processor_cleanup_pdc() in x86 and ia64 results in memory allocated for _PDC objects that is never freed and will cause memory leak in case of physical CPU remove and add. Patch fixes the memory leak by freeing the objects soon after _PDC is evaluated. Reported-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 0705495d9010048e293013d9d129cf723363a0a8 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Jun 18 14:47:07 2009 -0600 ACPI: pci_root: remove unused dev/fn information We never use the PCI device & function number, so remove it to make it clear that it's not needed. Many PCI host bridges don't even appear in config space, so it's meaningless to look at stuff from _ADR, which doesn't exist in that case. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Reviewed-by: Alex Chiang <achiang@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c1aec8341627dad5d63cc24aa6746dc077f5b706 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Jun 18 14:47:02 2009 -0600 ACPI: pci_root: simplify list traversals Using list_for_each_entry() makes traversing the root list easier. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Reviewed-by: Alex Chiang <achiang@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit caf420c68afe01acd7c458ce40b85b3db5330ff5 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Jun 18 14:46:57 2009 -0600 ACPI: pci_root: use driver data rather than list lookup There's no need to search the list to find the acpi_pci_root structure. We saved it as device->driver_data when we added the device. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit f5eebbe119a861b5e4f5c67c886eab0937c686ed Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Jun 18 14:46:52 2009 -0600 ACPI: pci_root: simplify acpi_pci_root_add() control flow By looking up the segment & bus number earlier, we don't have to worry about cleaning up if it fails. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit fbe2b31b4b6dfa790cbc88e00631f3112c4fc54e Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Jun 18 14:46:47 2009 -0600 ACPI: pci_root: check _CRS, then _BBN for downstream bus number To find a host bridge's downstream bus number, we currently look at _BBN first. If _BBN returns a bus number we've already seen, we conclude that _BBN was wrong and look for a bus number in _CRS. However, the spec[1] (figure 5-5 and the example in sec 9.12.1) and an ACPI FAQ[2] suggest that the OS should use _CRS to discover the bus number range, and that _BBN is really intended to bootstrap _CRS methods that reference PCI opregions. This patch makes us always look at _CRS first. If _CRS doesn't supply a bus number, we look at _BBN. If _BBN doesn't exist, we default to zero. This makes the behavior consistent regardless of device discovery order. Previously, if A and B had duplicate _BBNs and we found A first, we'd only look at B's _CRS, whereas if we found B first, we'd only look at A's _CRS. I'm told that Windows discovers host bridge bus numbers using _CRS, so it should be fairly safe to rely on this BIOS functionality. This patch also removes two misleading messages: we printed the "Wrong _BBN value, reboot and use option 'pci=noacpi'" message before looking at _CRS, so we would likely find the bus number in _CRS, the system would work fine, and the user would be confused. The "PCI _CRS %d overrides _BBN 0" message incorrectly assumes _BBN was zero, and it's useless anyway because we print the segment/bus number a few lines later. References: [1] http://www.acpi.info/DOWNLOADS/ACPIspec30b.pdf [2] http://www.acpi.info/acpi_faq.htm _BBN/_CRS discussion http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWAR05005_WinHEC05.ppt (slide 17) http://bugzilla.kernel.org/show_bug.cgi?id=1662 ASUS PR-DLS http://bugzilla.kernel.org/show_bug.cgi?id=1127 ASUS PR-DLSW http://bugzilla.kernel.org/show_bug.cgi?id=1741 ASUS PR-DLS533 Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Reviewed-by: Alex Chiang <achiang@xxxxxx> CC: Shaohua Li <shaohua.li@xxxxxxxxx> CC: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d73772474f6ebbacbe820c31c0fa1cffa7160246 Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Thu Jun 18 00:40:17 2009 -0300 thinkpad-acpi: support the second fan on the X61 Support reading the tachometer of the auxiliary fan of a X60/X61. It was found out by sheer luck, that bit 0 of EC register 0x31 (formely HBRV) selects which fan is active for tachometer readings through EC 0x84/0x085: 0 for fan1, 1 for fan2. Many thanks to Christoph Kl??nter, to Whoopie, and to weasel, who helped confirm that behaviour. Fan control through EC HFSP applies to both fans equally, regardless of the state of bit 0 of EC 0x31. That matches the way the DSDT uses HFSP. In order to better support the secondary fan, export a second tachometer over hwmon, and add defensive measures to make sure we are reading the correct tachometer. Support for the second fan is whitelist-based, as I have not found anything obvious to look for in the DSDT to detect the presence of the second fan. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d7880f10c5d42ba182a97c1fd41d41d0b8837097 Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Thu Jun 18 00:40:16 2009 -0300 thinkpad-acpi: forbid the use of HBRV on Lenovo ThinkPads Forcing thinkpad-acpi to do EC-based brightness control (HBRV) on a X61 has very... interesting effects, instead of doing nothing (since it doesn't have EC-based backlight control), it causes "weirdness" in the fan tachometer readings, for example. This means the EC register that used to be HBRV has been reused by Lenovo for something else, but they didn't remove it from the DSDT. Make sure the documentation reflects this data, and forbid the user from forcing the driver to access HBRV on Lenovo ThinkPads. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 7e275cc4e8e20f82740bf40ae2f5695e9e35ff09 Author: Len Brown <len.brown@xxxxxxxxx> Date: Fri May 15 02:08:44 2009 -0400 ACPI: idle: rename lapic timer workaround routines cosmetic only. The lapic_timer workaround routines are specific to the lapic_timer, and are not acpi-generic. old: acpi_timer_check_state() acpi_propagate_timer_broadcast() acpi_state_timer_broadcast() new: lapic_timer_check_state() lapic_timer_propagate_broadcast() lapic_timer_state_broadcast() also, simplify the code in acpi_processor_power_verify() so that lapic_timer_check_state() is simply called from one place for all valid C-states, including C1. Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 586caae36cece718ff46b3a59b88af79e9f7a2e0 Author: Len Brown <len.brown@xxxxxxxxx> Date: Thu Jun 18 00:38:27 2009 -0400 ACPI: battery: fix CONFIG_ACPI_PROCFS_POWER=n build warning drivers/acpi/battery.c:841: warning: label ʽendʼ defined but not used Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit ff754e2e85557ed7244385f0f2053c80e8ac9948 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Fri May 22 11:43:56 2009 -0600 ACPI: use handle, not device, in system notification path This patch changes the global system notification path so it uses the acpi_handle, not the acpi_device. System notifications often deal with device presence and status change. In these cases, we may not have an acpi_device. For example, we may get a Device Check notification on an object that previously was not present. Since the object was not present, we would not have had an acpi_device for it. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit cdd5b8ca122cc4239375dee7fcdc658315c119e4 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Fri May 22 11:43:51 2009 -0600 ACPI: remove unused return values from Bus Check & Device Check handling Remove return values from acpi_bus_check_device() and acpi_bus_check_scope() since nobody looks at them. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit aa8a149c0cc822e3886eb85b95cb2f7d67e5b7e6 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Fri May 22 11:43:46 2009 -0600 ACPI: remove unused "status_changed" return value from Check Device handling Remove "status_changed" return from acpi_bus_check_device(). Nobody does anything useful based on its value. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 02c37bd8d0737c31caaed9a65bd7cb80aefb4c9a Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Fri May 22 11:43:41 2009 -0600 ACPI: simplify notification debug messages This replaces several messages that depend on the acpi_device struct with a single message that uses just the acpi_handle. We should be able to deal with notifications to objects that do not yet have an acpi_device struct. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d9b9bd7b4a579ff0340d29c2547b952a920639e6 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:36:03 2009 -0600 ACPI: eeepc-laptop: use .notify method instead of installing handler directly This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver relies on seeing system notify events, not device-specific ones (because it used ACPI_SYSTEM_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events, then just ignore any device events we get. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> CC: Corentin Chary <corentincj@xxxxxxxxxx> CC: acpi4asus-user@xxxxxxxxxxxxxxxxxxxxx CC: Matthew Garrett <mjg@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 352fa202c3320ac4844cd38fa72c7a91d7c4cfea Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:35:58 2009 -0600 ACPI: asus-acpi: use .notify method instead of installing handler directly This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver relies on seeing system notify events, not device-specific ones (because it used ACPI_SYSTEM_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events, then just ignore any device events we get. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> CC: Corentin Chary <corentincj@xxxxxxxxxx> CC: Karol Kozimor <sziwan@xxxxxxxxxxxxxxxxxxxxx> CC: acpi4asus-user@xxxxxxxxxxxxxxxxxxxxx Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 586ed1604fd6137cae1e8ede8143c3b8897306fd Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:35:53 2009 -0600 ACPI: asus-laptop: use .notify method instead of installing handler directly This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver apparently relies on seeing ALL notify events, not just device-specific ones (because it used ACPI_ALL_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> CC: Corentin Chary <corentincj@xxxxxxxxxx> CC: acpi4asus-user@xxxxxxxxxxxxxxxxxxxxx Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d94066910943837558d2a461c6766da981260bf0 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:35:47 2009 -0600 ACPI: battery: use .notify method instead of installing handler directly This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver apparently relies on seeing ALL notify events, not just device-specific ones (because it used ACPI_ALL_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> CC: Alexey Starikovskiy <alexey.y.starikovskiy@xxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 48fe112744d1ff2e899a6491633ac58a3229aabf Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:35:42 2009 -0600 ACPI: ac: use .notify method instead of installing handler directly This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver apparently relies on seeing ALL notify events, not just device-specific ones (because it used ACPI_ALL_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> CC: Alexey Starikovskiy <alexey.y.starikovskiy@xxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 6d2781310036a8d3fa2b590a6f83a298010fd64a Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu Apr 30 09:35:37 2009 -0600 ACPI: allow drivers to request both device and system notify events System notify events (0x00-0x7f) are common across all device types and should be handled in Linux/ACPI, not in drivers. However, some BIOSes use system notify events in device-specific ways that require the driver to be involved. This patch adds a ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag. When a driver sets this flag and supplies a .notify method, Linux/ACPI calls the .notify method for ALL notify events on the device, not just the device-specific (0x80-0xff) events. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 871043bc463e7d191e7b5b00436a8852921dd833 Author: Matthew Garrett <mjg@xxxxxxxxxx> Date: Mon Jun 1 15:25:45 2009 +0100 hp-wmi: Add support for reporting tablet state HP tablets send a WMI event when a tablet state change occurs, but use the same method as is used for reporting docking and undocking. The same query is used to obtain the state of the hardware. Bit 0 indicates the docking state, while bit 2 indicates the tablet state. This patch breaks these out and sends separate input events for tablet and dock state changes. An additional sysfs file is added to report the tablet state. Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit db18b040af6571a7eeed9e1adc2e92c9c87e4b1a Author: Matthew Garrett <mjg@xxxxxxxxxx> Date: Wed Jun 10 19:40:48 2009 +0000 dell-wmi: don't generate errors on empty messages There's no point in generating kernel messages if we didn't receive a parsable keyboard event - only do so if there appeared to be a scancode. Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 5cab0098171712a9fd51399b06181c8dfdebe9c9 Author: Mario Limonciello <mario_limonciello@xxxxxxxx> Date: Wed Jun 10 19:40:47 2009 +0000 dell-wmi: add additional keyboard events Upcoming Dell hardware will send more keyboard events via WMI. Add support for them. Signed-off-by: Mario Limonciello <mario_limonciello@xxxxxxxx> Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 75d71c40dde5a9474c09ee291df22d50a1215bef Author: Mario Limonciello <mario_limonciello@xxxxxxxx> Date: Wed Jun 10 19:40:46 2009 +0000 dell-wmi: mask off upper bytes of event response In debugging with some future machines that actually contain BIOS level support for dell-wmi, I've determined that the upper half of the data that comes back from wmi_get_event_data may sometimes contain extra information that isn't currently relevant when pulling scan codes out of the data. This causes dell-wmi to improperly respond to these events. Signed-off-by: Mario Limonciello <mario_limonciello@xxxxxxxx> Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 7fe2a6c275a5bcec52fb3ef643daaf8265b7af0d Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:56:05 2009 +0000 ACPI: kill acpi_get_physical_pci_device() acpi_get_pci_dev() is (hopefully) better, and all callers have been converted, so let's get rid of this duplicated functionality. Cc: Thomas Renninger <trenn@xxxxxxx> Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 1e4cffe78e1decd937c7b78410eec87da6b87954 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:56:00 2009 +0000 ACPI: video: convert to acpi_get_pci_dev Now that acpi_get_pci_dev is available, let's use it instead of acpi_get_physical_pci_device() Cc: Thomas Renninger <trenn@xxxxxxx> Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 80ffdedf6020a77adcd06c01cfe6c488312b28f8 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:55 2009 +0000 ACPI: kill acpi_get_pci_id acpi_get_pci_dev() is better, and all callers have been converted, so eliminate acpi_get_pci_id(). Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d6aa484c1c0cd39ff3a42f4050b55d2a5b285ef5 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:50 2009 +0000 PCI Hotplug: acpiphp: convert to acpi_get_pci_dev Now that acpi_get_pci_dev is available, let's use it instead of acpi_get_pci_id. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Acked-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 97719a8726fe8d3ea12a85fbf4f514a915ba30ec Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:45 2009 +0000 ACPI: acpi_pci_unbind should clean up properly after acpi_pci_bind In acpi_pci_bind, we set device->ops.bind and device->ops.unbind, but never clear them out. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d9efae3688addb15994c9ad9761dada6f988bc14 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:40 2009 +0000 ACPI: simplify acpi_pci_irq_del_prt() API There is no need to pass a segment/bus tuple to this API, as the callsite always has a struct pci_bus. We can derive segment/bus from the struct pci_bus, so let's take this opportunit to simplify the API and make life easier for the callers. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 859a3f86ca83346f4097e956d0b27d96aa7a1cff Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:35 2009 +0000 ACPI: simplify acpi_pci_irq_add_prt() API A PCI domain cannot change as you descend down subordinate buses, which makes the 'segment' argument to acpi_pci_irq_add_prt() useless. Change the interface to take a struct pci_bus *, from whence we can derive the bus number and segment. Reducing the number of arguments makes life simpler for callers. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 499650de6906722184b639989b47227a362b62f8 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:30 2009 +0000 ACPI: eviscerate pci_bind.c Now that we can dynamically convert an ACPI CA handle to a struct pci_dev at runtime, there's no need to statically bind them during boot. acpi_pci_bind/unbind are vastly simplified, and are only used to evaluate _PRT methods on P2P bridges and non-bridge children. This patch also changes the time-space tradeoff ever so slightly. Looking up the ACPI-PCI binding is never in the performance path, and by eliminating this caching, we save 24 bytes for each _ADR device in the ACPI namespace. This patch lays further groundwork to eventually eliminate the acpi_driver_ops.bind callback. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c22d7f5a389dad15de448b142f44e4000b3426f0 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:25 2009 +0000 ACPI: rearrange acpi_pci_bind/acpi_pci_unbind in pci_bind.c This is a pure code movement patch that does $subject in order to make the following patch easier to read and review. No functional change. Signed-off-by: Alex Chiang <achiang@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 2f7bbceb5b6aa938024bb4dad93c410fa59ed3b9 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:20 2009 +0000 ACPI: Introduce acpi_get_pci_dev() Convert an ACPI CA handle to a struct pci_dev. Performing this lookup dynamically allows us to get rid of the ACPI-PCI binding code, which: - eliminates struct acpi_device vs struct pci_dev lifetime issues - lays more groundwork for eliminating .start from acpi_device_ops and thus simplifying ACPI drivers - whacks out a lot of code This change lays the groundwork for eliminating much of pci_bind.c. Although pci_root.c may not be the most logical place for this change, putting it here saves us from having to export acpi_pci_find_root. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 275582031f9b3597a1b973f3ff617adfe639faa2 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:14 2009 +0000 ACPI: Introduce acpi_is_root_bridge() Returns whether an ACPI CA node is a PCI root bridge or not. This API is generically useful, and shouldn't just be a hotplug function. The implementation becomes much simpler as well. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit ce597bb42aa84bc73db80509b7c37e7fbc0b75c4 Author: Alexander Chiang <achiang@xxxxxx> Date: Wed Jun 10 19:55:09 2009 +0000 ACPI: make acpi_pci_bind() static acpi_pci_root_add() explicitly assigns device->ops.bind, and later calls acpi_pci_bind_root(), which also does the same thing. We don't need to repeat ourselves; removing the explicit assignment allows us to make acpi_pci_bind() static. Signed-off-by: Alex Chiang <achiang@xxxxxx> Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 0c526d96a5bd86c70507b7d9372e6a26a1e3ea43 Author: Alex Chiang <achiang@xxxxxx> Date: Thu May 14 08:31:37 2009 -0600 ACPI: clean up whitespace in drivers/acpi/scan.c Align labels in column 0, adjust spacing in 'if' statements, eliminate trailing and superfluous whitespaces. Signed-off-by: Alex Chiang <achiang@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 8b12b922ed5b9b6bfc345d3d6c6de56b2982af7f Author: Alex Chiang <achiang@xxxxxx> Date: Thu May 14 08:31:32 2009 -0600 ACPI: acpi_device_register() should call device_register() There is no apparent reason for acpi_device_register() to manually register a new device in two steps (initialize then add). Just call device_register() directly. Signed-off-by: Alex Chiang <achiang@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 8bf3d4c535c2b9689c2979b281c24e9f59c2f4ad Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Sat May 30 13:25:09 2009 -0300 thinkpad-acpi: silence bogus warning when ACPI video is disabled Make use of acpi_video_backlight_support() also in hotkey_init, to make sure this doesn't happen: thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver thinkpad_acpi: Disabling thinkpad-acpi brightness events by default... thinkpad_acpi: Standard ACPI backlight interface not available, thinkpad_acpi native brightness control enabled thinkpad_acpi: detected a 16-level brightness capable ThinkPad Note that this is purely cosmetic, there is absolutely _no_ change in behaviour. Those events are sometimes enabled at runtime by userspace, but the driver never enables them by itself unless someone messed with the default keymaps. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Reported-by: Jochen Schulz <jrschulz@xxxxxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit f21179a47ff8d1046a61c1cf5920244997a4a7bb Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Sat May 30 13:25:08 2009 -0300 thinkpad-acpi: enhance led support Add support for extra LEDs on recent ThinkPads, and avoid registering with the led class the LEDs which are not available for a given ThinkPad model. All non-restricted LEDs are always available through the procfs interface, as the firmware doesn't care if an attempt is made to access an invalid LED. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 60201732f03c1231742e5872abe55a3bf59849a5 Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Sat May 30 13:25:07 2009 -0300 thinkpad-acpi: fix BEEP ACPI handler warnings Some ThinkPads want two arguments for BEEP, while others want just one, causing ACPICA to log warnings like this: ACPI Warning (nseval-0177): Excess arguments - method [BEEP] needs 1, found 2 [20080926] Deal with it. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 7d95a3d564901e88ed42810f054e579874151999 Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Sat May 30 13:25:06 2009 -0300 thinkpad-acpi: add quirklist engine Add a quirklist engine suitable for matching ThinkPad firmware, and change the code to use it. Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 050df107c408a3df048524b3783a5fc6d4dccfdb Author: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Date: Sat May 30 13:25:05 2009 -0300 thinkpad-acpi: store fw version with strict checking Extend the thinkpad model and firmware identification data with the release serial number for the BIOS and firmware (when available), as that is easier to parse and compare than the version strings. We're going to greatly extend the use of the ThinkPad DMI data through quirk lists, so it is best to be quite strict and make sure what we get from DMI is exactly what we expect, otherwise quirk matching may result in quite insane things. IBM (and Lenovo, at least for the ThinkPad line) uses this schema for firmware versioning and model: Firmware model: Two digits, [0-9A-Z] Firmware version: AABBCCDD, where AA = firmware model, see above BB = "ET" for BIOS, "HT" for EC CC = release version, two digits, [0-9A-Z], "00" < "09" < "0A" < "10" < "A0" < "ZZ" DD = "WW" Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit ab46feae865c5b96dbf5e261be8638165932bfb1 Author: Len Brown <len.brown@xxxxxxxxx> Date: Fri Jun 12 20:47:50 2009 -0400 ACPI: #define acpi_disabled 1 for CONFIG_ACPI=n SFI will need to test acpi_disabled no matter the value of CONFIG_ACPI. Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 4a7a16dc061e4c57bf288150f51bd4c2ace33723 Author: Len Brown <len.brown@xxxxxxxxx> Date: Fri Jun 12 20:42:08 2009 -0400 ACPI: move declaration acpi_early_init() to acpi.h Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c4bf2f372db09ef8d16a25a60d523bfa1c50f7b5 Author: Len Brown <len.brown@xxxxxxxxx> Date: Thu Jun 11 23:53:55 2009 -0400 ACPI, PCI, x86: move MCFG parsing routine from ACPI to PCI file Move arch/x86/kernel/acpi/boot.c: acpi_parse_mcfg() to arch/x86/pci/mmconfig-shared.c: pci_parse_mcfg() where it is used, and make it static. Move associated globals and helper routine with it. No functional change. This code move is in preparation for SFI support, which will allow the PCI code to find the MCFG table on systems which do not support ACPI. Signed-off-by: Len Brown <len.brown@xxxxxxxxx> Acked-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> commit 24c5c4c2f506bf87ef2343669fb892c944c3fdde Author: Zhao Yakui <yakui.zhao@xxxxxxxxx> Date: Thu May 21 16:25:35 2009 +0800 ACPI: increase size of acpi_bus_id[] Previously [5], now [8]. sprintf(acpi_device_bid(device), "CPU%X", cpu_id) now looks better on systems with more than 0xFF processors. Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit d023e49118b9c93bbab9aaf798b25f78f1a5803c Author: Olivier Berger <oberger@xxxxxxxxxxx> Date: Thu May 21 16:07:38 2009 +0200 ACPI: Remove Asus P4B266 from blacklist See http://marc.info/?l=linux-acpi&m=124068823904429&w=2 for discussion Signed-off-by: Olivier Berger <oberger@xxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit c636f753b5b943f08fb3490e7f1a9b47aa5cc7d3 Author: Len Brown <len.brown@xxxxxxxxx> Date: Tue May 19 23:47:38 2009 -0400 ACPI: delete dead acpi_disabled setting code Testing CONFIG_ACPI inside boot.c is a waste of text, since boot.c is built only when CONFIG_ACPI=y Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit ee1ca48fae7e575d5e399d4fdcfe0afc1212a64c Author: Pallipadi, Venkatesh <venkatesh.pallipadi@xxxxxxxxx> Date: Thu May 21 17:09:10 2009 -0700 ACPI: Disable ARB_DISABLE on platforms where it is not needed ARB_DISABLE is a NOP on all of the recent Intel platforms. For such platforms, reduce contention on c3_lock by skipping the fake ARB_DISABLE. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 113b3a2b901573961509e81a28e9546cf9defef0 Author: Len Brown <len.brown@xxxxxxxxx> Date: Wed May 27 21:46:11 2009 -0400 ACPI: delete acpi.power_nocheck from kernel-parameters.txt Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit bdf43bbf2e19952d82995a50e00cb4b66afa4f0c Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu May 21 17:28:53 2009 -0600 ACPI: don't check power state after _ON/_OFF We used to evaluate _STA to check the power state of a device after running _ON or _OFF. But as far as I can tell, there's no benefit to evaluating _STA, and sometimes we trip over bugs when BIOSes don't implement _STA correctly. Yakui says Windows XP doesn't evaluate _STA during power transition. So let's skip it in Linux, too. It's conceivable that we'll need to check _STA in the future for some reason, but until we do, I don't see a reason to clutter this code path. References: http://bugzilla.kernel.org/show_bug.cgi?id=13243 http://marc.info/?l=linux-acpi&m=124166053803753&w=2 http://marc.info/?l=linux-acpi&m=124175761408256&w=2 http://marc.info/?l=linux-acpi&m=124210593114061&w=2 Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Acked-by: Matthew Garrett <mjg59@xxxxxxxxxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 8cb24c8fd70ea8431744de1ca0ca34ab45fbbdaa Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Thu May 21 15:49:59 2009 -0600 PNPACPI: parse Extended Address Space Descriptors Extended Address Space Descriptors are new in ACPI 3.0 and allow the BIOS to communicate device resource cacheability attributes (write-back, write-through, uncacheable, etc) to the OS. Previously, PNPACPI ignored these descriptors, so if a BIOS used them, a device could be responding at addresses the OS doesn't know about. This patch adds support for these descriptors in _CRS and _PRS. We don't attempt to encode them for _SRS (just like we don't attempt to encode the existing 16-, 32-, and 64-bit Address Space Descriptors). Unfortunately, I don't have a way to test this. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 9eccbc2f67efd0d19c47f40182abf2965c287add Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Mon Apr 27 16:33:46 2009 -0600 ACPI: processor: move device _HID into driver The ACPI0007 _HID used for processor "Device" objects in the namespace is not needed outside the processor driver, so move it there. Also, the #define is only used once, so just remove it and hard-code "ACPI0007". Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit 6cc73b4806c07b4207780f6d85c456b4c5b29d71 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Mon Apr 27 16:33:41 2009 -0600 ACPI: processor: check for synthetic _HID, default to "Device" declaration This patch inverts the logic that distinguishes "Processor" statements from "Device" statements, so we now check explicitly for "Processor" and default to "Device". This removes the only real use of ACPI_PROCESSOR_HID, so we can then remove the #define. It also has the theoretical advantage that if a new processor _HID were ever added, we wouldn't have to change the code here. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx> commit b9417f84e17b93a6976a8a88b38bf9567975cb38 Author: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Date: Mon Apr 27 16:33:36 2009 -0600 ACPI: use LNXCPU, not ACPI_CPU, for Linux-specific processor _HID ACPI_PROCESSOR_OBJECT_HID is a synthetic _HID that Linux generates for "Processor" definitions. Unlike "Device" definitions, "Processor" definitions do not have a _HID in the namespace, so we generate a fake _HID. By convention, all these fake _HIDs begin with "LNX". This does change the user-visible _HID for "Processor" objects -- previously, we used "ACPI_CPU" and this changes that to "LNXCPU", which starts with "LNX" as do all the other made-up _HIDs. This change is visible in processor filenames and "hid" files under /sys/devices/LNXSYSTM:00/. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Len Brown <len.brown@xxxxxxxxx>