Received: by 10.192.165.148 with SMTP id m20csp1336111imm; Wed, 2 May 2018 19:41:21 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpPdRtj5sK/fU0H2K2sJKXO9U0Wjvw3EyDQDVY6K80OgIwKDshD5g0VFED4+Js8nENfG/zu X-Received: by 2002:a17:902:760c:: with SMTP id k12-v6mr8167002pll.61.1525315281375; Wed, 02 May 2018 19:41:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525315281; cv=none; d=google.com; s=arc-20160816; b=fV9WCYdVFV2r9t6rRecXB5/oOAyWqVq0PHtMx+ozCbk0gtaTxySZAwgbbh6dk5/ydY iGM6MgrMSST5DI3XKJJ6t5lM/k4H2HsROoEIq3k3iLkHoSwku247C6emB1TySSoS7ihN xSDkhrC6YSuuzMPVPgOUU9DnjjIa0rxDrvOqqxU3i/vykzEKG03h56nllohBOIGubGkN l3f6gaBSMKwZbsx8w7os9zgVCGCV210X5gtETsHuL0fLLHJbypl0Hh5cmR5n9n19O03S gNxICC/IDETg0epKgDLPoUqh/q/KdpNmU6UtJfGUMVFHDR86NTdr7Rc0nUwoQPAdbBGP Eqfw== 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:dkim-signature :arc-authentication-results; bh=XPWwPrwEVfwIhbqDJyn3D5i938KyMPzGCmnBTyrFT2c=; b=tkT5cvG16Uds0/WYqfpdlR8Iq2VXa6kbopEnS7/4hshcPed0/qlAUeBfxDidbMO5tZ i8Fk6xna3BbzsDIPUIgc8jvLrz6SIpa3GcsJFfwJh3NrCYNfrKEDhjsg1TyDpKR70ANH 6OHJTwO9Ej9tT29Fwz9rNj12X186XPaiUG+USWv+8MrViS+myE84IO3LPWySFkwOFeFU b6IujY546L2H7zuoe+tWrmSpH43yCA2zvFY8IFcybGRV7L9HKF4504edkU6HTv6mPWOv ceOF3ai6zWCafkQsLnds6yrJ18zL9X5XpWIT+4BmbhV5nKICo+71Wj5u3OB3/1XYn95m IfcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=lmDYzxeN; 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 e26si12858894pfb.185.2018.05.02.19.41.07; Wed, 02 May 2018 19:41:21 -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=lmDYzxeN; 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 S1751996AbeECCkz (ORCPT + 99 others); Wed, 2 May 2018 22:40:55 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:39616 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751969AbeECCkw (ORCPT ); Wed, 2 May 2018 22:40:52 -0400 Received: by mail-wm0-f68.google.com with SMTP id f8so17070140wmc.4 for ; Wed, 02 May 2018 19:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XPWwPrwEVfwIhbqDJyn3D5i938KyMPzGCmnBTyrFT2c=; b=lmDYzxeN9oMiEGqt+d8IxRzf///d5LbRHoyiXe0fSCUJMVEhTerrzsXjSsqcNgqLtv ixK/FsIcidRuYvWfD7TTe+vv3zkicYSCcaQgu9BOiZepD6cjynjyDJMG3tzyw/pjMkPv AzqSKos7rh7Bi6HNHJgoVqTnL9r139fm85os4XJ2sZwcpcPaC0VvP9WdG/Y7wmB0Q30E yDWADNqkTNoExtpmUyMlFO8rHUrsKtAWRiOeIsx6WLyQTDOnh1Gan9TZgKIYoyTZTFvG BAEEc/ZqeLauRaAMblmUDPJ4RLodrRckK9LspswTWzQbrZYvbnzuP1Z9/5I2tHKr/vJq VEmw== 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=XPWwPrwEVfwIhbqDJyn3D5i938KyMPzGCmnBTyrFT2c=; b=dsNDHID3kN1sUUHSY4t8fAXu/mdit9gyqiJCp7ooaWYFR9GmVculg8NaqeFNF4uYe8 honjw520Ghq+6VYNm//iTR45DcSz0VU+LTOtvwKJiUKDKUDtmS2w4FsSVNivHK5NqrCg QU6ADIauaDqKY/sgdunvjaG2T3zMJKSDFirqIc1fUYjZphW/0yjzW5RZmfPoRj436uv2 yd6dULOrFpzFA2iQT6XG2W8i0gnGCtOt8/W2OLXf3CDGZqHfah23SGqg8qFimFp360rV HV3Vhpw6GrhC+Bc7jS4S+T/isoRhBOp/t/lW8MMAFhDbKj9LLKy2r5rLa/D4mO7BRpR/ v9fw== X-Gm-Message-State: ALQs6tDgZ4X7B8cfopQxoSd61ftdWxOPPYXIMUVqIFlw3BqrgC/7Kid9 S4rliUGatxEyCL6SUiLDMPdyRDKBHVOrsjDroocGbg== X-Received: by 2002:a50:b119:: with SMTP id k25-v6mr29516275edd.217.1525315251333; Wed, 02 May 2018 19:40:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.80.245.113 with HTTP; Wed, 2 May 2018 19:40:51 -0700 (PDT) In-Reply-To: <09b12fe1-3023-5e16-7c80-e73a8c3634fd@web.de> References: <20180502060224.44903-1-chiu@endlessm.com> <09b12fe1-3023-5e16-7c80-e73a8c3634fd@web.de> From: Chris Chiu Date: Thu, 3 May 2018 10:40:51 +0800 Message-ID: Subject: Re: [PATCH] platform/x86: asus-wmi: Add keyboard backlight toggle support To: "Puma D." Cc: Corentin Chary , dvhart@infradead.org, Andy Shevchenko , acpi4asus-user@lists.sourceforge.net, Platform Driver , Linux Kernel , Linux Upstreaming Team 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 On Wed, May 2, 2018 at 10:29 PM, Puma D. wrote: > On 02.05.2018 08:02, Chris Chiu wrote: >> >> 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; >> + } > > Did you intend the else branch to be a noop? > Thanks for pointing out. The 'else' does want to do nothing special but `Brightness Toggle` as the original code. I'll modify that and submit again. > >> + >> if (is_display_toggle(code) && >> asus->driver->quirks->no_display_toggle) >> goto exit; > > >