Mailinglist Archive: opensuse-kernel (129 mails)

< Previous Next >
Re: [opensuse-kernel] Calling acpi methods from userspace ?
On Tuesday, December 13, 2011, Thomas Renninger wrote:
On Monday, December 12, 2011 04:35:33 PM Cristian Rodríguez wrote:
Hi:

This is the second part of the xps15z saga.. but will anyways affect a
lot of users regardless whatever laptop model used..

This box has an integrated NVIDIA "optimus"
http://en.wikipedia.org/wiki/Nvidia_Optimus , which has no support in
linux, I can certainly live just fine with the intel GPU alone..

I couldn't care less about this thingy, however, the nvidia device

01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff)

remains "on" and is a power hog, taking at least 1 hour of
battery..there are all sorts of hacks outside to simple disable it.

This particular one works for me:

http://linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-switch-onoff.html

however it is an out of tree kernel module and looks fairly hackish, is
there any way to send acpi commands without using this "acpi_call"
kernel module ?
No, only indirectly if a /sys file is provided to enable/disable a device
or similar.

I could imagine it's not possible to trigger these or most of them in
any way right now. Best is to discuss this on these lists:
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
linux-acpi@xxxxxxxxxxxxxxx

My idea is to create a package that pulled in, just disables the card in
the meanwhile someone hacks support for this devices...
You should be able to create a kmp package via the build service.
But this will never show up mainline or in the distribution, not sure
it's worth it.
Might be worth to export a sysfs file for devices with an _OFF/_ON and
other pm functions or for power resource devices.

Not really. Power resources may be shared and you have to use reference
counting in those cases, so it's better if that stays in the kernel.
Really.

These hardcoded ACPI method paths will only work on very specific
platforms. The names may look totally different on another machine/BIOS
with the same HW.

Been there, done that, doesn't work.

I expect someone tried that already..., I would try to run the latest
Nvidia binary driver.
On latest graphics cards the vendor provided drivers often
provide functionality which takes some to time to show up in the
opensource/kernel ones.

The solution is to provide a command line switch causing the kernel to
power off every PCI device without a driver if set.

This cannot be set by default, because some devices don't survive
that and won't turn on when the driver is loaded, but there's a chance
it will work on some systems. Also there might be a per-device opt-out
switch and a command line switch enabling the entire feature for more
fine-grained control, if necessary.

Thanks,
Rafael
--
To unsubscribe, e-mail: opensuse-kernel+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-kernel+owner@xxxxxxxxxxxx

< Previous Next >