Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3729477imm; Mon, 11 Jun 2018 00:20:02 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJx0RDuqegMG8CnMhb2Mz7yeMwio7WZa8pOulAmuZJMeia4fDPUWnura7t1Lx3zvDevOQeo X-Received: by 2002:a17:902:3303:: with SMTP id a3-v6mr17266914plc.209.1528701602774; Mon, 11 Jun 2018 00:20:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528701602; cv=none; d=google.com; s=arc-20160816; b=TjW7pt1/pBh2ZKlVr28q+3oRV1RzCUddm5lzga26xBPWetfRlGt7ZXRiTlIoURoadz 7+P3rPw5LLqybvOBj0B3TmFpeLs+nFadCwbQ0E5z1egCOBApcNxK2OwkRtTAOFpd4KDI FkP4rIrBUqnl3SoepztAethIK8tU6mFdghJhAognLKSwNQBCgfsqKhqXP5KYBdAyMNrB 5fPOvPqybLtM6COEcNNXf7iH0mQWpgCT3ZNQSYHeyZZ5g++FYhhSRLfZ9KP8Kl4cRe5V Qh0UhRhX6snR3BWU4Tnk+RQuuk1vidwUYtoCuxod3QJjqmBnBpPO3Fa59wHbxUPLItXg 4EHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=ot9BLptEI709nbh4VxHxjhKyV8A4dexww6fbzmu4S4M=; b=xNK06jEBU1kIVXeQFU5q8+a63K1H9Zb6ZpJzohDbEEqtPlQyv3Sfc2k6y/YNgqmdAl Qk5reYKpeTXGgvcMgJxrHcBKaO1UURtksb/Mel2xpDofKRh3dy569CCNAD6aC29Bz73U PwDh9mXtIoEkgBZ/EWebOzOsId9M54d50dXbiUY+1ezrolHo+yeltMHTrKcPbsUWwk3F EG6qnCvWrC03tB8O1m5TX3+WxppuFV6bSf5CFIr83h8rjm6D1jvqHJRM9yqdRYtxtEwB w1G+UWM/hpNDLcd42UYR9yisP8at9WBrQoI+WtYQTYp8JvEBr4xXMXGXV0pkOH3BJF4Y rgHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=CNNDlFi/; 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 s6-v6si24150906pfj.338.2018.06.11.00.19.48; Mon, 11 Jun 2018 00:20:02 -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=CNNDlFi/; 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 S1754113AbeFKHS7 (ORCPT + 99 others); Mon, 11 Jun 2018 03:18:59 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:34108 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754100AbeFKHSy (ORCPT ); Mon, 11 Jun 2018 03:18:54 -0400 Received: by mail-pl0-f65.google.com with SMTP id g20-v6so11806056plq.1 for ; Mon, 11 Jun 2018 00:18:54 -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:in-reply-to:references; bh=ot9BLptEI709nbh4VxHxjhKyV8A4dexww6fbzmu4S4M=; b=CNNDlFi/PAyowYTZtDjVGchXFSgauaczFxqs+54qiKrv3gf2tLbu3MfUg4FuEsWei+ 1Z3YHuoe3NeEkQVMzo2/0ZTVlhAenm4Fx0yMGKESixcJUMAWAKj7ZfqJqApN+tLBOy7p cJ7fQhXbUKPl5X9lUP3b0+yqoPgay7VyamOaa8eg1zZWPS5pdiezDHcLoe6nm+7fXpdv 5e4Bw6L5C2PB+rzGxY9oO807jU12lTrCe7ffFBeB5+QSn+vTDnB/zAYA+NB6mlLn7MP+ VHMtlHYyeH4CdFZlvNf1guaRp88lP5SmeCcpps8IwvLLhOWX3mDDoI2Qbb4JZQkITZwl NWQQ== 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:in-reply-to :references; bh=ot9BLptEI709nbh4VxHxjhKyV8A4dexww6fbzmu4S4M=; b=Dc0Zh4ceLedynV5TYOQC4+839SO/RFwYYP3rFI1j/zVbzKVf3K9R5LSLv3VZwRY1ew fC4ZATz3UKGThCjFMN0l1NcD94SC5TQbJUqJCNIKCLk/31FKYPavtzYN89fOmkWNhRI9 zCq/N2uZH+oxQquBFvR0a9HFMLZV58RaToKAKhtCWVDNlwzZdAEc4rshda23pOaeW/86 RzIF0qqYY49YqHbBYsXdu61wsLWC7kUz0XxVlHxHvhqItdvjew2gNudrZGwclx/Wcaza igRzopZGU6PGK5x/rYdjbFiStTjtI09OTJjh3gR+Ho19C4V1xxAHOGFctVn3/BMV+7GI YPRQ== X-Gm-Message-State: APt69E2tAkYoRHd0GiBFV/ApmY7wf0LYaqvYyQRRZ+lfmpedW3jbCaBz qlruWZHIl5TlkUsFaPPEHt1+gw== X-Received: by 2002:a17:902:925:: with SMTP id 34-v6mr9147388plm.218.1528701534199; Mon, 11 Jun 2018 00:18:54 -0700 (PDT) Received: from localhost.localdomain (114-26-212-90.dynamic-ip.hinet.net. [114.26.212.90]) by smtp.gmail.com with ESMTPSA id t13-v6sm30349692pgv.43.2018.06.11.00.18.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 11 Jun 2018 00:18:53 -0700 (PDT) From: Chris Chiu To: corentin.chary@gmail.com, dvhart@infradead.org, andy.shevchenko@gmail.com Cc: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, acpi4asus-user@lists.sourceforge.net, hdegoede@redhat.com, linux@endlessm.com, Chris Chiu Subject: [PATCH v2 2/2] platform/x86: asus-wmi: Add keyboard backlight toggle support Date: Mon, 11 Jun 2018 15:18:38 +0800 Message-Id: <20180611071838.47945-2-chiu@endlessm.com> X-Mailer: git-send-email 2.15.1 (Apple Git-101) In-Reply-To: <20180611071838.47945-1-chiu@endlessm.com> References: <20180611071838.47945-1-chiu@endlessm.com> 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 which would emit the scan code 0xc7 each keypress. On the UX550GE, the max keyboard brightness level is 3 so the toggle would not be simply on/off the led but need to be cyclic. Per ASUS spec, it should increment the brightness for each keypress, then toggle(off) the LED when it already reached the max level. Signed-off-by: Chris Chiu --- drivers/platform/x86/asus-wmi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index a18484f4bae3..bfcafca54a7a 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 */ @@ -1755,6 +1756,13 @@ static void asus_wmi_notify(u32 value, void *context) kbd_led_set(&asus->kbd_led, asus->kbd_led_wk - 1); goto exit; } + if (code == NOTIFY_KBD_BRTTOGGLE) { + if (asus->kbd_led_wk == asus->kbd_led.max_brightness) + kbd_led_set(&asus->kbd_led, 0); + else + kbd_led_set(&asus->kbd_led, asus->kbd_led_wk + 1); + goto exit; + } if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle) -- 2.11.0