Received: by 10.213.65.68 with SMTP id h4csp267193imn; Fri, 23 Mar 2018 04:19:07 -0700 (PDT) X-Google-Smtp-Source: AG47ELuW1vyajYxT5Gnq+gtrrVerr+ORQpejQ3yg4mCQbchI2IDpl2xbLye9fI/CueuHQoZcXBSN X-Received: by 10.99.127.91 with SMTP id p27mr20604746pgn.28.1521803947105; Fri, 23 Mar 2018 04:19:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521803947; cv=none; d=google.com; s=arc-20160816; b=UCGovkMSEEqhDdIbpU466zAh9xU+VWpwsOHb88T1/6Moij1WzSTXycT2rMO9P/2vEd STqq29vNhW9OaNAzdWYMhXMKyUdf7FVx7GxQva+Z7RspeqFtqzK4j4Bhw86Acj0pkLHH gOaqPcoPXN9j8xA1qAsxnHVNrddJKXNpPIzFPhhiHXe/hlUBfwxtrOsbdAyBA/pfGX2W ICtsaDUcKHRkQkXPfsLk2osuyHsx7GORVDZNqdT1QNpr3cKWwLA+vs8v0aQF6yRt7q8G Zv8WwWJxvQ2GyplPQNajA3z/NEZqiDC2455tmT6XrskJrZUOF4jmDcEWZSPzUOvv+/zE vDzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=JuiymNDxU5M8ga0EDMqmFC5jCofQcQ9/9X+bEmwGc0w=; b=EGpzFZk7aMUFJsTSyXSWzfhrAGwxbcvMKtmHF+nTv9dY/XeoHeIZT61en5Khj2bk/0 KMFXcx2PcXfixPXgAXQxnCXZgyI2fbAnow7NIZLYamQptA+CTMYWkegH0POhrWmSEiHW jqbipWpCGEputzpOAQQGPbDx5PlnMfznzYV5Godu+EAGYb9Xz8rmubd1H3xR90ZrnT1+ af04cjcddLR/6unN0kB3ruR/CdEF0EhBULegKC2m6DZVFNFluSJTd+BxRdzNazRR0n1s 75GcJEvRQGd+sEQ+MmtgeyIqZYafgKbZOofKEjMx8jil2vXkgiyLsv+wy9BQI6LYd1WY gR+g== ARC-Authentication-Results: i=1; mx.google.com; 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 z189si5892617pgb.220.2018.03.23.04.18.52; Fri, 23 Mar 2018 04:19:07 -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; 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 S1755737AbeCWKJQ (ORCPT + 99 others); Fri, 23 Mar 2018 06:09:16 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:41990 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755344AbeCWKJM (ORCPT ); Fri, 23 Mar 2018 06:09:12 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 9B21CF0D; Fri, 23 Mar 2018 10:09:11 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Oleksij Rempel , Andy Shevchenko , Sasha Levin Subject: [PATCH 4.9 097/177] platform/x86: asus-wmi: try to set als by default Date: Fri, 23 Mar 2018 10:53:45 +0100 Message-Id: <20180323094209.568964254@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323094205.090519271@linuxfoundation.org> References: <20180323094205.090519271@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 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 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Oleksij Rempel [ Upstream commit e9b615186805e2c18a0ac76aca62c1543ecfdbb8 ] some laptops, for example ASUS UX330UAK, have brocken als_get function but working als_set funktion. In this case, ALS will stay turned off. Method (WMNB, 3, Serialized) { ... If (Local0 == 0x53545344) { ... If (IIA0 == 0x00050001) { If (!ALSP) { Return (0x02) } Local0 = (GALS & 0x10) <<<---- bug, should be: (GALS () & 0x10) If (Local0) { Return (0x00050001) } Else { Return (0x00050000) } } ..... If (Local0 == 0x53564544) { ... If (IIA0 == 0x00050001) { Return (ALSC (IIA1)) } ...... Method (GALS, 0, NotSerialized) { Local0 = Zero Local0 |= 0x20 If (ALAE) { Local0 |= 0x10 } Local1 = 0x0A Local1 <<= 0x08 Local0 |= Local1 Return (Local0) } Since it works without problems on Windows I assume ASUS WMI driver for Win never trying to get ALS state, and instead it is setting it by default to ON. This patch will do the same. Turn ALS on by default. Signed-off-by: Oleksij Rempel Signed-off-by: Andy Shevchenko Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/platform/x86/asus-nb-wmi.c | 13 +++++++++++++ drivers/platform/x86/asus-wmi.c | 12 ++++++++++++ drivers/platform/x86/asus-wmi.h | 1 + 3 files changed, 26 insertions(+) --- a/drivers/platform/x86/asus-nb-wmi.c +++ b/drivers/platform/x86/asus-nb-wmi.c @@ -120,6 +120,10 @@ static struct quirk_entry quirk_asus_x55 .xusb2pr = 0x01D9, }; +static struct quirk_entry quirk_asus_ux330uak = { + .wmi_force_als_set = true, +}; + static int dmi_matched(const struct dmi_system_id *dmi) { quirks = dmi->driver_data; @@ -422,6 +426,15 @@ static const struct dmi_system_id asus_q }, { .callback = dmi_matched, + .ident = "ASUSTeK COMPUTER INC. UX330UAK", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "UX330UAK"), + }, + .driver_data = &quirk_asus_ux330uak, + }, + { + .callback = dmi_matched, .ident = "ASUSTeK COMPUTER INC. X550LB", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -1109,6 +1109,15 @@ static void asus_wmi_set_xusb2pr(struct } /* + * Some devices dont support or have borcken get_als method + * but still support set method. + */ +static void asus_wmi_set_als(void) +{ + asus_wmi_set_devstate(ASUS_WMI_DEVID_ALS_ENABLE, 1, NULL); +} + +/* * Hwmon device */ static int asus_hwmon_agfn_fan_speed_read(struct asus_wmi *asus, int fan, @@ -2120,6 +2129,9 @@ static int asus_wmi_add(struct platform_ goto fail_rfkill; } + if (asus->driver->quirks->wmi_force_als_set) + asus_wmi_set_als(); + /* Some Asus desktop boards export an acpi-video backlight interface, stop this from showing up */ chassis_type = dmi_get_system_info(DMI_CHASSIS_TYPE); --- a/drivers/platform/x86/asus-wmi.h +++ b/drivers/platform/x86/asus-wmi.h @@ -45,6 +45,7 @@ struct quirk_entry { bool store_backlight_power; bool wmi_backlight_power; bool wmi_backlight_native; + bool wmi_force_als_set; int wapf; /* * For machines with AMD graphic chips, it will send out WMI event