* [PATCH] platform/x86: acer-wmi: Keep Bluetooth powered on Aspire E5-573
@ 2026-11-01 19:24 Pedro Caldeira
0 siblings, 0 replies; only message in thread
From: Pedro Caldeira @ 2026-11-01 19:24 UTC (permalink / raw)
To: Lee, Chun-Yi, Hans de Goede, Ilpo Järvinen
Cc: Pedro Caldeira, platform-driver-x86, linux-kernel
The SMBIOS type AAh table of the Aspire E5-573 reports a communication
button bitmap of 0x1 (WiFi only), although the laptop has internal
Bluetooth.
wmid3_set_device_status() reads the device states using this bitmap and
writes the result back, which loses the Bluetooth bit. Any write to the
acer-wireless rfkill device therefore powers Bluetooth off, even if the
WiFi state does not change. Userspace does such writes during boot, and
Bluetooth cannot be turned back on as it has no rfkill device.
Add a quirk that adds Bluetooth to the bitmap and to the capabilities.
Tested on BIOS V1.37 with an Intel 8260 card (USB 8087:0a2b) replacing
the original one: Bluetooth survives boot and acer-wireless writes, and
the new acer-bluetooth rfkill device blocks and unblocks it.
Fixes: 1d1fc8a75fec ("acer-wmi: replaced the hard coded bitmap by the communication devices bitmap from SMBIOS")
Assisted-by: LLM
Signed-off-by: Pedro Caldeira <pdrocaldeira@gmail.com>
---
Reproducer without this patch:
# rfkill unblock <index of acer-wireless>
usb 1-5: USB disconnect, device number 6
Runtime-tested with the same change on v7.2.11; only build-tested on
for-next. Not tested with the laptop's original card.
https://bugzilla.kernel.org/show_bug.cgi?id=190641 reports the same
symptom on an E5-573G with its original card. I left that model out
because I have no hardware to test it.
drivers/platform/x86/acer-wmi.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 3a018fdf5..60028fe9f 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -406,6 +406,7 @@ struct quirk_entry {
bool hwmon;
bool platform_profile;
bool pwm;
+ bool commun_bluetooth;
};
static struct quirk_entry *quirks;
@@ -430,6 +431,11 @@ static void __init set_quirks(void)
if (quirks->pwm)
interface->capability |= ACER_CAP_PWM;
+
+ if (quirks->commun_bluetooth) {
+ commun_func_bitmap |= ACER_WMID3_GDS_BLUETOOTH;
+ interface->capability |= ACER_CAP_BLUETOOTH;
+ }
}
static int __init dmi_matched(const struct dmi_system_id *dmi)
@@ -454,6 +460,11 @@ static struct quirk_entry quirk_acer_aspire_1520 = {
.brightness = -1,
};
+/* The type AAh table omits the internal Bluetooth device */
+static struct quirk_entry quirk_acer_aspire_e5_573 = {
+ .commun_bluetooth = true,
+};
+
static struct quirk_entry quirk_acer_aspire_a315_58g = {
.hwmon = true,
};
@@ -663,6 +674,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
},
.driver_data = &quirk_acer_aspire_a315_58g,
},
+ {
+ .callback = dmi_matched,
+ .ident = "Acer Aspire E5-573",
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Aspire E5-573"),
+ },
+ .driver_data = &quirk_acer_aspire_e5_573,
+ },
{
.callback = dmi_matched,
.ident = "Acer TravelMate 2490",
--
2.56.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-01 19:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-01 19:24 [PATCH] platform/x86: acer-wmi: Keep Bluetooth powered on Aspire E5-573 Pedro Caldeira
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®