From patchwork Wed Feb 14 07:04:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 200839 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp1037502dyb; Tue, 13 Feb 2024 23:11:33 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWhOxtgvt7PVMBpXcMaM/kXfebvXTz4eJ9HdOhRfdsEVG6WIdD7Eoz5uArpkOVMOIHKHDCwbKYrwHEAMqnZLLMgMH6n+Q== X-Google-Smtp-Source: AGHT+IGYhd27fsN6Sh/OFhXHD/I95ewIPVTBb8oex+yv0KOMn1vqsA/U1M4VwcURSY+zw3u309/6 X-Received: by 2002:a05:6358:5281:b0:178:6363:5c67 with SMTP id g1-20020a056358528100b0017863635c67mr1603563rwa.21.1707894693309; Tue, 13 Feb 2024 23:11:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707894693; cv=pass; d=google.com; s=arc-20160816; b=xaDoWNCZH4k1v8uSd4aDJ3tHqiIUsHovWbRoJBq/w40UjcLY4naY5F71qI+mFZMzM5 PQQMFTI5SCuWcmXOseole7M4oy30GkSK7WoeFFNF6Awo/Q49bapbIJWiI1fZmwJKoTbC I044RwR3Yl8ye0pzjs37jVcjTf1v5Mz2Ysi/pKY3zIIqFb7GHuDrmg4/tOzXb/GnMCzc AtoFP6rXKGs/Mpo2aUUGadn5UjwtEmx7bZC+JFsq7kDPHoutNvTd8BgV0+nhILmSCd2U 1myK6ko7LfImF7hOfDfMIBFRCMasqFdpWo5vzHjVBbYJiDnORV+h/8YT+jdp6Kj0+qAV ARRA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-transfer-encoding:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Bq6iQKkhSzgeVGGp40otVI2qQRJC02LKIUFenEb1zw4=; fh=Vnc4LPriDh4ik7KN23WOUL5zJiJyNgY1CNc69CvwRSs=; b=QPtuh636Cg9Q2PkGi+sYys77HPTsgZhx4oxPiltbYiw/PgoevxaCINQ278pny5APIb LHZk4W9VBozsgRGBTVtfeoWWtG+7aFCMOB/8gGIEdLW1WOkbrIYBkxTjZv4ilH1d27gp YrlmLLwi3OiQVxh/L0M1xT9bYA9FWddUYaW6REVgccH9FeiGVJL7ZabAnmERSql5F1dz Wzfuz0pyTPQlRpCDRnOLEpRpYVoXEPLXgbYF8VyVxCqioWmIbSRttU0cWny/gL3faKtS H3LvQcg83CoBDXy4BDKcfI5ry9/tKf1Lhbvb6l7eS3Bzi2B5/EMZm24dnAdOiUbfvmTt BB5g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=pKqPcOHH; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64818-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64818-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de X-Forwarded-Encrypted: i=2; AJvYcCXbMksER8k8t/qVZH5d3mH79sMNwMb2SimXojvA6R5b46TaZiwIviNYc9QRiOluT8CpVXW+hlxiCSUa6oX3g7TsbCuUYA== Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id x4-20020a656aa4000000b005cdf8b4d2fesi3334643pgu.747.2024.02.13.23.11.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 23:11:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-64818-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=pKqPcOHH; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64818-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64818-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id EF843B21041 for ; Wed, 14 Feb 2024 07:05:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1487812E45; Wed, 14 Feb 2024 07:04:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="pKqPcOHH" Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCCF1111B6; Wed, 14 Feb 2024 07:04:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894293; cv=none; b=Wxu9dirwr0uS2gr7JEbnM6Wuh1zH+ywL+IEVk44S5YVBKiw8cglFgrwAX2sSRHI+5/tmOW92hNbRrdb5PBnfJWESqW+ACSl7KcflevYL5tt4JOXKc7SyEK7/BpsIEv05ZhPxC0p1qA4HPMl0brTC4GvLorJytOGOgaM47JFOEK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894293; c=relaxed/simple; bh=8WIWWUU+GbXzNoh423yyJOXltpMWeWKv8sdpqZTjWwc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ei6sQBE8jyPaEeu58RYOY8DouxbB8vm8nmuvXC9R5gAaULBhlVncdz8Mrv9RUPZ6hoCk+1dUGWgw0OUguBBZq4YCv2uHWn20rhRlJ5rZxqP+fn3GzO+EmGmi4MatZBSg1jKYLRYyw86ff7xE4uPpsbII39IRuWxXkRtIu5RczW4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=pKqPcOHH; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1707894278; x=1708499078; i=w_armin@gmx.de; bh=8WIWWUU+GbXzNoh423yyJOXltpMWeWKv8sdpqZTjWwc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=pKqPcOHH9qt0K+PpYwW8mhb3VRJFRZGa3L896sIU5H6DPiR8EAc72P6McNHzUFqy uGK/9X2ds5XeAG4jl7Ad6ND4mDsuqv9H0ElZ5hfqAgxLlLdsdqun65kTlLvXXI3W0 bU+t1Lrwa8423eboTaOMNfJbJz9kR7TXJmV/gwpdW7rDaP9nZixtYSydppxo5Urt/ ZyJ1R9/CZj4BwBkGRxwNKqCJozR2pBNM7ZqOrsWQGelglAUhZZw50usBnSrpxEpWg aivbwhlB6K9dbUTI5uAVzxKZfMUVzN/zqev2XSbLT9ZTROT1dPZOf6KOEkfNhWuBq /IhSs+nVPexCsHRfVA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MD9T1-1rjBsV2EWv-0098Vv; Wed, 14 Feb 2024 08:04:38 +0100 From: Armin Wolf To: corentin.chary@gmail.com, luke@ljones.dev Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] platform/x86: wmi: Prevent incompatible event driver from probing Date: Wed, 14 Feb 2024 08:04:29 +0100 Message-Id: <20240214070433.2677-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240214070433.2677-1-W_Armin@gmx.de> References: <20240214070433.2677-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:z0+cLwmfh32NWUP0FBmWp4fdiQOVVMcb+/mVpjhXSCfZo2sZe78 JQsDR11z4W6ZMI9VVYH7bACwKzZVRQeFaWwxP4If9qGaEGjx+DLO/D4Za2kqnfBOnCOfY/2 TM6P9hrJi4OU/H/tZMOeI0IFMb5Iosm35/LlF1VG29rxuuH1+An4z5Jy9ZAp6kWCL7o2DIh s7oAhOTtbPIFJ6ko1Vdfg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:5UOUuCvHEkY=;VOe8NGUwF81q+RZMe7qwYJIf7gg tBJIWr6iLgOyoc6tcJl13QlHE8CoPYOaDcYyMm9MyVGzB5gCjwBx4sfdGxpfLD7G4oLzL93Nx 3r/sOr/OxKNw6solx/Y4j6ymTHCc2e/eS/UWaMYbgfSKGGRf0+aOrAaJK2Up3atLiPRHQ1Vro x63ZVCZ2yeGbXVNfK+LJ/YADFCtjLAUJrmqteK/cIjYnqwxCGkbf75jnc7P9xjmYL2/xSTxIP zVJI/vcpved4bPfX8nYZhNzKgBCeyvQip1chk+Rblv1vvp1dufiTFmy4ytyG4DFsEFXnj432s AOSOC1hL8OT0chg56WcjhopIRok7Pvs79NQtZT+kwndJnOBUQTk8vWNQEm/Glaa9eis3xzh4q WVWjzu+yOX2evHbQ8fv69QYzD8Fuib2g+Tm0nJiD8ZvzLlwqr44zTZEaL93i42jChyp52KwBB LhRdd+Qt7ertVuI1c3YBrz8bpYdeNttTOstnwXHxPRVdBcx4XXyXUjx0+M6Kb/EpwxdTdZOWk oDIZYcBBuFXnjRCn7SQ2NzMbyatAZWNklUhA9Q61txqe2tOoAqps6GCMIRtIDVXNhWo8i8dHP RxP8eLwzoFnKrDTGJJHgrVd0KUDO4cO8ErvKTSMFjKGYogoqK9+fF5BfGLFEQmCX7UWtBcSbe ggOfBhrcnK+chKa3WGzfkGJRO842ufrcg0L3qKAXxA/6GkxUupkMlFhts5ktvOqhV6rSp3Euv WTJPz2CkyVcopMH5yAeFj2pngWITN4zFr3OZr6xIlLJsTNLy52aoWj8bARVRjBsxglzZc/Mgd TbrEvjIg9z6e5G7Suz0ulBurL5M7qjuNDwkRxN9WH7y+4= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790857385665964703 X-GMAIL-MSGID: 1790857385665964703 If a WMI event driver has no_notify_data set, then he indicates support for WMI events which provide no notify data, otherwise the notify() callback expects a valid ACPI object as notify data. However if a WMI event driver which requires notify data is bound to a WMI event device which cannot retrieve such data due to the _WED ACPI method being absent, then the driver will be dysfunctional since all WMI events will be dropped due to the missing notify data. Fix this by not allowing such WMI event drivers to bind to WMI event devices which do not support retrieving of notify data. Also reword the description of no_notify_data a bit. Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 10 ++++++++++ include/linux/wmi.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) -- 2.39.2 diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index b83c0f0ddd5c..34d8f55afaad 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -57,6 +57,7 @@ static_assert(__alignof__(struct guid_block) == 1); enum { /* wmi_block flags */ WMI_READ_TAKES_NO_ARGS, + WMI_NO_EVENT_DATA, }; struct wmi_block { @@ -870,6 +871,11 @@ static int wmi_dev_probe(struct device *dev) struct wmi_driver *wdriver = drv_to_wdrv(dev->driver); int ret = 0; + if (wdriver->notify) { + if (test_bit(WMI_NO_EVENT_DATA, &wblock->flags) && !wdriver->no_notify_data) + return -ENODEV; + } + if (ACPI_FAILURE(wmi_method_enable(wblock, true))) dev_warn(dev, "failed to enable device -- probing anyway\n"); @@ -1095,6 +1101,7 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev) struct acpi_device *device = ACPI_COMPANION(&pdev->dev); struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL}; const struct guid_block *gblock; + bool event_data_available; struct wmi_block *wblock; union acpi_object *obj; acpi_status status; @@ -1114,6 +1121,7 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev) return -ENXIO; } + event_data_available = acpi_has_method(device->handle, "_WED"); gblock = (const struct guid_block *)obj->buffer.pointer; total = obj->buffer.length / sizeof(struct guid_block); @@ -1132,6 +1140,8 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev) wblock->acpi_device = device; wblock->gblock = gblock[i]; + if (gblock[i].flags & ACPI_WMI_EVENT && !event_data_available) + set_bit(WMI_NO_EVENT_DATA, &wblock->flags); retval = wmi_create_device(wmi_bus_dev, wblock, device); if (retval) { diff --git a/include/linux/wmi.h b/include/linux/wmi.h index 686291b87852..781958310bfb 100644 --- a/include/linux/wmi.h +++ b/include/linux/wmi.h @@ -48,7 +48,7 @@ u8 wmidev_instance_count(struct wmi_device *wdev); * struct wmi_driver - WMI driver structure * @driver: Driver model structure * @id_table: List of WMI GUIDs supported by this driver - * @no_notify_data: WMI events provide no event data + * @no_notify_data: Driver supports WMI events which provide no event data * @probe: Callback for device binding * @remove: Callback for device unbinding * @notify: Callback for receiving WMI events From patchwork Wed Feb 14 07:04:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 200837 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp1035462dyb; Tue, 13 Feb 2024 23:06:53 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUHUl4l3vqtKBQzlI9NKQfYffOuLPUb4cytMybBpnUvAV+qycUvjNADwMBsm/xOZIvzB5nAIjx4358/TmGyNMvfDLPt2g== X-Google-Smtp-Source: AGHT+IHUC29qsYb7UmQM1I+9kVt9t9Q6dtvO8lo6aXkqnWmmgemJWKUN6ngFsMWqOlVkq/IcGxL9 X-Received: by 2002:a05:6870:d623:b0:219:f490:a7a5 with SMTP id a35-20020a056870d62300b00219f490a7a5mr1767354oaq.45.1707894413241; Tue, 13 Feb 2024 23:06:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707894413; cv=pass; d=google.com; s=arc-20160816; b=hSRa1nl88ilLZyfIG/nhJe9BbzeYM0iGlAYyJy2pVugn7zZyIDyTy+dfJ6CEkawDo4 JCDohoM44rdc2xxchc+y9FSSAoYp1HVn3+4hcLSPognqoV0D9mcUoqEUSihudx3B6nRs rnz2ytGPgkBvEtdA0FWO7H6FTqlBFbhdcTNVF4bczDyjtR67JrvRUGpx0yVI/6e/yqJE RSTa+p5tVbUX0ow8T01evquzowNGr1OBrOiHmpXSWxGMZFKrXK8Ji8F4PsAdp4YJcNS+ 8baMFKGNrQHUg72G9AVM+oBlYF0I8tj93WfFMLBoXFkGerolG3v5lWlIqDRMW2sqITOq kO1A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-transfer-encoding:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=qHfzr9Z6AbrLnleJ2vRO1YVBS5jWB6XYcpAOq7kcFsM=; fh=PGLoma5U7rMgfmaTr38ubG/C/gniXsstRxtnUVbCqZU=; b=aDPHzbVmFXqVzzpvVB8bCoPsMCYIXZZr6mfTcsI6a9vQITRbNfOJpdkgIjOuPltoAB +x0AXucwpYZwcgrGVhH2alfuXeAhRvU1OGdJwEr2o/WBCz00lmj9zvzKrc9zU9FKJ6NO aSg7UApZ0zAY/9gyuFiEYhVXxJ5Z61FtHbUU6c6/so1snpHIuH1+Z4F89fSG/ujEjK6H UGVWUG3zfuKjddSdalnX0JwfmUujFpMVR2upU/Rtt4SKpCmEpr9aWuTf63VgvkCqueXK VViGwosP69IfIg2cX60CCN0pxtYSUJZVsKmD9ElO4N+CaxSxeR7wMJhoIY3xTg+qlpzE Q5mg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=VKujJ4Vy; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64822-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64822-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de X-Forwarded-Encrypted: i=2; AJvYcCV/RMNoJRnhtTxFCBRZScuaBO61X9+FTIgNeSxIfcPQrGEiB2UYVMD46pxtug6nCrYZsMx2Lj+LzJeFVOaQ0K5x+Yh98g== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id m29-20020a63711d000000b005cdfb84720fsi3282286pgc.857.2024.02.13.23.06.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 23:06:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-64822-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=VKujJ4Vy; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64822-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64822-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 8DA06286C7F for ; Wed, 14 Feb 2024 07:06:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 02F9116419; Wed, 14 Feb 2024 07:04:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="VKujJ4Vy" Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 606BF111BE; Wed, 14 Feb 2024 07:04:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.20 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894295; cv=none; b=LBOZHCMaR641gTO9Veg8MjPvj4+kePgqP5uInBQUZyKhmKFG+kCXMq1E4S/jVQuGsBWtgb1mJu633YOP7BZE8nAU031P//lZtjG7m5aqVTKcaBhtKuytu5pfDCCicTHSWefHt3ZTRAj2m78obKN/0pjgZRtQ2LFwXju8soyj3YA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894295; c=relaxed/simple; bh=qHfzr9Z6AbrLnleJ2vRO1YVBS5jWB6XYcpAOq7kcFsM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=L6iCeoJnibiqu0i7nHXcSS8p4R/Aw+bV+ZEKiaxfcy4WllgAe7eHv8iakmOTq7lzohyFjHIuBXgY2erxYAqF6Zi+vhlE3LwtsvYqqZUh7a4OK9y9xCR2YyNmSFFXFbprpR/SyhxZIXy/5+aadUdolHeosK6uUK4ydrXfk1aVjYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=VKujJ4Vy; arc=none smtp.client-ip=212.227.17.20 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1707894282; x=1708499082; i=w_armin@gmx.de; bh=qHfzr9Z6AbrLnleJ2vRO1YVBS5jWB6XYcpAOq7kcFsM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=VKujJ4VydpfQlZJyHHf0w5Ig9CSIgulNK1w/eSsDseTXAI1rmDcXim3TDHHUNzP1 quIe6g7hlGlskRtSGev5CbJ0munBdymTMAl1QBmop+o9x8+m1vsYOCyEmbYltpf0m rT9ZoR15nYdqqzrNi3XvBpujnE7PvausvV8HRQ1priDiuZz/pdIyzl/nqGe2ro+lA v1jUw0ruKmwVnZyFTevw9nE8DNdX0hnIrsJiQPA/AT1PnEs2IMOyKVu224FWMry3n R0sJ3HTKwfAn7OxM5e/RWMMcFEqpx7c9d3mobPBg3lvi39rNFZk17EWyUQuZ47al8 /wilx0aqBdwW+MT5Iw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MIdif-1rmVGp3JX3-00EgDZ; Wed, 14 Feb 2024 08:04:42 +0100 From: Armin Wolf To: corentin.chary@gmail.com, luke@ljones.dev Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] platform/x86: wmi: Update documentation regarding _WED Date: Wed, 14 Feb 2024 08:04:32 +0100 Message-Id: <20240214070433.2677-5-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240214070433.2677-1-W_Armin@gmx.de> References: <20240214070433.2677-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:dbO3uuwlKIrxeUIUm3YJzFs4CKaDxi5uNObhcAbIaZAAhlvg2+e K49uGcVWqc+0jsJ21zYCSuD1gvfnGOaz/lavIp5EJULuqlPOczxezNcmqmORkKPHcR4ilqf DYgO6ZWELDGwQmt2ecVzc3AnhsU3gW9z/YcaT61sf0G+XTa0JWoUK17BEjNx6ig0bNxUiXd ofKrinCBS1ZgYahqKjrfQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:r5GjNjsGBWg=;fOr3OJzvZTvySH0j/QmwI8IVq5r gNFXAX765DlnQm182+sLNzCRCTyorUNwUFnogA2J9gkmGwO7lr5cKv9eoRX86Pt+5HeTPzHSI 17dIyKC7r+PtRXFwYN/GZ+77CuJ0QLm5DiUQbcS0bjiSG++4UY0Ie69kISTSNFAl7ZV3clQ/U mLe7g9jTkNqjU7lBFtwtmt7121HXXZq/K90LteNrbE2/uF2E6NuemcVRBmEudfkNrIOPWBlCc jcTV4LpIfCoIV6d1vf1sXKOLf57Kn7wsuiN1wu58TJN7JhdZ0WEMClAvOuerbdLO4NSoLoQBA NPOldYZwuSuucp6bbH/WR7tjWOsidbbdSomWqkqo5yaxDwTtOYMDc2sBUtnb59E9bO77oltdG Vv16sJZ0oN4F9J1j8p+Q5YRgSelH7DJAhv5YBWbYd6FDBl1Syi9uBGdviqLXue8pxtFZyFmeB 2l/hWCpCtJd5F9tlxntRq8sTpv/V6eY9+v6mwG4UYwZcJ5oryY0ONgEQtNrN6CGj01UVFFt6t F/fH2K3SL6m5YQUUBoTPdztzR8qbaxy4fZRwRf3TgczpwLoTCNZSY10te09k0OWEJToH8O1D+ 5ivOMiFCUaMiocgXUwMw6UtF46rZIH10IgsDCcg6QW8gVHc4AL8PdTb4St1iwJ41eDJFzHwA6 2W+RfsetBm2Vl1dgM/e+Htl6NAOouJv3HV20V48gGKiVuJBUh2MPGUHqmrI/UalA8avzdObLK yfBCdmOVNaWvu/CShBz/OM2KLDsgFjsoy/OI0tFeDAoVEFm0RfQDM1O7QgMw/2YtM1Zi2L5lv SVCjuNnFEzhOuKzMqVLksEQSnjDBXVJVJiHUuIZS9Ig/c= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790857092042244111 X-GMAIL-MSGID: 1790857092042244111 Update the WMI ACPI interface documentation to include the fact that _WED should be evaluated every time an ACPI notification is received. Signed-off-by: Armin Wolf --- Documentation/wmi/acpi-interface.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 2.39.2 diff --git a/Documentation/wmi/acpi-interface.rst b/Documentation/wmi/acpi-interface.rst index d31af0ed9c08..06fb7fcf4413 100644 --- a/Documentation/wmi/acpi-interface.rst +++ b/Documentation/wmi/acpi-interface.rst @@ -93,4 +93,7 @@ _WED ACPI method ---------------- Used to retrieve additional WMI event data, its single parameter is a integer -holding the notification ID of the event. +holding the notification ID of the event. This method should be evaluated every +time an ACPI notification is received, since some ACPI implementations use a +queue to store WMI event data items. This queue will overflow after a couple +of WMI events are received without retrieving the associated WMI event data. From patchwork Wed Feb 14 07:04:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 200838 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp1035534dyb; Tue, 13 Feb 2024 23:07:04 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWI//OlspH2c/znBc60ZgQbSAfX6QD8vsQ5YgZdyIFRY3TbTbJpDvo2pg0OOgjgklUnyCygyg27kAwnIZ5nxMGKgw6bdw== X-Google-Smtp-Source: AGHT+IEwByiPbqjMJefmUcuX8LF4HS/6onWEdNo2hRqqS95Vse0LCPZ+5YpzhWRq6YBFEW52SKA1 X-Received: by 2002:a17:903:2346:b0:1d9:924c:c9cb with SMTP id c6-20020a170903234600b001d9924cc9cbmr1962219plh.37.1707894424702; Tue, 13 Feb 2024 23:07:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707894424; cv=pass; d=google.com; s=arc-20160816; b=JkeNKN8xmk4gxZiKUiRwT/zLfW6oGZpDGDjtE/uMsd9/evFDIqzk98SaxbVkrD1ytH 9xH0EeVskn1ULmyvC8gBYAZtKvrpTN+IrNO7YRFlaD6CGC9fPS9x/4ypQ8zGl75dQJwZ 7KAeOxnA1STekvG9upwhnoFqefh3h5Y8cZDjUQG8ZjbPMygK6r5b5b1iZ2SBbjBCGgpN 0GDuX2bkLdgxUUZE8yaUDbnwr7ff6SJUC9aR+P1lmxh9Y3ObFLO6rJKFB9x6h3yvteTq 1CM7Vjo+LPejXc+u9bwwUY8fFLkDcceBi7WznfI+XaFR39ar2reyuIUVZQ/uhkp7Zuof /hYQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-transfer-encoding:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=tdFebCP06FL2AsMK6IqE5wgK5hTseUHsZlGCgIIVtsA=; fh=gM10O9kGUDUAj8hwC3TEOL8GBhPSHEdC4+vcNxFk2yo=; b=B0UTI4cOr4NxsrWeDj91Yp5SDx1UYnm8T1wC7uMYqFttjSrdWW/GsPwGW2j5kQKDZ4 UW2Gr1iV+I4WPO6D3XgCi9ZBAeXmhJ0qA38Tns2tfLMQVNfXvrdIzbiW8QNQobTvMU0I srEUgB/hQ7qgC9cDogejXFF2flbWgYYX44DvwFzqPv5gxCSspyRTa80mxNkpz0PSN/6P 85vjjJbDKifXv1OA/F7DeIWR0kTMZZJpyfnN26KzCPjdhD+CHbZVqqlY6USZkp4OLqiQ JBWFgCFXUEr5OhRMODR+gqgZmUYMDBRq9s/bj+h+hXLhAa1M890Psu/IkE3a6a/gamwb rRJA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=SIMvMopQ; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64823-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64823-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de X-Forwarded-Encrypted: i=2; AJvYcCWbQZ9kxRe12W0N3o200xREGHouLlLvawm8EUtN9g9zybz3GRZANLNt6H8EpgxIJUID+Kzc7oxdtdEQQ+3Xo6vzlBl73Q== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id i3-20020a170902c94300b001d944e92be8si1674833pla.146.2024.02.13.23.07.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 23:07:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-64823-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=SIMvMopQ; arc=pass (i=1 spf=pass spfdomain=gmx.de dkim=pass dkdomain=gmx.de dmarc=pass fromdomain=gmx.de); spf=pass (google.com: domain of linux-kernel+bounces-64823-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64823-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=gmx.de Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 320EE28C091 for ; Wed, 14 Feb 2024 07:06:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3A8E5171A8; Wed, 14 Feb 2024 07:05:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="SIMvMopQ" Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4AD6912E72; Wed, 14 Feb 2024 07:04:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894298; cv=none; b=HTvxZeufWdEHLEq5Gz0tFS7SJSMI0TS+lyBzxA+sUcTe6JsmrD6+2nA8CE3wJTpIk2Wq8oias1axtm2zvuJtXuZ1ZCmijYnvcgbMWMbqQG1WZnZwFZE5gWvYyI4D2avhM5icF3u+F08Eiw+/4dHb4vISvNrLQJdC/GQ9LkSEE4s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707894298; c=relaxed/simple; bh=jNbs6mh9NRNmcMy+geYDC/0FJuXGdyoG3yuMN5TBvyE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NiXWmt0Q4xvb1KAmOd72bLsYwNFk4KVxnjNM+UcLSq6kKI4Mn2blVFIDR1sl8RHEdB+RB1+fAkM7m2dBQo7TU7shArg5suRhX7oBd9ElSsGBKoh5s6bN+OWkt6bPWh32YEaPiCPxa8160wWqbNtTENA+h9S4C6EltIK/ytl/u/E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=SIMvMopQ; arc=none smtp.client-ip=212.227.17.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1707894284; x=1708499084; i=w_armin@gmx.de; bh=jNbs6mh9NRNmcMy+geYDC/0FJuXGdyoG3yuMN5TBvyE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=SIMvMopQ3rd+EVHEJtD1umlmMjnWjtFqsGqKfQtI8pHKo8ZPNcVvUNMNyPb56gqJ uXDFWT5XsuJQT4ZfhyLnFm2XB01toM15TiH7cyJRh3OkCrqs1Z4Mi98Q11I1i20cp lhwh5y8rjpmwqSM1hV5H+E8S9mpbCiLtiwpKmQaLIfnmz79a491A8QMzKmACpjZao 5ys5hGhbR6qBknZAFIpfwt4BoQdBnNbeBtVGIixjmbTvYUesHyXwVLMZfUHZxuXFP I8Q0M3tM7BL93VLB7UnwpyPVTMwQuHTvWYqpWVJzx/9ckRUn7vxM8h4e+gIqWCbvC CkrQJlJhp6ofj9sZrQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MYeR1-1rWUJz0P8V-00Vf0h; Wed, 14 Feb 2024 08:04:44 +0100 From: Armin Wolf To: corentin.chary@gmail.com, luke@ljones.dev Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] Revert "platform/x86: asus-wmi: Support WMI event queue" Date: Wed, 14 Feb 2024 08:04:33 +0100 Message-Id: <20240214070433.2677-6-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240214070433.2677-1-W_Armin@gmx.de> References: <20240214070433.2677-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:wyGbHPosidm1hk/7v8ToNR7ME3UU99ChHqlYcLaMV5BXXNBdroc c0JsZdWySDnOxaTGtRltdabda71rSYPXuoHFe0D54wFJDN4yN4nmKdckTB2voiXx9C4rAyq pFM4TBG1e7H0QqIaX8GI5gB4gMtTrgp5JgvrIwj3sZx5/xv5TxzfeB++gHxJteW77QWvH10 F/nM0Bk3p2N7gly30hu0g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:VggErPqJM9c=;PauDD9Ido5AEVDLIW3VhEGRrO8V sDNPHDUGZRec9GOTnqKdSvtNLMfDvyDcShVmaPPNE+AEQFRxMusubSNIlFTvYEpcZS9WYjayg jJAeYDbr2F4NKMqxlv57DZHNb66LuXIfw66CZtL136XdjfPOJaCnF9/2R6ijzvauaG5bnjvIX 7a3jjJk6FHnuORUUBpDINq5LCfjoFKl6WTOUl8ftfmf0/4NDlkFUrwD6p6YGuFvqw9aZ8j4SJ 7YQund/DFxAq0M6pezSj4VeHLoNFDby61ksAZXvFsu3p5prE8a8rzVg2itwuCHvnZx8eg3oJd X0rwaJ1TLfVmbPaa960VpYUPb19F4p9shp0XOfh25n8MbBCWgCrAbopBZMSsgay0/DOOLhaG2 a2JVf/cj0rXViV1zCUQ3On0bxbQOytXF0rYLdJ0O16kpmZRXwCD//Tc7qBG/6dGzxHrF8cdn3 o1c59O+KL6dI6a22CJDuzFyTs0OIuj9ygNVe//2NqMwCoJDlhjgLN/MK47FRkebVlV/aXoHnR yIGMUlX3Uh/hoIkKwj0mSlVsueTNQXlkdZVRZM4IUTM1pWEHyARv3yqUje290W1ScP1Qhu15Y 74ql3vMKJqPTQH8he063400q0UIYG/uFQYX23G6bLkDwlkt4KyhzYUY6jFLgRY3hIo1U0B9wv Ikb+ouKy/djRt2d0mYr+6omUkcmlRnkJsJ3Kxn4pbLAcaGgSQrYIl76PjrvDdOEg5YyTslGbH e+h42LNNDXYrbnkMY1jo/xxofpObcW6YYg3jw+QHNWTwaC998cdeRZTvzPChvmnL5bh5aEcs1 AdvY018m246TnKtGckaoEoPF/p7B6wUb2gKx0mm8JDfDo= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790857104676159831 X-GMAIL-MSGID: 1790857104676159831 This reverts commit 1a373d15e283937b51eaf5debf4fc31474c31436. The WMI core now takes care of draining the event queue if asus-wmi is not loaded, so the hacky event queue handling code is not needed anymore. Signed-off-by: Armin Wolf --- drivers/platform/x86/asus-wmi.c | 71 +++------------------------------ 1 file changed, 5 insertions(+), 66 deletions(-) -- 2.39.2 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index 21dee425ea6f..2865af89e95c 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -101,13 +101,6 @@ module_param(fnlock_default, bool, 0444); #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 #define ASUS_ACPI_UID_ASUSWMI "ASUSWMI" -#define ASUS_ACPI_UID_ATK "ATK" - -#define WMI_EVENT_QUEUE_SIZE 0x10 -#define WMI_EVENT_QUEUE_END 0x1 -#define WMI_EVENT_MASK 0xFFFF -/* The WMI hotkey event value is always the same. */ -#define WMI_EVENT_VALUE_ATK 0xFF #define WMI_EVENT_MASK 0xFFFF @@ -219,7 +212,6 @@ struct asus_wmi { int dsts_id; int spec; int sfun; - bool wmi_event_queue; struct input_dev *inputdev; struct backlight_device *backlight_device; @@ -4019,50 +4011,14 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus) static void asus_wmi_notify(u32 value, void *context) { struct asus_wmi *asus = context; - int code; - int i; - - for (i = 0; i < WMI_EVENT_QUEUE_SIZE + 1; i++) { - code = asus_wmi_get_event_code(value); - if (code < 0) { - pr_warn("Failed to get notify code: %d\n", code); - return; - } - - if (code == WMI_EVENT_QUEUE_END || code == WMI_EVENT_MASK) - return; - - asus_wmi_handle_event_code(code, asus); - - /* - * Double check that queue is present: - * ATK (with queue) uses 0xff, ASUSWMI (without) 0xd2. - */ - if (!asus->wmi_event_queue || value != WMI_EVENT_VALUE_ATK) - return; - } + int code = asus_wmi_get_event_code(value); - pr_warn("Failed to process event queue, last code: 0x%x\n", code); -} - -static int asus_wmi_notify_queue_flush(struct asus_wmi *asus) -{ - int code; - int i; - - for (i = 0; i < WMI_EVENT_QUEUE_SIZE + 1; i++) { - code = asus_wmi_get_event_code(WMI_EVENT_VALUE_ATK); - if (code < 0) { - pr_warn("Failed to get event during flush: %d\n", code); - return code; - } - - if (code == WMI_EVENT_QUEUE_END || code == WMI_EVENT_MASK) - return 0; + if (code < 0) { + pr_warn("Failed to get notify code: %d\n", code); + return; } - pr_warn("Failed to flush event queue\n"); - return -EIO; + asus_wmi_handle_event_code(code, asus); } /* Sysfs **********************************************************************/ @@ -4302,23 +4258,6 @@ static int asus_wmi_platform_init(struct asus_wmi *asus) asus->dsts_id = ASUS_WMI_METHODID_DSTS; } - /* - * Some devices can have multiple event codes stored in a queue before - * the module load if it was unloaded intermittently after calling - * the INIT method (enables event handling). The WMI notify handler is - * expected to retrieve all event codes until a retrieved code equals - * queue end marker (One or Ones). Old codes are flushed from the queue - * upon module load. Not enabling this when it should be has minimal - * visible impact so fall back if anything goes wrong. - */ - wmi_uid = wmi_get_acpi_device_uid(asus->driver->event_guid); - if (wmi_uid && !strcmp(wmi_uid, ASUS_ACPI_UID_ATK)) { - dev_info(dev, "Detected ATK, enable event queue\n"); - - if (!asus_wmi_notify_queue_flush(asus)) - asus->wmi_event_queue = true; - } - /* CWAP allow to define the behavior of the Fn+F2 key, * this method doesn't seems to be present on Eee PCs */ if (asus->driver->quirks->wapf >= 0)