• Srinivas Pandruvada's avatar
    platform/x86: intel-hid: Add support for Device Specific Methods · 5bf24e20
    Srinivas Pandruvada authored
    In some of the recent platforms, it is possible that stand alone methods
    for HEBC() or other methods used in this driver may not exist. In this
    case intel-hid driver will fail to load and power button will not be
    functional.
    
    It is also possible that some quirks in this driver added for some
    platforms may have same issue in loading intel-hid driver.
    
    There is an update to the ACPI details for the HID event filter driver.
    In the updated specification a _DSM is added, which has separate function
    indexes for each of the previous stand alone methods.
    
    This change brings in support for the _DSM and allows usage of function
    index for corresponding stand alone methods.
    
    Details of Device Specific Method:
    
    Intel HID Event Filter Driver _DSM UUID:
    eeec56b3-4442-408f-a792-4edd4d758054
    
    • Function index 0: Returns a buffer with a bit-field representing the
    supported function IDs.
    
    Function Index	ASL Object
    --------------------------------
    1		BTNL
    2		HDMM
    3		HDSM
    4		HDEM
    5		BTNS
    6		BTNE
    7		HEBC
    8		VGBS
    9		HEBC
    
    One significant change is to query the supported methods implemented on
    the platform. So the previous HEBC() has two variants. HEBC v1 and
    HEBC v2. The v2 version allowed further define which of the 5-button
    are actually defined by the platform. HEBC v2 support is only available
    via new DSM.
    
    v1 Button details:
    Bits [0] - Rotation Lock, Num Lock, Home, End, Page Up,
    Page Down
    Bits [1] - Wireless Radio Control
    Bits [2] - System Power Down
    Bits [3] - System Hibernate
    Bits [4] - System Sleep/ System Wake
    Bits [5] - Scan Next Track
    Bits [6] - Scan Previous Track
    Bits [7] - Stop
    Bits [8] - Play/Pause
    Bits [9] - Mute
    Bits [10] - Volume Increment
    Bits [11] - Volume Decrement
    Bits [12] - Display Brightness Increment
    Bits [13] - Display Brightness Decrement
    Bits [14] - Lock Tablet
    Bits [15] - Release Tablet
    Bits [16] - Toggle Bezel
    Bits [17] - 5 button array
    Bits [18-31] - reserved
    
    v2 Buttom details:
    Bits [0-16] - Same as v1 version
    Bits [17] - 5 button array
    Bits [18] – Power Button
    Bits [19] - W Home Button
    Bits [20] - Volume Up Button
    Bits [21] - Volume Down Button
    Bits [22] – Rotation Lock Button
    Bits [23-31] – reserved
    Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Tested-by: default avatarMario Limonciello <mario.limonciello@dell.com>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    5bf24e20
intel-hid.c 15 KB