Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
7458bbd0
Commit
7458bbd0
authored
Dec 16, 2009
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'thinkpad-2.6.33' into release
parents
1667e399
5d2eb14d
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
963 additions
and
329 deletions
+963
-329
Documentation/laptops/thinkpad-acpi.txt
Documentation/laptops/thinkpad-acpi.txt
+64
-50
drivers/platform/x86/thinkpad_acpi.c
drivers/platform/x86/thinkpad_acpi.c
+899
-279
No files found.
Documentation/laptops/thinkpad-acpi.txt
View file @
7458bbd0
ThinkPad ACPI Extras Driver
ThinkPad ACPI Extras Driver
Version 0.2
3
Version 0.2
4
April 10th,
2009
December 11th,
2009
Borislav Deianov <borislav@users.sf.net>
Borislav Deianov <borislav@users.sf.net>
Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Henrique de Moraes Holschuh <hmh@hmh.eng.br>
...
@@ -460,6 +460,8 @@ event code Key Notes
...
@@ -460,6 +460,8 @@ event code Key Notes
For Lenovo ThinkPads with a new
For Lenovo ThinkPads with a new
BIOS, it has to be handled either
BIOS, it has to be handled either
by the ACPI OSI, or by userspace.
by the ACPI OSI, or by userspace.
The driver does the right thing,
never mess with this.
0x1011 0x10 FN+END Brightness down. See brightness
0x1011 0x10 FN+END Brightness down. See brightness
up for details.
up for details.
...
@@ -582,46 +584,15 @@ with hotkey_report_mode.
...
@@ -582,46 +584,15 @@ with hotkey_report_mode.
Brightness hotkey notes:
Brightness hotkey notes:
These are the current sane choices for brightness key mapping in
Don't mess with the brightness hotkeys in a Thinkpad. If you want
thinkpad-acpi:
notifications for OSD, use the sysfs backlight class event support.
For IBM and Lenovo models *without* ACPI backlight control (the ones on
The driver will issue KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN events
which thinkpad-acpi will autoload its backlight interface by default,
automatically for the cases were userspace has to do something to
and on which ACPI video does not export a backlight interface):
implement brightness changes. When you override these events, you will
either fail to handle properly the ThinkPads that require explicit
1. Don't enable or map the brightness hotkeys in thinkpad-acpi, as
action to change backlight brightness, or the ThinkPads that require
these older firmware versions unfortunately won't respect the hotkey
that no action be taken to work properly.
mask for brightness keys anyway, and always reacts to them. This
usually work fine, unless X.org drivers are doing something to block
the BIOS. In that case, use (3) below. This is the default mode of
operation.
2. Enable the hotkeys, but map them to something else that is NOT
KEY_BRIGHTNESS_UP/DOWN or any other keycode that would cause
userspace to try to change the backlight level, and use that as an
on-screen-display hint.
3. IF AND ONLY IF X.org drivers find a way to block the firmware from
automatically changing the brightness, enable the hotkeys and map
them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN, and feed that to
something that calls xbacklight. thinkpad-acpi will not be able to
change brightness in that case either, so you should disable its
backlight interface.
For Lenovo models *with* ACPI backlight control:
1. Load up ACPI video and use that. ACPI video will report ACPI
events for brightness change keys. Do not mess with thinkpad-acpi
defaults in this case. thinkpad-acpi should not have anything to do
with backlight events in a scenario where ACPI video is loaded:
brightness hotkeys must be disabled, and the backlight interface is
to be kept disabled as well. This is the default mode of operation.
2. Do *NOT* load up ACPI video, enable the hotkeys in thinkpad-acpi,
and map them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN. Process
these keys on userspace somehow (e.g. by calling xbacklight).
The driver will do this automatically if it detects that ACPI video
has been disabled.
Bluetooth
Bluetooth
...
@@ -1121,25 +1092,61 @@ WARNING:
...
@@ -1121,25 +1092,61 @@ WARNING:
its level up and down at every change.
its level up and down at every change.
Volume control -- /proc/acpi/ibm/volume
Volume control
---------------------------------------
--------------
procfs: /proc/acpi/ibm/volume
ALSA: "ThinkPad Console Audio Control", default ID: "ThinkPadEC"
NOTE: by default, the volume control interface operates in read-only
mode, as it is supposed to be used for on-screen-display purposes.
The read/write mode can be enabled through the use of the
"volume_control=1" module parameter.
This feature allows volume control on ThinkPad models which don't have
NOTE: distros are urged to not enable volume_control by default, this
a hardware volume knob. The available commands are:
should be done by the local admin only. The ThinkPad UI is for the
console audio control to be done through the volume keys only, and for
the desktop environment to just provide on-screen-display feedback.
Software volume control should be done only in the main AC97/HDA
mixer.
This feature allows volume control on ThinkPad models with a digital
volume knob (when available, not all models have it), as well as
mute/unmute control. The available commands are:
echo up >/proc/acpi/ibm/volume
echo up >/proc/acpi/ibm/volume
echo down >/proc/acpi/ibm/volume
echo down >/proc/acpi/ibm/volume
echo mute >/proc/acpi/ibm/volume
echo mute >/proc/acpi/ibm/volume
echo unmute >/proc/acpi/ibm/volume
echo 'level <level>' >/proc/acpi/ibm/volume
echo 'level <level>' >/proc/acpi/ibm/volume
The <level> number range is 0 to 1
5
although not all of them may be
The <level> number range is 0 to 1
4
although not all of them may be
distinct. The unmute the volume after the mute command, use either the
distinct. The unmute the volume after the mute command, use either the
up or down command (the level command will not unmute the volume).
up or down command (the level command will not unmute the volume), or
the unmute command.
The current volume level and mute state is shown in the file.
The current volume level and mute state is shown in the file.
The ALSA mixer interface to this feature is still missing, but patches
You can use the volume_capabilities parameter to tell the driver
to add it exist. That problem should be addressed in the not so
whether your thinkpad has volume control or mute-only control:
distant future.
volume_capabilities=1 for mixers with mute and volume control,
volume_capabilities=2 for mixers with only mute control.
If the driver misdetects the capabilities for your ThinkPad model,
please report this to ibm-acpi-devel@lists.sourceforge.net, so that we
can update the driver.
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
ibm-acpi-devel@lists.sourceforge.net.
The driver supports the standard ALSA module parameters. If the ALSA
mixer is disabled, the driver will disable all volume functionality.
Fan control and monitoring: fan speed, fan enable/disable
Fan control and monitoring: fan speed, fan enable/disable
...
@@ -1405,6 +1412,7 @@ to enable more than one output class, just add their values.
...
@@ -1405,6 +1412,7 @@ to enable more than one output class, just add their values.
0x0008 HKEY event interface, hotkeys
0x0008 HKEY event interface, hotkeys
0x0010 Fan control
0x0010 Fan control
0x0020 Backlight brightness
0x0020 Backlight brightness
0x0040 Audio mixer/volume control
There is also a kernel build option to enable more debugging
There is also a kernel build option to enable more debugging
information, which may be necessary to debug driver problems.
information, which may be necessary to debug driver problems.
...
@@ -1465,3 +1473,9 @@ Sysfs interface changelog:
...
@@ -1465,3 +1473,9 @@ Sysfs interface changelog:
and it is always able to disable hot keys. Very old
and it is always able to disable hot keys. Very old
thinkpads are properly supported. hotkey_bios_mask
thinkpads are properly supported. hotkey_bios_mask
is deprecated and marked for removal.
is deprecated and marked for removal.
0x020600: Marker for backlight change event support.
0x020700: Support for mute-only mixers.
Volume control in read-only mode by default.
Marker for ALSA mixer support.
drivers/platform/x86/thinkpad_acpi.c
View file @
7458bbd0
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment