Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp3527102imm; Sun, 24 Jun 2018 23:26:24 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKWQZZszk1Q4pN/Ojq5sua8rKC8myySn4JmvjdKJ+z8NqI+2P7Kge1LPhPUdTHGGtAcCBvS X-Received: by 2002:a17:902:76c4:: with SMTP id j4-v6mr10996221plt.19.1529907984315; Sun, 24 Jun 2018 23:26:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529907984; cv=none; d=google.com; s=arc-20160816; b=GW6JY/viKsPWzGNKFA1u8DdjSM6Fz/JKOlUvg4wpIchc9S+8Cc7TfmKC5tLSBMo3uM 90ig2Xgw57hxNe8a3LWyI9JrBSogjWcKPCCHqHfdIqHzeVj07trTetmtYAdnDuVEcfDM TriXiweG3Xw4Zgn0YoRvxV/iQ8uURtRtYLoU6PC1lNa4pdgrpSZtLgeOJZqw2Danj+9E tX0cTyVX+GPpJnRbERMTU4TO9aMi/OKsjbIUoxQoByphFXcRn+UjHJcQKjpAAad71f/0 vJvIDk93mEctW+dEZnnPGrL1vYw42sVbQyKsnJFevv/kgOeI2BdTmbXZTB4h/Xosgbx/ Knnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:arc-authentication-results; bh=N1axxX4lPLr0u09hb8Ninl8+8sjJly0GoRegLL63hYw=; b=lxvKOSZg9UU0imrDm4DXjpB/Fqvwce4/LXuPkYQiQ5n6fjr1n0AUpINCyuISUov9GD NDu8FJksLsVbXhhtIPDszFspDDhCF2zYzzyq6sJYJ9SADY4G/nWpFgtB4x/5lgyTQ4CV ll32Lwb+xgB7ZR62KxItB6NJrIQvMsoKccqW0A39caw7rlt6Hu/yfvcc6nUr92g6KEYT jp6V167z9ibdzJlxXucjC9EBdfjDHGykwd7ysNdiiM3vuqCnJx7aqFuhBYrUq7ag3Dw9 nvo/MiRU/LAlMnzQe3iqRff5Mp1jUdFg3ojSEgDPglwGyBlkq73vR82DMBh9it0+4TxW eHWg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t1-v6si13743701plb.90.2018.06.24.23.26.09; Sun, 24 Jun 2018 23:26:24 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752332AbeFYGZb (ORCPT + 99 others); Mon, 25 Jun 2018 02:25:31 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:38558 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752204AbeFYGZ3 (ORCPT ); Mon, 25 Jun 2018 02:25:29 -0400 Received: from mail-wr0-f199.google.com ([209.85.128.199]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fXKwK-0007Hz-LK for linux-kernel@vger.kernel.org; Mon, 25 Jun 2018 06:25:28 +0000 Received: by mail-wr0-f199.google.com with SMTP id r2-v6so8642186wro.21 for ; Sun, 24 Jun 2018 23:25:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=N1axxX4lPLr0u09hb8Ninl8+8sjJly0GoRegLL63hYw=; b=qsioPHHbjoVSsqnX7UH1HGTLiWWWjZJf6gdKcoHzSk6u2e4MfV27uNrtffxR2wEc7w UoxVT/ZDNtpD2p1Rq60+dEIoy0g/jeolvOeE4Ih9vAge2BRV79JkOSyXloVxHk2Sxnf+ vfPPuWYWtmCVTRxwmMKLPyTIvaSG6vsQRLYMVgkzk8VH7ij0GszEmbAD7Kq0+NxfCZRy jaSWyzIXnlX2ODuy1ci6Q5jfNEYeQBSlMwUn6hTGleJC6XBMb+GVgPpB2gkhNmy4trUx Av/Kp7ZZObOIHAMXJ7MIciNT4UIcEDW6Nc2VW/7amk80PZAyf4Ah7vE9gA5P2IxUhE1p /Fxw== X-Gm-Message-State: APt69E1zZdXsKRWyWleqs3EESiE1X6ktuAbZRVoc5rPa9gYIc4g9npIH HjnX2n5GtoB8NDCrfjZ8RKWku5LPp3Caf2rFmnQRXyDpA8spsxJwPHEq4jlW0X34ojwEK8objg3 uEiHhswAWUccCkf5S6d1oA0Ck3JyZHMv3krdr7lc290T3Es5wambdiK7Vew== X-Received: by 2002:a1c:6744:: with SMTP id b65-v6mr7921569wmc.9.1529907928276; Sun, 24 Jun 2018 23:25:28 -0700 (PDT) X-Received: by 2002:a1c:6744:: with SMTP id b65-v6mr7921562wmc.9.1529907928062; Sun, 24 Jun 2018 23:25:28 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:bc55:0:0:0:0:0 with HTTP; Sun, 24 Jun 2018 23:25:27 -0700 (PDT) In-Reply-To: <20180625002940.117141-1-delco@chromium.org> References: <20180625002940.117141-1-delco@chromium.org> From: AceLan Kao Date: Mon, 25 Jun 2018 14:25:27 +0800 Message-ID: Subject: Re: [PATCH v2] platform/x86: intel-vbtn: Add support for dock mode detection To: Matt Delco Cc: Darren Hart , Andy Shevchenko , Platform Driver , "Linux-Kernel@Vger. Kernel. Org" , Dmitry Torokhov Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Looks good to me Reviewed-By: AceLan Kao 2018-06-25 8:29 GMT+08:00 Matt Delco : > The Dell laptop I have has an ACPI that sends 0xCB and 0xCC on entering > tablet mode. On exiting tablet mode it sends 0xCA and 0xCD. Based on: > > http://www.traby.de/medion/DSDT/dsdt.dsl > https://gist.github.com/jprvita/5737de3cbb670e80973b7d4e51c38ab6 > https://osdn.net/projects/android-x86/scm/git/kernel/commits/ > 7cbe5a330687b851f32dd9f1048a6ce182d0ff44 > > It appears that 0xCA and 0xCB are about dock mode, which for my > convertible laptop seems questionably tied to whether I've put > the laptop in tablet or laptop mode. I previously proposed no-oping > 0xCA and 0xCB but this revised change attempts to add support for > detecting dock mode--this detection will essentially be broken for > my laptop (the main workaround would be for 0xCA and 0xCB to be used > to provoke a query of the VGBS method that reports the current dock & > tablet mode [which is accurately reported on my laptop but based on > the prior workarounds in the driver it apparently can't be trusted > for all systems]). > > Signed-off-by: Matt Delco > Cc: Darren Hart > Cc: Andy Shevchenko > Cc: platform-driver-x86@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: Dmitry Torokhov > --- > drivers/platform/x86/intel-vbtn.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c > index c13780b8dabb..06cd7e818ed5 100644 > --- a/drivers/platform/x86/intel-vbtn.c > +++ b/drivers/platform/x86/intel-vbtn.c > @@ -17,6 +17,7 @@ > > /* When NOT in tablet mode, VGBS returns with the flag 0x40 */ > #define TABLET_MODE_FLAG 0x40 > +#define DOCK_MODE_FLAG 0x80 > > MODULE_LICENSE("GPL"); > MODULE_AUTHOR("AceLan Kao"); > @@ -38,6 +39,8 @@ static const struct key_entry intel_vbtn_keymap[] = { > { KE_IGNORE, 0xC7, { KEY_VOLUMEDOWN } }, /* volume-down key release */ > { KE_KEY, 0xC8, { KEY_ROTATE_LOCK_TOGGLE } }, /* rotate-lock key press */ > { KE_KEY, 0xC9, { KEY_ROTATE_LOCK_TOGGLE } }, /* rotate-lock key release */ > + { KE_SW, 0xCA, { .sw = { SW_DOCK, 1 } } }, /* Docked */ > + { KE_SW, 0xCB, { .sw = { SW_DOCK, 0 } } }, /* Undocked */ > { KE_SW, 0xCC, { .sw = { SW_TABLET_MODE, 1 } } }, /* Tablet */ > { KE_SW, 0xCD, { .sw = { SW_TABLET_MODE, 0 } } }, /* Laptop */ > { KE_END }, > @@ -121,6 +124,8 @@ static void detect_tablet_mode(struct platform_device *device) > > m = !(obj->integer.value & TABLET_MODE_FLAG); > input_report_switch(priv->input_dev, SW_TABLET_MODE, m); > + m = (obj->integer.value & DOCK_MODE_FLAG) ? 1 : 0; > + input_report_switch(priv->input_dev, SW_DOCK, m); > out: > kfree(vgbs_output.pointer); > } > -- > 2.18.0.rc2.346.g013aa6912e-goog >