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