[BUG] Bluetooth: WCN6855 10ab:9309 stops reporting ISO TX completions during BAP LC3

Jonas Zunker <[email protected]>
Newsgroups org.kernel.vger.linux-bluetooth
Message-ID <[email protected]>
Hello,

   I am seeing a Bluetooth LE Audio/BAP failure with a Qualcomm WCN6855
   controller and Sony WH-1000XM6 headphones.

   BAP negotiation succeeds and the audio profile appears active, but no 
sound is
   heard. The attached btmon capture indicates that the controller stops 
returning
   HCI ISO transmit completions.

   Observed sequence
   =================

   1. The sink and source ASE QoS configurations are accepted.
   2. The Enable operation succeeds for both ASEs.
   3. The connected isochronous stream is established successfully as CIS
      handle 4.
   4. Both host-to-controller and controller-to-host ISO data paths are 
configured
      successfully.
   5. The sink and source ASEs both reach the Streaming state.
   6. The host submits four 120-byte HCI ISO packets on CIS handle 4.
   7. No Number Of Completed Packets event is received for CIS handle 4.
   8. Number Of Completed Packets events for ACL handle 3 continue normally.
   9. No further ISO audio packets are submitted, although application 
playback
      remains active.

   The final ISO packets in the attached capture are:

       < LE-CIS: Handle 4 SN 0 ... slen 120
       < LE-CIS: Handle 4 SN 1 ... slen 120
       < LE-CIS: Handle 4 SN 2 ... slen 120
       < LE-CIS: Handle 4 SN 3 ... slen 120

   There is no completion event for CIS handle 4 after these packets.

   This appears to exhaust the four initial HCI ISO transmit credits. 
The host
   cannot submit more audio because the controller does not replenish those
   credits.

   PipeWire/WirePlumber also reports:

       spa.bluez5.iso: Missing completion reports for packet ...
       Bluetooth adapter firmware bug?

   After approximately 20 seconds, the kernel reports:

       Bluetooth: hci0: link tx timeout
       Bluetooth: hci0: killing stalled connection <headset-address>

   I am not attaching my complete system journal. The kernel messages 
above were
   selected manually from the local logs.

   Hardware
   ========

   - Bluetooth controller: Qualcomm WCN6855
   - USB ID: 10ab:9309
   - Kernel drivers: btusb / btqca
   - Firmware patch file: qca/rampatch_usb_00130201.bin
   - NVM file: qca/nvm_usb_00130201_gf.bin
   - QCA ROM version: 0x130201
   - QCA patch build: 0x994d
   - QCA firmware build: 0x38e6
   - Headset: Sony WH-1000XM6

   Software
   ========

   - Distribution: Fedora 44
   - Kernel: 7.1.7-200.fc44.x86_64
   - Fedora BlueZ: bluez-5.87-3.fc44.x86_64
   - Upstream BlueZ: latest master, locally built
   - PipeWire: 1.6.8-1.fc44.x86_64
   - WirePlumber: 0.5.14-1.fc44.x86_64
   - linux-firmware: 20260622-1.fc44.noarch

   The issue reproduces with both:

   1. The unmodified Fedora bluez-5.87-3.fc44 package.
   2. A locally built version of the latest upstream BlueZ master tree.

   The same four-packet ISO TX stall occurs with both versions. 
Therefore, the
   failure does not appear to depend on my local BlueZ diagnostic changes.

   The attached capture was recorded while using the upstream build. I 
separately
   reproduced the same behavior with the unmodified Fedora BlueZ package.

   Reproduction
   ============

   1. Run either the Fedora-provided BlueZ daemon or an unmodified build 
of the
      latest upstream BlueZ master.
   2. Pair and connect the Sony WH-1000XM6 over LE.
   3. Select the XM6 BAP/LC3 audio profile in GNOME sound settings.
   4. Start audio playback.
   5. BAP setup succeeds and both ASEs reach Streaming.
   6. No sound is heard.
   7. btmon records four outgoing ISO packets on CIS handle 4.
   8. No completion reports for CIS handle 4 follow.
   9. The connection eventually hits the kernel TX timeout.

   Completely removing and pairing the headset again does not change the 
result.

   Expected result
   ===============

   The controller should report completion of transmitted ISO packets 
for CIS
   handle 4, allowing the host to replenish its ISO transmit credits and 
continue
   sending LC3 audio.

   Actual result
   =============

   The controller accepts four ISO packets but provides no completion 
reports for
   CIS handle 4. Audio transmission then stops, and the connection 
eventually
   times out.

   Regression status
   =================

   I initially observed working LE Audio with the Fedora-provided stack, 
but I have
   not yet isolated a specific kernel or firmware version where the behavior
   changed. I am therefore not marking this as a confirmed regression.

   LLM disclosure
   ==============

   I used an LLM assistant to help analyze the btmon capture and draft 
this report.
   The capture and reproduction results come from my own system. I 
reviewed the
   technical claims and am responsible for the submitted report.

   Please let me know if a longer btmon capture, controller information, 
or a
   comparison against another kernel would be useful.

   Regards,
   Jonas
xm6-wcn6855.btsnoop (application/octet-stream, 10.4 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.