summaryrefslogtreecommitdiffstats
path: root/drivers/acpi
Commit message (Collapse)AuthorAgeFilesLines
* ACPI: disable lower idle C-states across suspend/resumeThomas Gleixner2007-09-222-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device_suspend() calls ACPI suspend functions, which seems to have undesired side effects on lower idle C-states. It took me some time to realize that especially the VAIO BIOSes (both Andrews jinxed UP and my elfstruck SMP one) show this effect. I'm quite sure that other bug reports against suspend/resume about turning the system into a brick have the same root cause. After fishing in the dark for quite some time, I realized that removing the ACPI processor module before suspend (this removes the lower C-state functionality) made the problem disappear. Interestingly enough the propability of having a bricked box is influenced by various factors (interrupts, size of the ram image, ...). Even adding a bunch of printks in the wrong places made the problem go away. The previous periodic tick implementation simply pampered over the problem, which explains why the dyntick / clockevents changes made this more prominent. We avoid complex functionality during the boot process and we have to do the same during suspend/resume. It is a similar scenario and equaly fragile. Add suspend / resume functions to the ACPI processor code and disable the lower idle C-states across suspend/resume. Fall back to the default idle implementation (halt) instead. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Andrew Morton <akpm@linux-foundation.org> Cc: Len Brown <lenb@kernel.org> Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Cc: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Pull suspend.now into release branchLen Brown2007-09-213-82/+52
|\
| * ACPI: suspend: consolidate handling of Sx states addendumFrans Pop2007-09-211-2/+4
| | | | | | | | | | | | | | | | | | Make the S0 state be always reported as supported Signed-off: Frans Pop <elendil@planet.nl> Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
| * ACPI: suspend: consolidate handling of Sx states.Alexey Starikovskiy2007-09-203-81/+49
| | | | | | | | | | | | | | | | | | | | Recent changes to sleep initialization in ACPI dropped reporting of supported Sx states above S3. Fix that and also move S5 init into same file as other Sx. The only functional change is adding printk() for S4 and S5 cases. Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
* | ACPI: video: remove dmesg spamMaik Broemme2007-09-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i am actually heavily using the ACPI video extension for my Thinkpad X61 Tablet. I have bound the input events triggered by the brightness up/down keys to a simple echo <value> > /sys/class/backlight/acpi_video1/brightness but everytime the event is triggered and acpi_video_device_lcd_set_level() is called i got a notificication in my kernel log like: set_level status: 0 set_level status: 0 set_level status: 0 set_level status: 0 ... Signed-off-by: Maik Broemme <mbroemme@plusserver.de> Signed-off-by: Len Brown <len.brown@intel.com>
* | ACPI: video: _DOS=0 by default to prevent hotkey hangZhang Rui2007-09-181-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | In the past, the Linux/ACPI video driver invoked _DOS (Display Output Switch) with the parameter 1 to tell the BIOS to switch the video output display for us. But this conflicts with Linux native graphics drivers, and can cause all sorts of issues, including hanging the system. http://bugzilla.kernel.org/show_bug.cgi?id=6001 Here we change the Linux default to evaluate _DOS=0, which tells the BIOS to simply send us a hotkey event and not touch the graphics hardware. The acpi video driver sends the display switch hotkey event up through the intput layer, and X can interpret that and use its native graphics driver to switch the display. For the case where Linux has no native graphics driver running, or the graphics driver doesn't know how to switch video and the BIOS (safely) does, the previous behaviour can be restored with: # echo 1 > /proc/acpi/video/*/DOS Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* Pull misc into release branchLen Brown2007-09-172-6/+6
|\
| * ACPI: fix CONFIG_NET=n acpi_bus_generate_netlink_event build failureHenrique de Moraes Holschuh2007-09-031-1/+1
| | | | | | | | | | | | | | | | drivers/acpi/event.c:243: error: 'acpi_generate_netlink_event' undeclared here (not in a function) Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Len Brown <len.brown@intel.com>
| * ACPI: (more) delete CONFIG_ACPI_PROCFS_SLEEP (again)Christian Borntraeger2007-08-281-5/+5
| | | | | | | | | | | | | | | | | | Commit 2bcf9dddeb8e79a4ba55bf191533f70f39ce ('ACPI: delete CONFIG_ACPI_PROCFS_SLEEP (again)') was incomplete. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | ACPI: Reevaluate C/P/T states when a cpu becomes onlineVenkatesh Pallipadi2007-09-161-0/+21
| | | | | | | | | | | | | | | | | | | | Reevaluate C/P/T states when a cpu becomes online. This avoids the caching of the broadcast information in the clockevents layer. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Len Brown <len.brown@intel.com>
* | ACPI: EC: Check if boot_ec was really found in DSDTAlexey Starikovskiy2007-08-301-1/+2
|/ | | | | | | | | | acpi_get_devices() returns success if it did not find any device. We have to check for this case. Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Tested-by: Daniel Ritz <daniel.ritz-ml@swissonline.ch> Tested-by: Luca <kronos.it@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* reverse CONFIG_ACPI_PROC_EVENT defaultHugh Dickins2007-08-271-1/+5
| | | | | | | | | | | | | | | | Sigh. Again an ACPI assault on the Thinkpad's Fn+F4 to suspend to RAM. The default and text for CONFIG_THINKPAD_ACPI_INPUT_ENABLED were fixed in -rc3, but now commit 14e04fb34ffa82ee61ae69f98d8fca12d2e8e31c ("ACPI: Schedule /proc/acpi/event for removal") introduces the ACPI_PROC_EVENT config entry, and defaults it to 'n' to disable it again. Change default to y, and add comment to make it clearer that n is for future distros. Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Len Brown <len.brown@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Pull bugzilla-8798 into release branchLen Brown2007-08-251-0/+8
|\
| * ACPI: work around duplicate name "VID" problem on T61Zhang Rui2007-08-251-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This can only fix the problem that more than one video bus device have the same AML name "VID". ie. the proc I/F for the second "VID" video bus device is located under /proc/acpi/video/VID1/... As this is really rare and the ACPI proc I/F is a legacy feature that we are planning to remove. We won't provide a generic solution for this problem. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | Pull events into release branchLen Brown2007-08-2511-33/+83
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/acpi/video.c Signed-off-by: Len Brown <len.brown@intel.com>
| * | ACPI: fix ia64 allnoconfig buildLen Brown2007-08-241-2/+3
| | | | | | | | | | | | | | | | | | | | | drivers/acpi/event.c:238: error: conflicting types for ‘acpi_bus_generate_netlink_event’ include/acpi/acpi_bus.h:324: error: previous declaration of ‘acpi_bus_generate_netlink_event’ was here Signed-off-by: Len Brown <len.brown@intel.com>
| * | ACPI: Schedule /proc/acpi/event for removalLen Brown2007-08-2311-19/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Schedule /proc/acpi/event for removal in 6 months. Re-name acpi_bus_generate_event() to acpi_bus_generate_proc_event() to make sure there is no confusion that it is for /proc/acpi/event only. Add CONFIG_ACPI_PROC_EVENT to allow removal of /proc/acpi/event. There is no functional change if CONFIG_ACPI_PROC_EVENT=y Signed-off-by: Len Brown <len.brown@intel.com>
| * | ACPI: don't duplicate input events on netlinkZhang Rui2007-08-237-8/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous events patch added a netlink event for every user of the legacy /proc/acpi/event interface. However, some users of /proc/acpi/event are really input events, and they already report their events via the input layer. Introduce a new interface, acpi_bus_generate_netlink_event(), which is explicitly called by devices that want to repoprt events via netlink. This allows the input-like events to opt-out of generating netlink events. In summary: events that are sent via netlink: ac/battery/sbs thermal processor thinkpad_acpi dock/bay events that are sent via input layer: button video hotkey thinkpad_acpi hotkey asus_acpi/asus-laptop hotkey sonypi/sonylaptop Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Pull misc into release branchLen Brown2007-08-254-4/+6
|\ \ \
| * | | ACPI: add dump_stack() to trace acpi_format_exception programming errorsAndrew Morton2007-08-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Dump the stack so we can find the secretive caller to acpi_format_exception(). Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | make drivers/acpi/scan.c:create_modalias() staticAdrian Bunk2007-08-251-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes the needlessly global create_modalias() static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI: Fix a warning of discarding qualifiers from pointer target typeAl Viro2007-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drivers/acpi/ec.c: In function `acpi_ec_ecdt_probe': drivers/acpi/ec.c:873: warning: passing arg 1 of `acpi_get_devices' discards qualifiers from pointer target type Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI: "ACPI handle has no context!" should be KERN_DEBUGShaohua Li2007-08-251-1/+1
| | |/ | |/| | | | | | | | | | Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Pull suspend into release branchLen Brown2007-08-251-8/+11
|\ \ \
| * | | ACPI: enable GPEs before calling _WAK on resumeThomas Renninger2007-08-241-8/+11
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems it's required to enable GPEs before _WAK. E.g. X60 triggers a LID related GPE instead of doing a Notify in WAK. Now the GPE reaches the kernel and the Notify for LID status change gets thrown from there. Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Pull video into release branchLen Brown2007-08-241-4/+87
|\ \ \
| * | | ACPI video hotkey: export missing ACPI video hotkey events via input layerLuming Yu2007-08-241-1/+88
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Yu Luming <luming.yu@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI video hotkey: remove invalid events handler for video output devicesZhang Rui2007-08-231-4/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both ACPI_VIDEO_NOTIFY_SWITCH and ACPI_VIDEO_NOTIFY_PROBE are valid for video bus devices only. Actually ACPI video output device should never be notified for a output device switch/probe. ACPI bus devices notify handler already has the code to handle these kinds of events. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Pull thermal into release branchLen Brown2007-08-241-7/+40
|\ \ \
| * | | ACPI: /proc/acpi/thermal_zone trip points are now read-only, mark them as suchPavel Machek2007-08-241-2/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI: thermal: set "thermal.nocrt" via DMI on Gigabyte GA-7ZXLen Brown2007-08-201-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This system BIOS sets a critical temperature to 65C, which is too low. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=155496 Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI: thermal: create "thermal.crt=C" bootparamLen Brown2007-08-141-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some hardware will malfunction at a temperature below the BIOS provided critical shutdown threshold. This hook allows moving the critical trip points down to a temperature which provokes a graceful shutdown before the hardware malfunction. http://bugzilla.kernel.org/show_bug.cgi?id=8884 WARNING: A trip-point override will not get noticed until the system delivers a temperature change event, or unless thermal zone polling is enabled. eg. "thermal.tzp=10" Signed-off-by: Len Brown <len.brown@intel.com>
| * | | ACPI: thermal: clean up MODULE_PARM_DESC newlinesLen Brown2007-08-141-5/+5
| | | | | | | | | | | | | | | | | | | | Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | | | Pull ec into release branchLen Brown2007-08-241-16/+31
|\ \ \ \
| * | | | ACPI: EC: revert fix for bugzilla 8709Alexey Starikovskiy2007-08-241-16/+31
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | This is a manual revert of 7c010de7506954e973abfab5c5999c5a97f7a73e, a fix that broke another ASUS in 8909 and 8919. Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
* | | | Pull bugzilla-8630 into release branchLen Brown2007-08-241-0/+71
|\ \ \ \
| * | | | ACPI: Validate XSDT, use RSDT if XSDT failsZhao Yakui2007-08-241-0/+71
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ACPI 1.0 used an RSDT with 32-bit physical addresses. ACPI 2.0 adds an XSDT with 32-bit physical addresses. An ACPI 2.0 aware OS is supposed to use the XSDT (when present) instead of the RSDT. However, several systems have failed because the XSDT contains NULL entries -- while it is missing pointers to needed tables, such as SSDTs. When we find an XSDT with NULL entries, discard it and use the ACPI 1.0 RSDT instead. http://bugzilla.kernel.org/show_bug.cgi?id=8630 Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | | | Pull battery into release branchLen Brown2007-08-241-17/+30
|\ \ \ \ | |_|_|/ |/| | |
| * | | Revert "ACPI: Battery: Synchronize battery operations."Len Brown2007-08-151-17/+30
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3bd92ba19a89fe61ebf58804f9c8675372f50c1c. It is no longer necessary, and it opens up a race. Acked-by: Vladimir Lebedev <vladimir.p.lebedev@gmail.com> Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
* / / sched: sched_clock_idle_[sleep|wakeup]_event()Ingo Molnar2007-08-231-7/+25
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | construct a more or less wall-clock time out of sched_clock(), by using ACPI-idle's existing knowledge about how much time we spent idling. This allows the rq clock to work around TSC-stops-in-C2, TSC-gets-corrupted-in-C3 type of problems. ( Besides the scheduler's statistics this also benefits blktrace and printk-timestamps as well. ) Furthermore, the precise before-C2/C3-sleep and after-C2/C3-wakeup callbacks allow the scheduler to get out the most of the period where the CPU has a reliable TSC. This results in slightly more precise task statistics. the ACPI bits were acked by Len. Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Len Brown <len.brown@intel.com>
* / ACPI: EC: Fix "no battery" regressionAlexey Starikovskiy2007-08-141-0/+17
|/ | | | | | | | | Restore deleted call to register query methods. http://bugzilla.kernel.org/show_bug.cgi?id=8886 Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
* Pull sbs into release branchLen Brown2007-08-121-5/+1
|\
| * ACPI: sbs: remove dead codeAdrian Bunk2007-08-031-5/+1
| | | | | | | | | | | | | | | | | | Remove dead code spotted by the Coverity checker. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
* | Pull processor into release branchLen Brown2007-08-122-7/+13
|\ \
| * | acpi-cpufreq: Fix some x86/x86-64 acpi-cpufreq driver issuesFenghua Yu2007-08-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch addresses some issues in x86/x86-64 acpi-cpufreq driver: 1. Current memory allocation for acpi_perf_data is actually open-coded alloc_percpu(). The patch defines and handles acpi_perf_data as percpu data. The code will be cleaner and easier to be maintained with this change. 2. Won't load driver in acpi_cpufreq_early_init() failure case. 3. Add __init for acpi_cpufreq_early_init(). Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Cc: Dave Jones <davej@codemonkey.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Len Brown <len.brown@intel.com>
| * | ACPI: fix "Time Problems with 2.6.23-rc1-gf695baf2"Venki Pallipadi2007-08-071-4/+10
| |/ | | | | | | | | | | | | Enable C3 without bm control only for CST based C3. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* | Pull fluff into release branchLen Brown2007-08-121-1/+1
|\ \
| * | ACPI: staticAdrian Bunk2007-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Make the needlessly global "acpi_event_seqnum" static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Pull ec into release branchLen Brown2007-08-121-68/+45
|\ \ \
| * | | ACPI EC: remove potential deadlock from ECAlexey Starikovskiy2007-08-111-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Len Brown <len.brown@intel.com>