Intel AX210 thinks Disconnected CIS still exists?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm seeing some weird behavior with Intel AX210. It's looking somewhat
like a firmware bug.

The controller seems to be producing empty ACL data packets for a CIS
handle even though it already sent "Disconnect Complete" event for the
handle.


Reproducer:
AX210 + Samsung Galaxy Buds2 Pro + BlueZ & Pipewire master branch
Switch audio profile to duplex for both earbuds using pactl, try to
play audio. The device rejects ASE configuration for one earbud, and
BlueZ starts cancelling its CIS connect.


Firmware:

[   27.539905] Bluetooth: hci0: Firmware timestamp 2025.13 buildtype 1 build 82008
[   27.539909] Bluetooth: hci0: Firmware SHA1: 0x47cf9d0e
[   27.539914] Bluetooth: hci0: No support for _PRR ACPI method
[   27.552267] Bluetooth: hci0: Found device firmware: intel/ibt-0041-0041.sfi
[   27.552292] Bluetooth: hci0: Boot Address: 0x100800
[   27.552294] Bluetooth: hci0: Firmware Version: 88-13.25
[   27.552296] Bluetooth: hci0: Firmware already loaded
[   27.563226] Bluetooth: hci0: Fseq status: Success (0x00)
[   27.563231] Bluetooth: hci0: Fseq executed: 00.00.02.41
[   27.563234] Bluetooth: hci0: Fseq BT Top: 00.00.02.41


HCI Command / Status / Complete log & some of ISO/ACL packets:

< HCI Command: LE Create Connected Isochronous Stream (0x08|0x0064) plen 9   #8711 [hci1] 278.356781
        Number of CIS: 2
        CIS Handle: 2304
        ACL Handle: 2049
        CIS Handle: 2305
        ACL Handle: 2048

**CIG with two bidirectional CIS**

> HCI Event: Command Status (0x0f) plen 4   #8712 [hci1] 278.358100
      LE Create Connected Isochronous Stream (0x08|0x0064) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3   #8720 [hci1] 278.498169
        Handle: 2305
        Reason: Remote User Terminated Connection (0x13)


**Core specification 6.0 pp 1920: "If the Host issues
this command when there is a pending HCI_LE_Create_CIS command for the
same CIS but before the CIS is created, then this command shall be
successful and the CIS shall not be created."**


> HCI Event: Command Status (0x0f) plen 4   #8721 [hci1] 278.499113
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 29   #8722 [hci1] 278.589170
      LE Connected Isochronous Stream Established (0x19)
        Status: Success (0x00)
        Connection Handle: 2305
        CIG Synchronization Delay: 5400 us (0x001518)
        CIS Synchronization Delay: 4470 us (0x001176)
        Central to Peripheral Latency: 5400 us (0x001518)
        Peripheral to Central Latency: 5400 us (0x001518)
        Central to Peripheral PHY: LE 2M (0x02)
        Peripheral to Central PHY: LE 2M (0x02)
        Number of Subevents: 3
        Central to Peripheral Burst Number: 1
        Peripheral to Central Burst Number: 1
        Central to Peripheral Flush Timeout: 1
        Peripheral to Central Flush Timeout: 1
        Central to Peripheral MTU: 60
        Peripheral to Central MTU: 60
        ISO Interval: 7.50 msec (0x0006)
< HCI Command: LE Setup Isochronous Data Path (0x08|0x006e) plen 13   #8723 [hci1] 278.589365
        Handle: 2305
        Data Path Direction: Input (Host to Controller) (0x00)
        Data Path: HCI (0x00)
        Coding Format: Transparent (0x03)
        Company Codec ID: Ericsson Technology Licensing (0)
        Vendor Codec ID: 0
        Controller Delay: 0 us (0x000000)
        Codec Configuration Length: 0
        Codec Configuration[0]: 
> HCI Event: Command Complete (0x0e) plen 6   #8724 [hci1] 278.590113
      LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
        Status: Success (0x00)
        Handle: 2305
> HCI Event: LE Meta Event (0x3e) plen 29   #8725 [hci1] 278.599121
      LE Connected Isochronous Stream Established (0x19)
        Status: Success (0x00)
        Connection Handle: 2304
        CIG Synchronization Delay: 5400 us (0x001518)
        CIS Synchronization Delay: 5400 us (0x001518)
        Central to Peripheral Latency: 5400 us (0x001518)
        Peripheral to Central Latency: 5400 us (0x001518)
        Central to Peripheral PHY: LE 2M (0x02)
        Peripheral to Central PHY: LE 2M (0x02)
        Number of Subevents: 3
        Central to Peripheral Burst Number: 1
        Peripheral to Central Burst Number: 1
        Central to Peripheral Flush Timeout: 1
        Peripheral to Central Flush Timeout: 1
        Central to Peripheral MTU: 60
        Peripheral to Central MTU: 60
        ISO Interval: 7.50 msec (0x0006)
> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8726 [hci1] 278.599829
> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8727 [hci1] 278.607554
> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8728 [hci1] 278.614858
< HCI Command: LE Setup Isochronous Data Path (0x08|0x006e) plen 13   #8729 [hci1] 278.615107
        Handle: 2305
        Data Path Direction: Output (Controller to Host) (0x01)
        Data Path: HCI (0x00)
        Coding Format: Transparent (0x03)
        Company Codec ID: Ericsson Technology Licensing (0)
        Vendor Codec ID: 0
        Controller Delay: 0 us (0x000000)
        Codec Configuration Length: 0
        Codec Configuration[0]: 
> HCI Event: Command Complete (0x0e) plen 6   #8730 [hci1] 278.616102
      LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
        Status: Success (0x00)
        Handle: 2305
< HCI Command: LE Setup Isochronous Data Path (0x08|0x006e) plen 13   #8731 [hci1] 278.616126
        Handle: 2304
        Data Path Direction: Input (Host to Controller) (0x00)
        Data Path: HCI (0x00)
        Coding Format: Transparent (0x03)
        Company Codec ID: Ericsson Technology Licensing (0)
        Vendor Codec ID: 0
        Controller Delay: 0 us (0x000000)
        Codec Configuration Length: 0
        Codec Configuration[0]: 
> HCI Event: Disconnect Complete (0x05) plen 4   #8732 [hci1] 278.617112
        Status: Success (0x00)
        Handle: 2305 Address: 28:3D:C2:4A:7E:DA (Samsung Electronics Co.,Ltd)
        Reason: Connection Terminated By Local Host (0x16)

**Handle 2305 gets disconnected here**

> HCI Event: Command Complete (0x0e) plen 6   #8733 [hci1] 278.618113
      LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
        Status: Success (0x00)
        Handle: 2304
< HCI Command: LE Setup Isochronous Data Path (0x08|0x006e) plen 13   #8734 [hci1] 278.618160
        Handle: 2304
        Data Path Direction: Output (Controller to Host) (0x01)
        Data Path: HCI (0x00)
        Coding Format: Transparent (0x03)
        Company Codec ID: Ericsson Technology Licensing (0)
        Vendor Codec ID: 0
        Controller Delay: 0 us (0x000000)
        Codec Configuration Length: 0
        Codec Configuration[0]: 
> HCI Event: Command Complete (0x0e) plen 6   #8735 [hci1] 278.619110
      LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
        Status: Success (0x00)
        Handle: 2304
> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8739 [hci1] 278.629825
> ACL Data RX: Handle 2305 flags 0x02 dlen 4   #8740 [hci1] 278.632832
        unexpected start frame
        05 00 00 80                                      ....

**Getting data packets for already disconnected handle?**

> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8741 [hci1] 278.636842
> ACL Data RX: Handle 2305 flags 0x02 dlen 4   #8742 [hci1] 278.639839
> ISO Data RX: Handle 2304 flags 0x02 dlen 4   #8743 [hci1] 278.644857
> ACL Data RX: Handle 2305 flags 0x02 dlen 4   #8744 [hci1] 278.646832
        unexpected start frame
        07 00 00 80                                      ....            
...
< HCI Command: Disconnect (0x01|0x0006) plen 3   #13597 [hci1] 288.315392
        Handle: 2304 Address: 28:3D:C2:4A:7D:2A (Samsung Electronics Co.,Ltd)
        Reason: Remote User Terminated Connection (0x13)

**Handle 2304 disconnects here**

> HCI Event: Command Status (0x0f) plen 4   #13598 [hci1] 288.316110
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Disconnect Complete (0x05) plen 4   #13599 [hci1] 288.344136
        Status: Success (0x00)
        Handle: 2304 Address: 28:3D:C2:4A:7D:2A (Samsung Electronics Co.,Ltd)
        Reason: Connection Terminated By Local Host (0x16)
< HCI Command: LE Remove Connected Isochronous Group (0x08|0x0065) plen 1   #13601 [hci1] 288.360011
        CIG ID: 0x00
> HCI Event: Command Complete (0x0e) plen 5   #13602 [hci1] 288.361116
      LE Remove Connected Isochronous Group (0x08|0x0065) ncmd 1
        Status: Command Disallowed (0x0c)
        CIG ID: 0x00

Disconnect Complete has already been received for both CIS. 
This command probably should have succeeded?

-- 
Pauli Virtanen





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux