From patchwork Tue Sep 8 18:29:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kyle Evans X-Patchwork-Id: 7142951 Return-Path: X-Original-To: patchwork-platform-driver-x86@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id B73AD9F1CD for ; Tue, 8 Sep 2015 18:29:44 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BCB1420772 for ; Tue, 8 Sep 2015 18:29:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BE4312069A for ; Tue, 8 Sep 2015 18:29:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754068AbbIHS3m (ORCPT ); Tue, 8 Sep 2015 14:29:42 -0400 Received: from mail-ig0-f175.google.com ([209.85.213.175]:34283 "EHLO mail-ig0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753460AbbIHS3l (ORCPT ); Tue, 8 Sep 2015 14:29:41 -0400 Received: by igcpb10 with SMTP id pb10so85936007igc.1 for ; Tue, 08 Sep 2015 11:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=lXo24AAK+iqf5rBkVmByugD7XRyHkeolw2c7/Rrz2Ik=; b=kwKvIb+h7ad56UMsH/YHtu3goe+9Dq+tirnggoMk15JgTGJn+u3flRjVNDJ0sMqjc7 MACDchJjFe0sZ5LbYpBjE0ktIz9y4T/W4HZhIpNZKosHX4UH8c+bgNvG7CNwuxc/sDby kuLmVxpmsXorY/aU53nX6CWo+OgRofHEtzI4VN0384ejbVVSOyi3dXUOBgZ6qMsQj+si M4Klagg8sBLqmk7lDd5tQhnSDfqm+sYjDn9Aro5VNBQL9z+zmfsyxzWMHcL6u45Jgqd4 lhJTGnxRg/PSmHQWO9dC+SkJdS4qblQ+acjXsE8XSmoc9mPDVu2lPAwEXADVVi/V8Ki/ MBEg== X-Received: by 10.50.66.148 with SMTP id f20mr43571624igt.81.1441736980950; Tue, 08 Sep 2015 11:29:40 -0700 (PDT) Received: from [192.168.1.47] ([208.78.206.26]) by smtp.googlemail.com with ESMTPSA id rq3sm8664349igb.1.2015.09.08.11.29.40 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 08 Sep 2015 11:29:40 -0700 (PDT) Message-ID: <55EF2913.2090902@gmail.com> Date: Tue, 08 Sep 2015 13:29:39 -0500 From: Kyle Evans User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.8.0 MIME-Version: 1.0 To: Darren Hart CC: platform-driver-x86@vger.kernel.org, Rafael Wysocki Subject: Re: [PATCH] hp-wmi: limit hotkey enable References: <1438959360-20901-1-git-send-email-kvans32@gmail.com> <20150828184228.GA64484@vmdeb7> <55E1CF30.10501@gmail.com> <20150906180339.GC90062@vmdeb7> In-Reply-To: <20150906180339.GC90062@vmdeb7> Sender: platform-driver-x86-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From 7d11e942d2c84919ded37b46a72be59f34141c5d Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Tue, 1 Sep 2015 18:50:45 -0500 Subject: [PATCH] hp-wmi: limit hotkey enable Do not write initialize magic on systems that do not have feature query 0xb. Fixes Bug #82451. Define a new feature query to differentiate older systems and rename FEATURE_QUERY, 0xd, to FEATURE2_QUERY for code consistency. Also, some return value magic number cleanup. --- drivers/platform/x86/hp-wmi.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) if (ACPI_FAILURE(status)) { diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 0669731..c0a7817 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -54,8 +54,9 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4"); #define HPWMI_HARDWARE_QUERY 0x4 #define HPWMI_WIRELESS_QUERY 0x5 #define HPWMI_BIOS_QUERY 0x9 +#define HPWMI_FEATURE_QUERY 0xb #define HPWMI_HOTKEY_QUERY 0xc -#define HPWMI_FEATURE_QUERY 0xd +#define HPWMI_FEATURE2_QUERY 0xd #define HPWMI_WIRELESS2_QUERY 0x1b #define HPWMI_POSTCODEERROR_QUERY 0x2a @@ -295,7 +296,7 @@ static int hp_wmi_tablet_state(void) return (state & 0x4) ? 1 : 0; } -static int __init hp_wmi_bios_2009_later(void) +static int __init hp_wmi_bios_2008_later(void) { int state = 0; int ret = hp_wmi_perform_query(HPWMI_FEATURE_QUERY, 0, &state, @@ -306,14 +307,22 @@ static int __init hp_wmi_bios_2009_later(void) return (state & 0x10) ? 1 : 0; } -static int hp_wmi_enable_hotkeys(void) +static int __init hp_wmi_bios_2009_later(void) { - int ret; - int query = 0x6e; + int state = 0; + int ret = hp_wmi_perform_query(HPWMI_FEATURE2_QUERY, 0, &state, + sizeof(state), sizeof(state)); + if (ret) + return ret; - ret = hp_wmi_perform_query(HPWMI_BIOS_QUERY, 1, &query, sizeof(query), - 0); + return (state & 0x10) ? 1 : 0; +} +static int hp_wmi_enable_hotkeys(void) +{ + int value = 0x6e; + int ret = hp_wmi_perform_query(HPWMI_BIOS_QUERY, 1, &value, + sizeof(value), 0); if (ret) return -EINVAL; return 0; @@ -663,8 +672,9 @@ static int __init hp_wmi_input_setup(void) hp_wmi_tablet_state()); input_sync(hp_wmi_input_dev); - if (hp_wmi_bios_2009_later() == 4) - hp_wmi_enable_hotkeys(); + if (hp_wmi_bios_2009_later() == HPWMI_RET_UNKNOWN_CMDTYPE) + if !(hp_wmi_2008_later() == HPWMI_RET_UNKNOWN_CMDTYPE) + hp_wmi_enable_hotkeys(); status = wmi_install_notify_handler(HPWMI_EVENT_GUID, hp_wmi_notify, NULL);