Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp574868imm; Wed, 13 Jun 2018 05:17:19 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKXBpk5nQsEbLoAZxV9EWMU5vYOunos96UF72a43j94rw2+CXCfO/jEOOm2MEqhfeDq9MKa X-Received: by 2002:a62:1358:: with SMTP id b85-v6mr4765311pfj.238.1528892239661; Wed, 13 Jun 2018 05:17:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528892239; cv=none; d=google.com; s=arc-20160816; b=zvFra3l3OrK3e0PmZyiCBOiZqzJLAyJ1ZqRCDzvefS6HHhmPjg+mIsuRn87KYJ+JIP KIj3eR/4RC9ms/WyBFdUIvkYdpzQWmc/xzAKAxTw7t3nmTVRbWw2eP5b/J+oLiZOS3gn emWrm7fPEmniu7oPZmU24s4g41FqOT1yogkDVhX34ZID1scrsrDeHu7LiFfCWSmYX9Z4 qAjCrMWeI3b1AW2DjqMVLZsIP2ksAbjReunhGoz/fW4H2lvc3DkgUjyYnWIu5a6awFAO cGcgBJ8xkBUYWWXzCmFMF4Q9neYExz2c2QtpRE42nQnqTtfOhTapnNZqViiVMsln59Gs BBKw== 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=5PSUW48DG3tdOwbaOvo1OrlourPZ9dCtz9b/PTwpPbY=; b=FQBiVxlfPQ4VN6qRQPze9oBrJHiXyyJn42Adiz49VdiIKknkBrgj5Zinntyoh1fbV8 Ny6bJ1aNPjVoWBNQoJgmk1gPiqPiFXPLRePRfBDLE2sd9+OzvW/TZ2t2eJ5h9iX+/Ftb 1utQSnZHHAYWFcuPebgsOIgQ0jrfaBqnQMalbYKropBRAfEEPVQ6ieHf12oLTI4e6xnK 8iAl426TLUvZOTLpgpMN4Lk5c1voSiNvZN06UmPFjJ/f+4E06t6QqRBvLyklvmR+ajK1 qhp7RSklYVVUZRtpFHt8kdJDnOMEmkfoDBzOWzsZxLDv30835I9G80oBILPF+V/kZdgQ 960Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=DMnBqjBI; 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 j10-v6si2173121pgq.503.2018.06.13.05.17.03; Wed, 13 Jun 2018 05:17:19 -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=DMnBqjBI; 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 S935428AbeFMMOR (ORCPT + 99 others); Wed, 13 Jun 2018 08:14:17 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:38800 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935286AbeFMMOP (ORCPT ); Wed, 13 Jun 2018 08:14:15 -0400 Received: by mail-wm0-f67.google.com with SMTP id 69-v6so4950719wmf.3 for ; Wed, 13 Jun 2018 05:14:15 -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=5PSUW48DG3tdOwbaOvo1OrlourPZ9dCtz9b/PTwpPbY=; b=DMnBqjBI0dhDR3hf9/WxVtILStimnKuKK7vcln8rNTcMJF6Zx3C2j7itCz10Zr89A9 Lehs1uDya5PnCsVPDBRHt14EoL7TciK+Skc73C/h99SwtJEVDQo4cX9FYzrP7//KELft v5mt+kN7kinUveF+3GxkScPk/64QsNsqzUq9Tf5EGtOk0j/pB9ppyrGvTu+zRVZnRE79 4JflLBHezHqcq8oOu8M+DoEIfNrLMBfqDLOH+xb/LMt7lnjaucJq6xrbwVeXhk6Z7edc NynWsMzSyxLxh9sH//R5OR7miDc+awv2tq+tk2wgwhfLyi5WhT56CGzqpmp9tF+Dryt7 CNFg== 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=5PSUW48DG3tdOwbaOvo1OrlourPZ9dCtz9b/PTwpPbY=; b=cHEyL7QaCNmmMrJlzyvpfb79iur/uPdbAQhzxgQQOsTOymRv2/34qtNy1rUCz0qiuy 8p0U60e2lmE+mzP3aOS2IzvUsTF1Ynqn+bXvZlCuB9IVR3QK6c+RCdx2Rhrv0DbSSCqt UblslG7GTJ5ntdyARlfa9T2wGjQUtgw3GaLA7nf+pwytMz3jr13jNd8NfNpe4VUv1sIE vn8+eM4ENP8NvMNTofSOBE4aCj79Twrpyn9q4p466fTbhEBpXQ9vEnJ6/9d9Tf9JlMGu DCxRExabo/4QGRJcPO4n4zz7AMVnrdmnjQ1huCZUtLJRzOFzUg2lIY54v2EZEqzXHiK6 WHOg== X-Gm-Message-State: APt69E3BlSuAAWYUTPVak5bf7uKpEmQ9vr2nwurvKCl62LuVRZTWlKKf EK9KPqERcxoP6GbK5CSlezz4RZYISPfKvOhj6s/eqA== X-Received: by 2002:a50:90cb:: with SMTP id d11-v6mr3872736eda.54.1528892054261; Wed, 13 Jun 2018 05:14:14 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a50:90d3:0:0:0:0:0 with HTTP; Wed, 13 Jun 2018 05:14:13 -0700 (PDT) In-Reply-To: <20180611071838.47945-1-chiu@endlessm.com> References: <20180611071838.47945-1-chiu@endlessm.com> From: Chris Chiu Date: Wed, 13 Jun 2018 20:14:13 +0800 Message-ID: Subject: Re: [PATCH v2 1/2] platform/x86: asus-wmi: Call led hw_changed API on kbd brightness change To: Corentin Chary , Darren Hart , Andy Shevchenko Cc: Linux Kernel , Platform Driver , acpi4asus-user , Hans de Goede , Linux Upstreaming Team , Chris Chiu 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 Mon, Jun 11, 2018 at 3:18 PM, Chris Chiu wrote: > Make asus-wmi notify on hotkey kbd brightness changes, listen for > brightness events and update the brightness directly in the driver. > For this purpose, bound check on brightness in kbd_led_set must be > based on the same data type to prevent illegal value been set. > > Update the brightness by led_classdev_notify_brightness_hw_changed. > This will allow userspace to monitor (poll) for brightness changes > on the LED without reporting via input keymapping. > > Signed-off-by: Chris Chiu > --- > drivers/platform/x86/asus-wmi.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c > index 1f6e68f0b646..a18484f4bae3 100644 > --- a/drivers/platform/x86/asus-wmi.c > +++ b/drivers/platform/x86/asus-wmi.c > @@ -460,6 +460,7 @@ static void kbd_led_update(struct work_struct *work) > ctrl_param = 0x80 | (asus->kbd_led_wk & 0x7F); > > asus_wmi_set_devstate(ASUS_WMI_DEVID_KBD_BACKLIGHT, ctrl_param, NULL); > + led_classdev_notify_brightness_hw_changed(&asus->kbd_led, asus->kbd_led_wk); > } > > static int kbd_led_read(struct asus_wmi *asus, int *level, int *env) > @@ -497,9 +498,9 @@ static void kbd_led_set(struct led_classdev *led_cdev, > > asus = container_of(led_cdev, struct asus_wmi, kbd_led); > > - if (value > asus->kbd_led.max_brightness) > + if ((int)value > (int)asus->kbd_led.max_brightness) > value = asus->kbd_led.max_brightness; > - else if (value < 0) > + else if ((int)value < 0) > value = 0; > > asus->kbd_led_wk = value; > @@ -656,6 +657,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus) > > asus->kbd_led_wk = led_val; > asus->kbd_led.name = "asus::kbd_backlight"; > + asus->kbd_led.flags = LED_BRIGHT_HW_CHANGED; > asus->kbd_led.brightness_set = kbd_led_set; > asus->kbd_led.brightness_get = kbd_led_get; > asus->kbd_led.max_brightness = 3; > @@ -1745,6 +1747,15 @@ static void asus_wmi_notify(u32 value, void *context) > } > } > > + if (code == NOTIFY_KBD_BRTUP) { > + kbd_led_set(&asus->kbd_led, asus->kbd_led_wk + 1); > + goto exit; > + } > + if (code == NOTIFY_KBD_BRTDWN) { > + kbd_led_set(&asus->kbd_led, asus->kbd_led_wk - 1); > + goto exit; > + } > + > if (is_display_toggle(code) && > asus->driver->quirks->no_display_toggle) > goto exit; > -- > 2.11.0 > Gentle ping. Any suggestions? The v2 is based on the last comment from Hans, https://lkml.org/lkml/2018/6/5/270. Please let me know if nay. Thanks Chris