[8087:0a2b] Failed to load bluetooth firmware(might affect some other Intel bt devices)

Bug #1705633 reported by AceLan Kao on 2017-07-21
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
HWE Next
Undecided
AceLan Kao
linux (Ubuntu)
Undecided
AceLan Kao
Xenial
Undecided
Unassigned

Bug Description

[Impact]
After this linux-firmware bug[1] update the firmware files, it removes intel/ibt-11-16.{ddc,sfi} and add intel/ibt-12-16.{ddc,sfi}, but in btusb driver, it hardcoded the hw_variant as 11. So we got this kind of error after the linux-firmware package updated and lost the bt functions.

[ 5.516003] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[ 5.516181] bluetooth hci0: Direct firmware load for intel/ibt-11-16.sfi failed with error -2
[ 5.516183] Bluetooth: hci0: Failed to load Intel firmware file (-2)

[Fix]
This patch uses a hw_variant variable to replace the hardcoded 11.

[Test Case]
Verified on the machine has this issue, and confirm this patch works.

[Regression Potential]
The hw_variant variable has shown up since kernel 3.10 in this commit
   dffd30e Bluetooth: Add support for Intel Bluetooth device [8087:07dc]
So, we don't have to worry about old chips don't contains this info, since it exists
and be used for a very long time.

1. https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1686815

AceLan Kao (acelankao) wrote :

commit 230b04ac8f439d0797ab85fb356f069f0472306f
Author: Tedd Ho-Jeong An <email address hidden>
Date: Tue Jun 28 08:56:39 2016 -0700

    Bluetooth: Replace constant hw_variant from Intel Bluetooth firmware filename

AceLan Kao (acelankao) wrote :

commit d1b7abae666cc4630daa3db4e839626bc179f6f1
Author: Jürg Billeter <email address hidden>
Date: Tue May 23 18:46:25 2017 +0200

    Bluetooth: btintel: Add MODULE_FIRMWARE entries for iBT 3.5 controllers

AceLan Kao (acelankao) on 2017-07-21
tags: added: originate-from-1704696 somerville
AceLan Kao (acelankao) on 2017-07-21
Changed in hwe-next:
assignee: nobody → AceLan Kao (acelankao)
status: New → In Progress
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in linux (Ubuntu Xenial):
status: New → Confirmed
AceLan Kao (acelankao) wrote :

This issue requires another 2 commits

From 6c483de1b3c41e939b735df1861759815e125304 Mon Sep 17 00:00:00 2001
From: Loic Poulain <email address hidden>
Date: Sun, 6 Dec 2015 16:18:34 +0100
Subject: [PATCH] Bluetooth: btintel: Create common Intel Version Read function

The Intel Version Read command is used to retrieve information
about hardware and firmware version/revision of Intel Bluetooth
controllers. This is an Intel generic command used in USB and
UART drivers.

Signed-off-by: Loic Poulain <email address hidden>
Signed-off-by: Marcel Holtmann <email address hidden>

From b7da6a69defd195da66bfd6b35efeb376a252557 Mon Sep 17 00:00:00 2001
From: Tedd Ho-Jeong An <email address hidden>
Date: Mon, 6 Mar 2017 15:38:32 -0800
Subject: [PATCH] Bluetooth: hci_intel: Fix firmware file name to use
 hw_variant

The format of Intel Bluetooth firmware for bootloader product is
ibt-<hw_variant>-<device_revision_id>.sfi and .ddc.

This patch uses a hw_variant value read from the device during
runtime to form the firmware filenames instead of using a constant
value, so it can support multiple prouducts.

Signed-off-by: Tedd Ho-Jeong An <email address hidden>
Signed-off-by: Marcel Holtmann <email address hidden>

AceLan Kao (acelankao) wrote :

This commit relates to the hw_variant, too.

commit 9268834b60c0b08101c7a8522b6901cf4cd57a14
Author: Tedd Ho-Jeong An <email address hidden>
Date: Mon Mar 6 15:38:26 2017 -0800

    Bluetooth: Use switch statement for Intel hardware variants

    Multiple new hardware variants are planned and the simple if statement
    would get really complicated and unreadable. So instead replace it with
    a simple switch statement.

    The change is applied to both USB and UART.

    Based-on-patch-by: Marcel Holtmann <email address hidden>
    Signed-off-by: Tedd Ho-Jeong An <email address hidden>
    Signed-off-by: Marcel Holtmann <email address hidden>

Changed in linux (Ubuntu Xenial):
status: Confirmed → Fix Committed
AceLan Kao (acelankao) on 2017-08-11
Changed in hwe-next:
status: In Progress → Fix Committed
Changed in linux (Ubuntu):
status: In Progress → Fix Committed

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Shih-Yuan Lee (fourdollars) wrote :

4.4.0-93.116 can fix the Bluetooth firmware loading issue for 8087:0a2b.

tags: added: verification-done-xenial
removed: verification-needed-xenial
Launchpad Janitor (janitor) wrote :
Download full text (16.2 KiB)

This bug was fixed in the package linux - 4.4.0-93.116

---------------
linux (4.4.0-93.116) xenial; urgency=low

  * linux: 4.4.0-93.116 -proposed tracker (LP: #1709296)

  * Creating conntrack entry failure with kernel 4.4.0-89 (LP: #1709032)
    - Revert "Revert "netfilter: synproxy: fix conntrackd interaction""
    - netfilter: nf_ct_ext: fix possible panic after nf_ct_extend_unregister

  * CVE-2017-1000112
    - Revert "udp: consistently apply ufo or fragmentation"
    - udp: consistently apply ufo or fragmentation

  * CVE-2017-1000111
    - Revert "net-packet: fix race in packet_set_ring on PACKET_RESERVE"
    - packet: fix tp_reserve race in packet_set_ring

  * kernel BUG at [tty_ldisc_reinit] mm/slub.c! (LP: #1709126)
    - tty: Simplify tty_set_ldisc() exit handling
    - tty: Reset c_line from driver's init_termios
    - tty: Handle NULL tty->ldisc
    - tty: Move tty_ldisc_kill()
    - tty: Use 'disc' for line discipline index name
    - tty: Refactor tty_ldisc_reinit() for reuse
    - tty: Destroy ldisc instance on hangup

  * atheros bt failed after S3 (LP: #1706833)
    - SAUCE: Bluetooth: Make request workqueue freezable

  * The Precision Touchpad(PTP) button sends incorrect event code (LP: #1708372)
    - HID: multitouch: handle external buttons for Precision Touchpads

  * Set CONFIG_SATA_HIGHBANK=y on armhf (LP: #1703430)
    - [Config] CONFIG_SATA_HIGHBANK=y

  * xfs slab objects (memory) leak when xfs shutdown is called (LP: #1706132)
    - xfs: fix xfs_log_ticket leak in xfs_end_io() after fs shutdown

  * Adt tests of src:linux time out often on armhf lxc containers (LP: #1705495)
    - [Packaging] tests -- reduce rebuild test to one flavour

  * CVE-2017-7495
    - ext4: fix data exposure after a crash

  * ubuntu/rsi driver downlink wifi throughput drops to 5-6 Mbps when BT
    keyboard is connected (LP: #1706991)
    - SAUCE: Redpine: enable power save by default for coex mode
    - SAUCE: Redpine: uapsd configuration changes

  * [Hyper-V] hv_netvsc: Exclude non-TCP port numbers from vRSS hashing
    (LP: #1690174)
    - hv_netvsc: Exclude non-TCP port numbers from vRSS hashing

  * ath10k doesn't report full RSSI information (LP: #1706531)
    - ath10k: add per chain RSSI reporting

  * ideapad_laptop don't support v310-14isk (LP: #1705378)
    - platform/x86: ideapad-laptop: Add several models to no_hw_rfkill

  * [8087:0a2b] Failed to load bluetooth firmware(might affect some other Intel
    bt devices) (LP: #1705633)
    - Bluetooth: btintel: Create common Intel Version Read function
    - Bluetooth: Use switch statement for Intel hardware variants
    - Bluetooth: Replace constant hw_variant from Intel Bluetooth firmware
      filename
    - Bluetooth: hci_intel: Fix firmware file name to use hw_variant
    - Bluetooth: btintel: Add MODULE_FIRMWARE entries for iBT 3.5 controllers

  * xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2
    comp_code 13 (LP: #1667750)
    - xhci: Bad Ethernet performance plugged in ASM1042A host

  * OpenPower: Some multipaths temporarily have only a single path
    (LP: #1696445)
    - scsi: ses: don't get power status of SES device slot on probe

  ...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
AceLan Kao (acelankao) on 2017-09-20
Changed in hwe-next:
status: Fix Committed → Fix Released
Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers