Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2429200imm; Thu, 16 Aug 2018 09:28:20 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzSDl6VHyHEnxGYJt6tRnlSRvOCj5f6oz42xHSQy42yF8kKKkdx4B1fAKjcDo/ukxV1eDa+ X-Received: by 2002:a62:2e02:: with SMTP id u2-v6mr32941220pfu.134.1534436899935; Thu, 16 Aug 2018 09:28:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534436899; cv=none; d=google.com; s=arc-20160816; b=kUS9CHa6bHfl7DKpopMmfqlIa+tuiyq2ZSxdgZzIV7YfECXeu1xVmo4KqCib1s7I6k Yr8bOJtNT3fdfpWX9poTArdXcmFWB4o8KmQGD6kj/orabiDq+7byKPL+GIz9lc9wpQhn Quhna1xAt7uVMW9D6cznhDOGu78ZqpzQkd0IuKfbh0oze1HC140QVYNwJ7+ei1vvmqdk OgxcrlGv592YNye/L3K+IXLmpT2ykUKpqqbCvsMGopbpvmA+zLNJv7Kr9sGDfb9iTH7B Qpi3ZRlLmQHpnG1+3w9apq7Y5Z5iosgIz1mnGdI6mZjqgK2zp62SnAoEEQMa0tLNeJLN gVJg== 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=y4PHHWGgb1VEd7a2iwknInHmrtvQEkgYTSsBpz46itk=; b=ZHDTEpHvCwdZVVhBmPS7z05PTFW6jEE8eYYNbomSm4Dde8EmfxjKd6JM2+WGjrXQTl Xow76P2HutQOVblc4frcsviM+TGinjeVzAR/rN8RzZjKRUk8KQTX41Wl8mSmslkNEb26 t2w9hPj/qCKdpnjYYEv5Q3rXR+7qhro1pZUyu7cQWnA8hM2VyNUK/J1n1eXoZXzaHc77 WE9eEO7mKHhxX1yaE12FYeMW2+QAQrNIz5zd4yFxsi/o6MzlQQpOuvB18YWEcGZfXqdn 923DCm3fvl/x5CoduX1y3psEwOntRnAOtbalgeXN3ZDFzneN3t7mpYFB6QK32JRJaeC4 Uzng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=wNmHVnd+; 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 y18-v6si23520354pll.82.2018.08.16.09.27.55; Thu, 16 Aug 2018 09:28: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=wNmHVnd+; 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 S2390091AbeHPLiU (ORCPT + 99 others); Thu, 16 Aug 2018 07:38:20 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:35318 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389453AbeHPLiU (ORCPT ); Thu, 16 Aug 2018 07:38:20 -0400 Received: by mail-pg1-f193.google.com with SMTP id w10-v6so1748018pgv.2 for ; Thu, 16 Aug 2018 01:41:22 -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=y4PHHWGgb1VEd7a2iwknInHmrtvQEkgYTSsBpz46itk=; b=wNmHVnd+hfrXlxYublfv05BoJ+PMY/A9K32iXbRNdfumiwxpmhn7L8LACfDfSg5+lH 5O1LjccI2c5LGnYv8dQyZevbkz4xg9jnUq1f6IJP/mU8T1Kql0ZT/n9q8vq7qWmT12x7 jv/1dXgOPK91CJ6DT7bz5o0AIsjAy2KTsHYOkm4LWbDVeLO/ifaYJaHqOb1tNnk7EYlE GM7zvlIWMKrpZGJlwRWojncbISng6VnBePdqvFjZY/jnOeuPTjV0aKYk3gdqr9iU2C/Z MF15mgHBcdgMPk/bJ1c6c6sBOcGJRZNynfB9ercTZG1gWcURtLkcWIwlkqFiA2oMG1/x WscQ== 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=y4PHHWGgb1VEd7a2iwknInHmrtvQEkgYTSsBpz46itk=; b=oMnqNDyhJBw4af+9YVM8IziM58FEyouVVdMM8RRH9fU59MnbY1rtJT7Kta2ymHoJEP amesksoDFwol7RC/Do8vCyWtlSpJ1Ex22S+Bhxz2zETqEvxlbSLVHffFs04YUhWAps+Q o7FIHNI/ZV4JlBoNid6DWGdKA9hBpnkoh/KFjyEd9nH8J6mVp4+myMzN+M1H8Wg2XOZk X3hPiFPslUOKVPQEiDz/uV5WVcvFPG0oduvMBW4G+bJrF8Tlc/w9pYoVYMTzVZfUD/aW /0k9OL6LPxWY9GsMFXheqhxjJDKpVM13ygRHwfCzt6YuOjH58sGxPrC4c55wEYrCDFT7 EPhw== X-Gm-Message-State: AOUpUlGI1nKR08qmKtpF4pxU52yIh3X6phR0/Nln1GikiY8Ha3p+alqa pNkOnwQ28CaAE40TE+5DNl3QlQ== X-Received: by 2002:a63:77ce:: with SMTP id s197-v6mr404142pgc.172.1534408881864; Thu, 16 Aug 2018 01:41:21 -0700 (PDT) Received: from localhost.localdomain (125-227-158-176.HINET-IP.hinet.net. [125.227.158.176]) by smtp.gmail.com with ESMTPSA id 14-v6sm50643046pft.93.2018.08.16.01.41.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Aug 2018 01:41:21 -0700 (PDT) From: Jian-Hong Pan To: Corentin Chary , Darren Hart , Andy Shevchenko , acpi4asus-user@lists.sourceforge.net, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux@endlessm.com Cc: Jian-Hong Pan Subject: [RFC PATCH] platform/x86: asus-wmi: Simplify the keyboard brightness updating process Date: Thu, 16 Aug 2018 16:41:04 +0800 Message-Id: <20180816084104.434-1-jian-hong@endlessm.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The original asus-wmi queues a work which calls the ACPI/WMI methods to update the keyboard LED brightness. Similar drivers - acer-wmi, dell-wmi-led just call the ACPI/WMI methods directly without workqueues. This patch simplifies the keyboard brightness updating process which calls the kbd_led_update function directly without workqueue in asus-wmi. Signed-off-by: Jian-Hong Pan --- drivers/platform/x86/asus-wmi.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index 34dcc1aac4ea..d3d500851a7a 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -239,7 +239,6 @@ struct asus_wmi { int lightbar_led_wk; struct workqueue_struct *led_workqueue; struct work_struct tpd_led_work; - struct work_struct kbd_led_work; struct work_struct wlan_led_work; struct work_struct lightbar_led_work; @@ -456,12 +455,9 @@ static enum led_brightness tpd_led_get(struct led_classdev *led_cdev) return read_tpd_led_state(asus); } -static void kbd_led_update(struct work_struct *work) +static void kbd_led_update(struct asus_wmi *asus) { int ctrl_param = 0; - struct asus_wmi *asus; - - asus = container_of(work, struct asus_wmi, kbd_led_work); /* * bits 0-2: level @@ -516,7 +512,7 @@ static void do_kbd_led_set(struct led_classdev *led_cdev, int value) value = 0; asus->kbd_led_wk = value; - queue_work(asus->led_workqueue, &asus->kbd_led_work); + kbd_led_update(asus); } static void kbd_led_set(struct led_classdev *led_cdev, @@ -671,8 +667,6 @@ static int asus_wmi_led_init(struct asus_wmi *asus) led_val = kbd_led_read(asus, NULL, NULL); if (led_val >= 0) { - INIT_WORK(&asus->kbd_led_work, kbd_led_update); - asus->kbd_led_wk = led_val; asus->kbd_led.name = "asus::kbd_backlight"; asus->kbd_led.flags = LED_BRIGHT_HW_CHANGED; @@ -2314,7 +2308,7 @@ static int asus_hotk_resume(struct device *device) struct asus_wmi *asus = dev_get_drvdata(device); if (!IS_ERR_OR_NULL(asus->kbd_led.dev)) - queue_work(asus->led_workqueue, &asus->kbd_led_work); + kbd_led_update(asus); return 0; } @@ -2350,7 +2344,7 @@ static int asus_hotk_restore(struct device *device) rfkill_set_sw_state(asus->uwb.rfkill, bl); } if (!IS_ERR_OR_NULL(asus->kbd_led.dev)) - queue_work(asus->led_workqueue, &asus->kbd_led_work); + kbd_led_update(asus); return 0; } -- 2.11.0