• Pali Rohár's avatar
    dell-wmi: Update code for processing WMI events · 83fc44c3
    Pali Rohár authored
    The WMI buffer can contain multiple events. First value in buffer is
    length of event followed by data of specified length. After that is next
    length and next data.  When length is zero then there is no more events
    in bufffer.
    
    This patch adds support for processing all events in buffer (not only
    first) and parse more event types (not only hotkey events). Because of
    variable length of events sometimes BIOS fills more hotkeys (or other
    values) into single WMI event. In this case this patch also processes
    these multiple hotkeys (and not only first one).
    
    Some event types are just ignored because kernel is not interested in
    them (e.g. NIC Link status, battery unplug, ...).
    
    This patch is based on DSDT table from Dell Latitude E6440. Code should
    be backward compatible so will process other events of old types same as
    before this patch.
    
    This patch also fixes a problem with unknown WMI event messages being
    written to the log. Now all known events are parsed and those which are
    not interesting to the kernel are dropped without an unknown WMI event
    message.
    Signed-off-by: default avatarPali Rohár <pali.rohar@gmail.com>
    Tested-by: default avatarPali Rohár <pali.rohar@gmail.com>
    Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
    83fc44c3
dell-wmi.c 10.8 KB