Loading Documentation/laptops/thinkpad-acpi.txt +64 −50 Original line number Original line Diff line number Diff line ThinkPad ACPI Extras Driver ThinkPad ACPI Extras Driver Version 0.23 Version 0.24 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> Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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 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 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 Loading Loading @@ -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. Loading Loading @@ -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 +899 −279 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
Documentation/laptops/thinkpad-acpi.txt +64 −50 Original line number Original line Diff line number Diff line ThinkPad ACPI Extras Driver ThinkPad ACPI Extras Driver Version 0.23 Version 0.24 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> Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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 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 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 Loading Loading @@ -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. Loading Loading @@ -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 +899 −279 File changed.Preview size limit exceeded, changes collapsed. Show changes