Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp7149832ybi; Mon, 8 Jul 2019 15:38:48 -0700 (PDT) X-Google-Smtp-Source: APXvYqzl9uJAFBhlJx+lWFCM+Q5nYM/0YnGK/4xuP0xLhIuDc64nMowyKjHw1eteRlPPRms73aEr X-Received: by 2002:a17:902:b196:: with SMTP id s22mr25982345plr.245.1562625528548; Mon, 08 Jul 2019 15:38:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562625528; cv=none; d=google.com; s=arc-20160816; b=i7DV90DHZGSkdEA9DVWOuSyBjjx9Dw/iyZj5WUeTQbLvnYEwgXDafZJ5+WLCETIUob adX9chH0JdHwdfPetE72m2J1zZKyw4nXBVToLR71hNwnQa/1kBY3zBCWWDPw9lT/zsnU bJyxv/aDEZTFEZKjV6BIXCcGXiIY0E4LCa8OAbZciWRbcDCpJlPvhuzfFZxXdiHw9jEI sgyiyprpSannwv8AIAgIk3fdR74KCzaZSez131OUd6hTpJM2sTz0Zh26nCqqXC71qdKL FC+IXingbbhaYj7O3B9T/DsfV5rCLuzM3iEcT/6HWAat5WXjwxuR97xcu78h8w+cow+2 YRzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=h1BG/v08fl8rYxMntjDrZ9pRH8v3hlFP16YCDqUCYOM=; b=snZSYWrYaJ/Ql4hrNkRQ/aRYZSibU5zpD6D/5q2k7ZqbrIAv2svpIRoB9aw9HzcOhS 3DZnaMIIMQsYVCvFTt5D4DzzgLmgomKJygdlZtNshksUE59vnMtZZNuJjRPtV5J3dB0I a/1y8RaIPpBzp1jC6hWPIAXWJk0K9Hnj8q0sDyrp2snq0Oe/nhcVNaDhmXMdlywNZ77W haCkxtvxrue7pi0g0TNrYpCCBLPrJGkYfdfFphdBQ01LXdIdotS20gsUtTkOBAgJoUPI A37tz9i9B2cBBIcJeHtd+UgHKNwRzoggA5LbHnKI3QlS4exSf1tJtG3i9vrisNrQKi7R 3w8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FBHQ3cOk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f9si20973169pgg.450.2019.07.08.15.38.34; Mon, 08 Jul 2019 15:38:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FBHQ3cOk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389087AbfGHP1d (ORCPT + 99 others); Mon, 8 Jul 2019 11:27:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:55718 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389074AbfGHP1c (ORCPT ); Mon, 8 Jul 2019 11:27:32 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9BC4920665; Mon, 8 Jul 2019 15:27:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1562599652; bh=lpF8smmZKzXzIFKYhBNQHTJe28GZk9w9HrrXxBl46x0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FBHQ3cOk9QBAx5/l8LNXw8XZ4+WU7Bq2dznqgtd+nh90RubdrYSC+At3znnkD6xfd hgXpV0lef/x8slvjJQBk0yuF73K9kGlN9JjtLUWRPCsxm0j2fCObJqCdGNhMNsGOMW YlbRKMXCxU2n8rnn2qM7w/iV41Oqbu1aem61DRB4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mathew King , Jett Rink , Mario Limonciello , Andy Shevchenko , Sasha Levin Subject: [PATCH 4.19 30/90] platform/x86: intel-vbtn: Report switch events when event wakes device Date: Mon, 8 Jul 2019 17:12:57 +0200 Message-Id: <20190708150524.134124013@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190708150521.829733162@linuxfoundation.org> References: <20190708150521.829733162@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit cb1921b17adbe6509538098ac431033378cd7165 ] When a switch event, such as tablet mode/laptop mode or docked/undocked, wakes a device make sure that the value of the swich is reported. Without when a device is put in tablet mode from laptop mode when it is suspended or vice versa the device will wake up but mode will be incorrect. Tested by suspending a device in laptop mode and putting it in tablet mode, the device resumes and is in tablet mode. When suspending the device in tablet mode and putting it in laptop mode the device resumes and is in laptop mode. Signed-off-by: Mathew King Reviewed-by: Jett Rink Reviewed-by: Mario Limonciello Signed-off-by: Andy Shevchenko Signed-off-by: Sasha Levin --- drivers/platform/x86/intel-vbtn.c | 16 ++++++++++++++-- 1 file 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; -- 2.20.1