• Henrique de Moraes Holschuh's avatar
    thinkpad-acpi: hotkey event driver update · 0d922e3b
    Henrique de Moraes Holschuh authored
    Update the HKEY event driver to:
    
    1. Handle better the second-gen firmware, which has no HKEY mask
       support but does report FN+F3, FN+F4 and FN+F12 without the need
       for NVRAM polling.
    
       a) always make the mask-related attributes available in sysfs;
       b) use DMI quirks to detect the second-gen firmware;
       c) properly report that FN+F3, FN+F4 and FN+F12 are enabled,
          and available even on mask-less second-gen firmware;
    
    2. Decouple the issuing of hotkey events towards userspace from
       their reception from the firmware.  ALSA mixer and brightness
       event reporting support will need this feature.
    
    3. Clean up the mess in the hotkey driver a great deal.  It is
       still very convoluted, and wants a full refactoring into a
       proper event API interface, but that is not going to happen
       today.
    
    4. Fully reset firmware interface on resume (restore hotkey
       mask and status).
    
    5. Stop losing polled events for no good reason when changing the
       mask and poll frequencies.  We will still lose them when the
       hotkey_source_mask is changed, as well as any that happened
       between driver suspend and driver resume.
    
    The hotkey subdriver now has the notion of user-space-visible hotkey
    event mask, as well as of the set of "hotkey" events the driver needs
    (because brightness/volume change reports are not just keypress
    reports in most ThinkPad models).
    
    With this rewrite, the ABI level is bumped to 0x020500 should
    userspace need to know it is dealing with the updated hotkey
    subdriver.
    Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    0d922e3b
thinkpad_acpi.c 209 KB