I am sponsoring this case for Kerry Shu with a requested release binding
of minor.

Phi

Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         Laptop Hotkey Support
    1.2. Name of Document Author/Supplier:
         Author:  Kerry Shu
    1.3  Date of This Document:
        11 January, 2009
4. Technical Description

ACPI video extensions define generic ACPI methods for brightness
control and display switch control. We've added the ACPI brightness
hotkey support in PSARC/2008/021. The Laptop Hotkey Support case will
add the ACPI display switch hotkey support. (With the integration of
LSARC/2008/519, we can do display switch via user defined hotkey
already.)

Since there is no generic ACPI specification for other hotkeys, most
vendors just define their own specific ACPI based hotkey method. This
case will also add Toshiba specific ACPI hotkey method support for:
1. Fn + ESC: audio mute On/Off
2. Fn + F1: screen lock
3. Fn + F3: suspend to RAM(on S3 capable platform)
4. Fn + F8: wireless LAN On/Off
5. Fn + F9: touchPad On/Off

Other vendor specific hotkey method support can be added in future after
we get the related documentations.

4.1 Details

We'll enhance existing acpi_drv to support the generic ACPI display
switch method and introduce a misc module (acpi_toshiba) for Toshiba
specific ACPI hotkey method to support hotkeys on Toshiba laptops. Other
vendor specific hotkey support can be added one by one in different misc
module(acpi_xxxx) in the future. Generally, vendor specific method also
covers the brightness and display switch control which are defined in
generic ACPI video extensions. In our design, acpi_drv is responsible to
load vendor specific module(s). If there is a vendor specific method
module being loaded successfully, acpi_drv won't enable its ACPI video
extension support and all the hotkeys including brightness and display
switch will be handled by vendor specific module. Otherwise, acpi_drv
enables its ACPI video extension support to handle just brightness and
display switch hotkey.

   -------------     ---------------     ------------------
   | audio mute| ... | screen lock | ... | Suspend to RAM |
   -------------     ---------------     ------------------
        ^                   ^                    ^
        |                   |                    |
        |                   |                    |
 _____________________________________________________________
 |Gnome                                                       |
 |                 Keyboard Shortcuts Application             |
 |                                                            |
 |___________________________________________________________ |
                               ^key grabbing and keysym translation
                               |
                               |
 _____________________________________________________________
 |Xserver (LSARC XXXX)         |                              |
 |                             | post key to input queue      |
 |                             |  (keycode + modifier)        |
 |                     Xserver hotkey driver                  |
 |                             | receive hotkey sysevents     |
 |___________________________________________________________ |
                               ^hotey sysevent
user land                      |
-------------------------------|-------------------------------
kernel                         |
                               |
 _____________________________________________________________
 |ACPI hotkey driver                                          |
 |  ------------       ---------------       -------------    |
 |  | acpi_drv |      | acpi_toshiba |  ...  | acpi_xxxx |    |
 |  ------------       ---------------       -------------    |
 |____________________________________________________________|
                               ^acpi event
                               |
                               |
                         Hotkey Pressing

                 Figure 1 hotkey architecture

Pressing laptop hotkey(it is "Fn + ?" on Toshiba laptops. Other laptops
may be different.) will generate ACPI event to ACPI hotkey driver
module. The hotkey driver module will then generate a sysevent to notify
Xserver. Xserver receives hotkey sysevents and translates the sysevent
to a special key input with (keycode + modifier) and then posts the key
to the input queue. Gnome Keyboard Shortcuts Application grabs the key
and then takes action to call the corresponding application.

The changes in Xserver for hotkey support will be covered with a
LSARC case.


4.2 Interface

sysevent
---------
Interface level: Project Private

The EC_ACPIEV class defined in PSARC/2006/601 Battery Project will
be extended to include below subclasses:

ESC_ACPIEV_DISPLAY_SWITCH
ESC_ACPIEV_SCREEN_LOCK
ESC_ACPIEV_SUSPEND_TO_RAM
ESC_ACPIEV_AUDIO_MUTE
ESC_ACPIEV_WLAN
ESC_ACPIEV_TOUCHPAD

4.3 References
LSARC/2008/519 Hot Key Based Display Device Switch (dispswitch)
PSARC/2006/601 Battery Project
PSARC/2008/021 HAL Power Management Support


6. Resources and Schedule
    6.4. Steering Committee requested information
       6.4.1. Consolidation C-team Name:
        ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open

6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


Reply via email to