|author||Henrique de Moraes Holschuh <firstname.lastname@example.org>||2009-12-15 21:51:08 -0200|
|committer||Len Brown <email@example.com>||2009-12-15 23:57:17 -0500|
thinkpad-acpi: volume subdriver rewrite
I don't trust the coupled EC writes and SMI calls the current volume control code does very much, although it is exactly what the IBM DSDTs seem to do (they never do more than a single step though). Change the driver to stop issuing SMIs, and just drive the EC directly to the desired level (DSDTs seem to confirm this will work even on very old models like the 570 and 600e/x). We checkpoint directly to NVRAM (this can be turned off) at suspend/shutdown/driver unload, which from what I can see in tbp, should also work on every ThinkPad. Signed-off-by: Henrique de Moraes Holschuh <firstname.lastname@example.org> Cc: Lorne Applebaum <email@example.com> Cc: Matthew Garrett <firstname.lastname@example.org> Signed-off-by: Len Brown <email@example.com>
Diffstat (limited to 'Documentation/laptops')
1 files changed, 17 insertions, 5 deletions
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index f5056c7fb5be..96687d0106a9 100644
@@ -1092,22 +1092,33 @@ WARNING:
its level up and down at every change.
-Volume control -- /proc/acpi/ibm/volume
-This feature allows volume control on ThinkPad models which don't have
-a hardware volume knob. The available commands are:
+This feature allows volume control on ThinkPad models with a digital
+volume knob, as well as mute/unmute control. The available commands are:
echo up >/proc/acpi/ibm/volume
echo down >/proc/acpi/ibm/volume
echo mute >/proc/acpi/ibm/volume
echo 'level <level>' >/proc/acpi/ibm/volume
-The <level> number range is 0 to 15 although not all of them may be
+The <level> number range is 0 to 14 although not all of them may be
distinct. The unmute the volume after the mute command, use either the
up or down command (the level command will not unmute the volume).
The current volume level and mute state is shown in the file.
+There are two strategies for volume control. To select which one
+should be used, use the volume_mode module parameter: volume_mode=1
+selects EC mode, and volume_mode=3 selects EC mode with NVRAM backing
+(so that volume/mute changes are remembered across shutdown/reboot).
+The driver will operate in volume_mode=3 by default. If that does not
+work well on your ThinkPad model, please report this to
The ALSA mixer interface to this feature is still missing, but patches
to add it exist. That problem should be addressed in the not so
@@ -1376,6 +1387,7 @@ to enable more than one output class, just add their values.
0x0008 HKEY event interface, hotkeys
0x0010 Fan control
0x0020 Backlight brightness
+ 0x0040 Audio mixer/volume control
There is also a kernel build option to enable more debugging
information, which may be necessary to debug driver problems.