diff options
Diffstat (limited to 'Documentation/laptops/thinkpad-acpi.txt')
-rw-r--r-- | Documentation/laptops/thinkpad-acpi.txt | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 6d03487ef1c7..aafcaa634191 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -199,18 +199,22 @@ kind to allow it (and it often doesn't!). | |||
199 | 199 | ||
200 | Not all bits in the mask can be modified. Not all bits that can be | 200 | Not all bits in the mask can be modified. Not all bits that can be |
201 | modified do anything. Not all hot keys can be individually controlled | 201 | modified do anything. Not all hot keys can be individually controlled |
202 | by the mask. Some models do not support the mask at all, and in those | 202 | by the mask. Some models do not support the mask at all. The behaviour |
203 | models, hot keys cannot be controlled individually. The behaviour of | 203 | of the mask is, therefore, highly dependent on the ThinkPad model. |
204 | the mask is, therefore, highly dependent on the ThinkPad model. | 204 | |
205 | The driver will filter out any unmasked hotkeys, so even if the firmware | ||
206 | doesn't allow disabling an specific hotkey, the driver will not report | ||
207 | events for unmasked hotkeys. | ||
205 | 208 | ||
206 | Note that unmasking some keys prevents their default behavior. For | 209 | Note that unmasking some keys prevents their default behavior. For |
207 | example, if Fn+F5 is unmasked, that key will no longer enable/disable | 210 | example, if Fn+F5 is unmasked, that key will no longer enable/disable |
208 | Bluetooth by itself. | 211 | Bluetooth by itself in firmware. |
209 | 212 | ||
210 | Note also that not all Fn key combinations are supported through ACPI. | 213 | Note also that not all Fn key combinations are supported through ACPI |
211 | For example, on the X40, the brightness, volume and "Access IBM" buttons | 214 | depending on the ThinkPad model and firmware version. On those |
212 | do not generate ACPI events even with this driver. They *can* be used | 215 | ThinkPads, it is still possible to support some extra hotkeys by |
213 | through the "ThinkPad Buttons" utility, see http://www.nongnu.org/tpb/ | 216 | polling the "CMOS NVRAM" at least 10 times per second. The driver |
217 | attempts to enables this functionality automatically when required. | ||
214 | 218 | ||
215 | procfs notes: | 219 | procfs notes: |
216 | 220 | ||
@@ -255,18 +259,11 @@ sysfs notes: | |||
255 | 1: does nothing | 259 | 1: does nothing |
256 | 260 | ||
257 | hotkey_mask: | 261 | hotkey_mask: |
258 | bit mask to enable driver-handling (and depending on | 262 | bit mask to enable reporting (and depending on |
259 | the firmware, ACPI event generation) for each hot key | 263 | the firmware, ACPI event generation) for each hot key |
260 | (see above). Returns the current status of the hot keys | 264 | (see above). Returns the current status of the hot keys |
261 | mask, and allows one to modify it. | 265 | mask, and allows one to modify it. |
262 | 266 | ||
263 | Note: when NVRAM polling is active, the firmware mask | ||
264 | will be different from the value returned by | ||
265 | hotkey_mask. The driver will retain enabled bits for | ||
266 | hotkeys that are under NVRAM polling even if the | ||
267 | firmware refuses them, and will not set these bits on | ||
268 | the firmware hot key mask. | ||
269 | |||
270 | hotkey_all_mask: | 267 | hotkey_all_mask: |
271 | bit mask that should enable event reporting for all | 268 | bit mask that should enable event reporting for all |
272 | supported hot keys, when echoed to hotkey_mask above. | 269 | supported hot keys, when echoed to hotkey_mask above. |
@@ -279,7 +276,8 @@ sysfs notes: | |||
279 | bit mask that should enable event reporting for all | 276 | bit mask that should enable event reporting for all |
280 | supported hot keys, except those which are always | 277 | supported hot keys, except those which are always |
281 | handled by the firmware anyway. Echo it to | 278 | handled by the firmware anyway. Echo it to |
282 | hotkey_mask above, to use. | 279 | hotkey_mask above, to use. This is the default mask |
280 | used by the driver. | ||
283 | 281 | ||
284 | hotkey_source_mask: | 282 | hotkey_source_mask: |
285 | bit mask that selects which hot keys will the driver | 283 | bit mask that selects which hot keys will the driver |
@@ -287,9 +285,10 @@ sysfs notes: | |||
287 | based on the capabilities reported by the ACPI firmware, | 285 | based on the capabilities reported by the ACPI firmware, |
288 | but it can be overridden at runtime. | 286 | but it can be overridden at runtime. |
289 | 287 | ||
290 | Hot keys whose bits are set in both hotkey_source_mask | 288 | Hot keys whose bits are set in hotkey_source_mask are |
291 | and also on hotkey_mask are polled for in NVRAM. Only a | 289 | polled for in NVRAM, and reported as hotkey events if |
292 | few hot keys are available through CMOS NVRAM polling. | 290 | enabled in hotkey_mask. Only a few hot keys are |
291 | available through CMOS NVRAM polling. | ||
293 | 292 | ||
294 | Warning: when in NVRAM mode, the volume up/down/mute | 293 | Warning: when in NVRAM mode, the volume up/down/mute |
295 | keys are synthesized according to changes in the mixer, | 294 | keys are synthesized according to changes in the mixer, |
@@ -525,6 +524,7 @@ compatibility purposes when hotkey_report_mode is set to 1. | |||
525 | 0x2305 System is waking up from suspend to eject bay | 524 | 0x2305 System is waking up from suspend to eject bay |
526 | 0x2404 System is waking up from hibernation to undock | 525 | 0x2404 System is waking up from hibernation to undock |
527 | 0x2405 System is waking up from hibernation to eject bay | 526 | 0x2405 System is waking up from hibernation to eject bay |
527 | 0x5010 Brightness level changed/control event | ||
528 | 528 | ||
529 | The above events are never propagated by the driver. | 529 | The above events are never propagated by the driver. |
530 | 530 | ||
@@ -532,7 +532,6 @@ The above events are never propagated by the driver. | |||
532 | 0x4003 Undocked (see 0x2x04), can sleep again | 532 | 0x4003 Undocked (see 0x2x04), can sleep again |
533 | 0x500B Tablet pen inserted into its storage bay | 533 | 0x500B Tablet pen inserted into its storage bay |
534 | 0x500C Tablet pen removed from its storage bay | 534 | 0x500C Tablet pen removed from its storage bay |
535 | 0x5010 Brightness level changed (newer Lenovo BIOSes) | ||
536 | 535 | ||
537 | The above events are propagated by the driver. | 536 | The above events are propagated by the driver. |
538 | 537 | ||
@@ -621,6 +620,8 @@ For Lenovo models *with* ACPI backlight control: | |||
621 | 2. Do *NOT* load up ACPI video, enable the hotkeys in thinkpad-acpi, | 620 | 2. Do *NOT* load up ACPI video, enable the hotkeys in thinkpad-acpi, |
622 | and map them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN. Process | 621 | and map them to KEY_BRIGHTNESS_UP and KEY_BRIGHTNESS_DOWN. Process |
623 | these keys on userspace somehow (e.g. by calling xbacklight). | 622 | these keys on userspace somehow (e.g. by calling xbacklight). |
623 | The driver will do this automatically if it detects that ACPI video | ||
624 | has been disabled. | ||
624 | 625 | ||
625 | 626 | ||
626 | Bluetooth | 627 | Bluetooth |
@@ -1459,3 +1460,8 @@ Sysfs interface changelog: | |||
1459 | 0x020400: Marker for 16 LEDs support. Also, LEDs that are known | 1460 | 0x020400: Marker for 16 LEDs support. Also, LEDs that are known |
1460 | to not exist in a given model are not registered with | 1461 | to not exist in a given model are not registered with |
1461 | the LED sysfs class anymore. | 1462 | the LED sysfs class anymore. |
1463 | |||
1464 | 0x020500: Updated hotkey driver, hotkey_mask is always available | ||
1465 | and it is always able to disable hot keys. Very old | ||
1466 | thinkpads are properly supported. hotkey_bios_mask | ||
1467 | is deprecated and marked for removal. | ||