Received: by 10.192.165.148 with SMTP id m20csp263555imm; Tue, 1 May 2018 23:03:09 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpe8Mz2FwuF2F4Ax+XEJxRunmt/JPz7UyO7hmqx/tdYs267/BjZCplwwyW8mdaydTgHVpIV X-Received: by 2002:a65:6188:: with SMTP id c8-v6mr15140189pgv.131.1525240989148; Tue, 01 May 2018 23:03:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525240989; cv=none; d=google.com; s=arc-20160816; b=DzrAsDoM3LnOH1rdcJV1UbsAgb877ad4bzjL8wQzBW8TZMdLQXyYFqbzOjrqm3GQba IxmiMozTlFiTUyTZxK0vQi6jMVMbcsCHdZJOdMC0URPmbBL7MJi8hIMwfXtsqCrFGmq5 F7s+iCT+10uZUsSDLp/R0S3f1zZBrvmmI+bSqX2ZtylZZAUncBmon1i2ySYYajXLDvmx WDzE24exFJGzYsjghKve/Oa4CPUYirSqz/dNFl4oAz6/WlsTrvW9NwDCjQDtem1FsYud Je7lg+4evn2Q0j2472ardMbOWOtG7RnfFsF3fx9nTPciTyTdhwWue7AGbAn/rrJaGRNd Rx0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=k1Hn9+kUDEG1i0Ch9VVG3QEKiNqYKaovt57xwN+8Y6I=; b=eqdUALzbCannsmKnxXs1XN8vcqX9HjRM3YmbSt94p5NSw95V2MueO/GSaXqabe7OfQ iJx1t41vVLmV1MhH+wWdLCD4Nnm9NB0cPxb1Yj3yj2xi4jL0K8fC+F6WT8gkC2Rv7tm/ Edtc5wCI5PM1qlRkQt4W9Ea1qj67rE5Q+vcAjOaAgxpwx9QbjxPteb8xYUZ1DbPTYKSr ViXMFhhP6D7kALHIb+xa8wL+kue0E29iZNsYeQwdtwBAbsAoQOQUbS2EzAPf+cwup1Qk la/X73KZVUnxrebZLIyBMRHY6QKW5NrOuu2CA6dr5lk/80EPhPhwVG5jjFZt3Q9/7qkq o78Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=oAhYxlX8; 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 p3si10495545pff.356.2018.05.01.23.02.54; Tue, 01 May 2018 23:03:09 -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=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=oAhYxlX8; 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 S1751181AbeEBGCn (ORCPT + 99 others); Wed, 2 May 2018 02:02:43 -0400 Received: from mail-pg0-f68.google.com ([74.125.83.68]:41175 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751021AbeEBGCi (ORCPT ); Wed, 2 May 2018 02:02:38 -0400 Received: by mail-pg0-f68.google.com with SMTP id m21-v6so9837189pgv.8 for ; Tue, 01 May 2018 23:02:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=k1Hn9+kUDEG1i0Ch9VVG3QEKiNqYKaovt57xwN+8Y6I=; b=oAhYxlX8tzuRCbgDO1XIVB8LJjSCRVFb6vwcloNcw0s7mQ71SlqlOT7XAe9a8qDElJ 55eKZl5QJgSyhcHga5eP8FPyYmiSXHy7WojtlWsmNyqyOAcJKf4NzT+UJFFPp8odxUuK 2x42tBR1hwnawFyj7KndvkLsqKAqnlmUHxuffEF1PrATRLN+O3y8UR3ireaW03SeCIlk ukH9getaqjyMIJ+0dnkuq3nALfH85rqmp+NJ+UCnelK363/1VsoLBmM+Hjh/qed4CbaW 7zEeOEAgHyN67uT6mjz/yqtNLJWmKc4/G9JFIun2OfnqlTs3ma3izqglgsEDqCoiPYb3 ePAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=k1Hn9+kUDEG1i0Ch9VVG3QEKiNqYKaovt57xwN+8Y6I=; b=gzns8QCQFDRqzDKZV1unrcNXLSx/Y9L9iD++P8XWo8QWUTDOOIUOoLqq9t5CWLneJP XkgBpYdAMP8olifwRIQpgHw+MkIJJ1hjEItZybh8vPiRVoZ3RWB2m1s3pvzIRz0iKCM5 t0pZgO+jCYvGcFO8mSNkYsvhk8XCxHcM220EIpvE48A+x64UR3uJ3YnmfdBQ3Je39qBj gjnh6HXvVjIaa3Mdun+ohlK7004Q7MRIdgrIzjIuMBbRnMMvF5Ynt8BqD2SNWuqEbBCB JgE3J2+wtWQpKEWK8mXZNveaqeiWNAKSHaZgnSXLcxJ/ViijHpQuQDP+IQpxyD4ctdEF 8Xnw== X-Gm-Message-State: ALQs6tAhmGW3RMGXyODR2Ce5IPUi1ozRbgLicXTQkkydtomrFsrVKwJJ U4wqr3erAgSAUkPOYZyrhVHj7A== X-Received: by 10.167.129.154 with SMTP id g26mr5432558pfi.210.1525240958295; Tue, 01 May 2018 23:02:38 -0700 (PDT) Received: from localhost.localdomain ([101.9.212.93]) by smtp.gmail.com with ESMTPSA id p5-v6sm16885529pgv.90.2018.05.01.23.02.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 01 May 2018 23:02:37 -0700 (PDT) From: Chris Chiu To: corentin.chary@gmail.com, dvhart@infradead.org, andy@infradead.org Cc: acpi4asus-user@lists.sourceforge.net, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux@endlessm.com, Chris Chiu Subject: [PATCH] platform/x86: asus-wmi: Add keyboard backlight toggle support Date: Wed, 2 May 2018 14:02:24 +0800 Message-Id: <20180502060224.44903-1-chiu@endlessm.com> X-Mailer: git-send-email 2.15.1 (Apple Git-101) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some Asus laptops like UX550GE has hotkey (Fn+F7) for keyboard backlight toggle. In this UX550GE, the hotkey incremet the level of brightness for each keypress from 1 to 3, and then switch it off when the brightness has been the max. This commit interprets the code 0xc7 generated from hotkey to KEY_KBDILLUMUP to increment the brightness, then pass KEY_KBDILLUMTOGGLE to user space after the brightness max been reached for switching the led off. https://phabricator.endlessm.com/T21390 Signed-off-by: Chris Chiu --- drivers/platform/x86/asus-nb-wmi.c | 1 + drivers/platform/x86/asus-wmi.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c index 136ff2b..14c502e 100644 --- a/drivers/platform/x86/asus-nb-wmi.c +++ b/drivers/platform/x86/asus-nb-wmi.c @@ -496,6 +496,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = { { KE_KEY, 0xC4, { KEY_KBDILLUMUP } }, { KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } }, { KE_IGNORE, 0xC6, }, /* Ambient Light Sensor notification */ + { KE_KEY, 0xC7, { KEY_KBDILLUMTOGGLE } }, { KE_END, 0}, }; diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index 1f6e68f..b64ff90 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -67,6 +67,7 @@ MODULE_LICENSE("GPL"); #define NOTIFY_BRNDOWN_MAX 0x2e #define NOTIFY_KBD_BRTUP 0xc4 #define NOTIFY_KBD_BRTDWN 0xc5 +#define NOTIFY_KBD_BRTTOGGLE 0xc7 /* WMI Methods */ #define ASUS_WMI_METHODID_SPEC 0x43455053 /* BIOS SPECification */ @@ -1745,6 +1746,13 @@ static void asus_wmi_notify(u32 value, void *context) } } + if (code == NOTIFY_KBD_BRTTOGGLE) { + if (asus->kbd_led_wk < asus->kbd_led.max_brightness) + code = NOTIFY_KBD_BRTUP; + else + code = NOTIFY_KBD_BRTTOGGLE; + } + if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle) goto exit; -- 2.7.4