[Bug 213829] Intel AX210 Bluetooth controller doesn't start from warm boot
From: <hidden>
Date: 2021-10-17 18:05:07
https://bugzilla.kernel.org/show_bug.cgi?id=213829
--- Comment #13 from Guillaume Binet (gbin@gootz.net) ---I continued to investigate. The major difference between a cold boot and a warm boot is the driver trying to load a firmware. For the science, I just disabled this behavior and it looks like the device and driver recover on a warm boot. Consider this a workaround and not a fix but at least it works for me, bluetooth is available on a warm boot.
pal ➜ linux-5.14.12 diff -u drivers/bluetooth/btintel.c.old
drivers/bluetooth/btintel.c
--- drivers/bluetooth/btintel.c.old 2021-10-17 13:56:23.583338189 -0400
+++ drivers/bluetooth/btintel.c 2021-10-17 14:01:16.113344330 -0400
@@ -1034,17 +1034,6 @@
/* Skip reading firmware file version in bootloader mode */
if (ver->fw_variant == 0x06)
break;
-
- /* Skip download if firmware has the same version */
- if (btintel_firmware_version(hdev, ver->fw_build_num,
- ver->fw_build_ww,
ver->fw_build_yy,
- fw, boot_param)) {
- bt_dev_info(hdev, "Firmware already loaded");
- /* Return -EALREADY to indicate that the firmware has
- * already been loaded.
- */
- return -EALREADY;
- }
}
/* The firmware variant determines if the device is in bootloader
@@ -1074,21 +1063,6 @@
int err;
u32 css_header_ver;
- /* Skip reading firmware file version in bootloader mode */
- if (ver->img_type != 0x01) {
- /* Skip download if firmware has the same version */
- if (btintel_firmware_version(hdev, ver->min_fw_build_nn,
- ver->min_fw_build_cw,
- ver->min_fw_build_yy,
- fw, boot_param)) {
- bt_dev_info(hdev, "Firmware already loaded");
- /* Return -EALREADY to indicate that firmware has
- * already been loaded.
- */
- return -EALREADY;
- }
- }
-
/* The firmware variant determines if the device is in bootloader
* mode or is running operational firmware. The value 0x01 identifies
* the bootloader and the value 0x03 identifies the operational
-- You may reply to this email to add a comment. You are receiving this mail because: You are the assignee for the bug.