summaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/intel-vbtn.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2019-06-25 08:42:25 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-06-25 08:42:25 -0500
commitd7929c1e13e3788e7cb741d75b5baec5e53eff21 (patch)
treecf513071edfc4499b4e025e4846244c9d0e4c6bd /drivers/platform/x86/intel-vbtn.c
parent8ac875db0fdc1cfa55c424b38a81cf5282f3df0b (diff)
parent80d42db02b3a5beb8cffba08207adf5f4c525ee3 (diff)
downloadlinux-stable-d7929c1e13e3788e7cb741d75b5baec5e53eff21.tar.gz
linux-stable-d7929c1e13e3788e7cb741d75b5baec5e53eff21.tar.bz2
linux-stable-d7929c1e13e3788e7cb741d75b5baec5e53eff21.zip
Merge branch 'drm-next' into drm-next-5.3
Backmerge drm-next and fix up conflicts due to drmP.h removal. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/platform/x86/intel-vbtn.c')
-rw-r--r--drivers/platform/x86/intel-vbtn.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c
index 06cd7e818ed5..a0d0cecff55f 100644
--- a/drivers/platform/x86/intel-vbtn.c
+++ b/drivers/platform/x86/intel-vbtn.c
@@ -76,12 +76,24 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
struct platform_device *device = context;
struct intel_vbtn_priv *priv = dev_get_drvdata(&device->dev);
unsigned int val = !(event & 1); /* Even=press, Odd=release */
- const struct key_entry *ke_rel;
+ const struct key_entry *ke, *ke_rel;
bool autorelease;
if (priv->wakeup_mode) {
- if (sparse_keymap_entry_from_scancode(priv->input_dev, event)) {
+ ke = sparse_keymap_entry_from_scancode(priv->input_dev, event);
+ if (ke) {
pm_wakeup_hard_event(&device->dev);
+
+ /*
+ * Switch events like tablet mode will wake the device
+ * and report the new switch position to the input
+ * subsystem.
+ */
+ if (ke->type == KE_SW)
+ sparse_keymap_report_event(priv->input_dev,
+ event,
+ val,
+ 0);
return;
}
goto out_unknown;