From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 993CF1DB554; Tue, 3 Sep 2024 20:42:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725396147; cv=none; b=A4vH4UNNZXljqdzoUKmAq0InvcDCkKVCtLMQFbHOQKfB4WAcw+p/E+Vmd90GzBOh0pd6/luDKWw4DpdNvGe7Gg3RVO7Vq/vjVe+DiZBfGPxng+zu9RocPiAq9FQWePhPJJ2cHpfPyZ5hnv8Sa62Jn+LxBd+oiLjmI2ewykKxSBk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725396147; c=relaxed/simple; bh=RxI8GFXMoXcmGMJElSAc2SJChgm1aEv8s9B6Kz05nc0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RfpVLq3yh0ayQzhXNGzRzD1Ju4VHp1dJ45YTSMzYnuqdf64ho+UhAUUqYUuECMjZb6PLfUwD6WLQWi4daxeD5KEDuHKl0kXulCrOoGe/HAhzzrP96KnRsztwGMIyfHYXYBNTEizoMuoCDOS5ETgFv1cwwxvMM9BbsFcNn71L9r0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BKRvDrev; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BKRvDrev" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 672D5C4CEC9; Tue, 3 Sep 2024 20:42:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1725396147; bh=RxI8GFXMoXcmGMJElSAc2SJChgm1aEv8s9B6Kz05nc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BKRvDrev8R1RaIWwUsjG0gZLP+rq8TSwt90Ci44iqMBG2H2P/TC25NCxH+vzy+RzO 96fqfDryLTkX943PXLlm5OnjF7lojc7mH0eKDW+Fd9e/rCgK0Mz/0r+CerCGPS02Nm mUrzrQggWSgWkSy8D8MXkHoPSfm2EBeXmldz1gBh2IF8ZVybwmN31rr/C5Gw7TeNbI g/rbGLAqVOj4N1ILeFdcWag2LnKD088lTDxlPOTdsonW2otfCpG0T3CSKmPTSeclLY mfjm7tpmKGD1KwbK0mSjVi/9Du2r705Pv7itjudsN1Zq5PBeuB/vq/MqJuKJwZPx80 ckaCi5bCmJwNw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mathieu Fenniak , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Sasha Levin , corentin.chary@gmail.com, luke@ljones.dev, hdegoede@redhat.com, platform-driver-x86@vger.kernel.org Subject: [PATCH AUTOSEL 6.10 11/22] platform/x86: asus-wmi: Fix spurious rfkill on UX8406MA Date: Tue, 3 Sep 2024 15:21:58 -0400 Message-ID: <20240903192243.1107016-11-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240903192243.1107016-1-sashal@kernel.org> References: <20240903192243.1107016-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.10.7 Content-Transfer-Encoding: 8bit From: Mathieu Fenniak [ Upstream commit 9286dfd5735b9cceb6a14bdf15e13400ccb60fe7 ] The Asus Zenbook Duo (UX8406MA) has a keyboard which can be placed on the laptop to connect it via USB, or can be removed from the laptop to reveal a hidden secondary display in which case the keyboard operates via Bluetooth. When it is placed on the secondary display to connect via USB, it emits a keypress for a wireless disable. This causes the rfkill system to be activated disconnecting the current wifi connection, which doesn't reflect the user's true intention. Detect this hardware and suppress any wireless switches from the keyboard; this keyboard does not have a wireless toggle capability so these presses are always spurious. Signed-off-by: Mathieu Fenniak Reviewed-by: Ilpo Järvinen Link: https://lore.kernel.org/r/20240823135630.128447-1-mathieu@fenniak.net Signed-off-by: Ilpo Järvinen Signed-off-by: Sasha Levin --- drivers/platform/x86/asus-nb-wmi.c | 20 +++++++++++++++++++- drivers/platform/x86/asus-wmi.h | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c index fceffe2082ec5..ed3633c5955d9 100644 --- a/drivers/platform/x86/asus-nb-wmi.c +++ b/drivers/platform/x86/asus-nb-wmi.c @@ -145,6 +145,10 @@ static struct quirk_entry quirk_asus_ignore_fan = { .wmi_ignore_fan = true, }; +static struct quirk_entry quirk_asus_zenbook_duo_kbd = { + .ignore_key_wlan = true, +}; + static int dmi_matched(const struct dmi_system_id *dmi) { pr_info("Identified laptop model '%s'\n", dmi->ident); @@ -516,6 +520,15 @@ static const struct dmi_system_id asus_quirks[] = { }, .driver_data = &quirk_asus_ignore_fan, }, + { + .callback = dmi_matched, + .ident = "ASUS Zenbook Duo UX8406MA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "UX8406MA"), + }, + .driver_data = &quirk_asus_zenbook_duo_kbd, + }, {}, }; @@ -630,7 +643,12 @@ static void asus_nb_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code, case 0x32: /* Volume Mute */ if (atkbd_reports_vol_keys) *code = ASUS_WMI_KEY_IGNORE; - + break; + case 0x5D: /* Wireless console Toggle */ + case 0x5E: /* Wireless console Enable */ + case 0x5F: /* Wireless console Disable */ + if (quirks->ignore_key_wlan) + *code = ASUS_WMI_KEY_IGNORE; break; } } diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h index cc30f18538472..d02f15fd3482f 100644 --- a/drivers/platform/x86/asus-wmi.h +++ b/drivers/platform/x86/asus-wmi.h @@ -40,6 +40,7 @@ struct quirk_entry { bool wmi_force_als_set; bool wmi_ignore_fan; bool filter_i8042_e1_extended_codes; + bool ignore_key_wlan; enum asus_wmi_tablet_switch_mode tablet_switch_mode; int wapf; /* -- 2.43.0