1. 23 Jul, 2022 7 commits
    • Jakub Kicinski's avatar
      Merge tag 'for-net-next-2022-07-22' of... · 4a934eca
      Jakub Kicinski authored
      Merge tag 'for-net-next-2022-07-22' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      
      Luiz Augusto von Dentz says:
      
      ====================
      bluetooth-next pull request for net-next:
      
       - Add support for IM Networks PID 0x3568
       - Add support for BCM4349B1
       - Add support for CYW55572
       - Add support for MT7922 VID/PID 0489/e0e2
       - Add support for Realtek RTL8852C
       - Initial support for Isochronous Channels/ISO sockets
       - Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING quirk
      
      * tag 'for-net-next-2022-07-22' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next: (58 commits)
        Bluetooth: btusb: Detect if an ACL packet is in fact an ISO packet
        Bluetooth: btusb: Add support for ISO packets
        Bluetooth: ISO: Add broadcast support
        Bluetooth: Add initial implementation of BIS connections
        Bluetooth: Add BTPROTO_ISO socket type
        Bluetooth: Add initial implementation of CIS connections
        Bluetooth: hci_core: Introduce hci_recv_event_data
        Bluetooth: Convert delayed discov_off to hci_sync
        Bluetooth: Remove update_scan hci_request dependancy
        Bluetooth: Remove dead code from hci_request.c
        Bluetooth: btrtl: Fix typo in comment
        Bluetooth: MGMT: Fix holding hci_conn reference while command is queued
        Bluetooth: mgmt: Fix using hci_conn_abort
        Bluetooth: Use bt_status to convert from errno
        Bluetooth: Add bt_status
        Bluetooth: hci_sync: Split hci_dev_open_sync
        Bluetooth: hci_sync: Refactor remove Adv Monitor
        Bluetooth: hci_sync: Refactor add Adv Monitor
        Bluetooth: hci_sync: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING
        Bluetooth: btusb: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for fake CSR
        ...
      ====================
      
      Link: https://lore.kernel.org/r/20220723002232.964796-1-luiz.dentz@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4a934eca
    • Luiz Augusto von Dentz's avatar
      Bluetooth: btusb: Detect if an ACL packet is in fact an ISO packet · 14202eff
      Luiz Augusto von Dentz authored
      Fix up the packet type if ISO packets are sent over the bulk endpoint.
      
      Note: This is a stopgap since the Bluetooth specification currently
      doesn't define any endpoint to transport ISO packets.
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      14202eff
    • Luiz Augusto von Dentz's avatar
      Bluetooth: btusb: Add support for ISO packets · 70405f02
      Luiz Augusto von Dentz authored
      This enabled btusb driver to properly transmit ISO packets.
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      70405f02
    • Luiz Augusto von Dentz's avatar
      Bluetooth: ISO: Add broadcast support · f764a6c2
      Luiz Augusto von Dentz authored
      This adds broadcast support for BTPROTO_ISO by extending the
      sockaddr_iso with a new struct sockaddr_iso_bc where the socket user
      can set the broadcast address when receiving, the SID and the BIS
      indexes it wants to synchronize.
      
      When using BTPROTO_ISO for broadcast the roles are:
      
      Broadcaster -> uses connect with address set to BDADDR_ANY:
      > tools/isotest -s 00:00:00:00:00:00
      
      Broadcast Receiver -> uses listen with address set to broadcaster:
      > tools/isotest -d 00:AA:01:00:00:00
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      f764a6c2
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add initial implementation of BIS connections · eca0ae4a
      Luiz Augusto von Dentz authored
      This adds initial support for BIS/BIG which includes:
      
      == Broadcaster role: Setup a periodic advertising and create a BIG ==
      
      > tools/isotest -s 00:00:00:00:00:00
      isotest[63]: Connected [00:00:00:00:00:00]
      isotest[63]: QoS BIG 0x00 BIS 0x00 Packing 0x00 Framing 0x00]
      isotest[63]: Output QoS [Interval 10000 us Latency 10 ms SDU 40 PHY 0x02
      RTN 2]
      isotest[63]: Sending ...
      isotest[63]: Number of packets: 1
      isotest[63]: Socket jitter buffer: 80 buffer
      < HCI Command: LE Set Perio.. (0x08|0x003e) plen 7
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Parameters (0x08|0x003e) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Perio.. (0x08|0x003f) plen 7
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Data (0x08|0x003f) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Perio.. (0x08|0x0040) plen 2
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Enable (0x08|0x0040) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Create B.. (0x08|0x0068) plen 31
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Create Broadcast Isochronous Group (0x08|0x0068) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 21
            LE Broadcast Isochronous Group Complete (0x1b)
            ...
      
      == Broadcast Receiver role: Create a PA Sync and BIG Sync ==
      
      > tools/isotest -i hci1 -d 00:AA:01:00:00:00
      isotest[66]: Waiting for connection 00:AA:01:00:00:00...
      < HCI Command: LE Periodic Advert.. (0x08|0x0044) plen 14
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Periodic Advertising Create Sync (0x08|0x0044) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Extended Sca.. (0x08|0x0041) plen 8
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Extended Scan Parameters (0x08|0x0041) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Extended Sca.. (0x08|0x0042) plen 6
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Extended Scan Enable (0x08|0x0042) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Extended Advertising Report (0x0d)
            ...
      > HCI Event: LE Meta Event (0x3e) plen 16
            LE Periodic Advertising Sync Established (0x0e)
            ...
      < HCI Command: LE Broadcast Isoch.. (0x08|0x006b) plen 25
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Broadcast Isochronous Group Create Sync (0x08|0x006b) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 17
            LE Broadcast Isochronous Group Sync Estabilished (0x1d)
            ...
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      eca0ae4a
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add BTPROTO_ISO socket type · ccf74f23
      Luiz Augusto von Dentz authored
      This introduces a new socket type BTPROTO_ISO which can be enabled with
      use of ISO Socket experiemental UUID, it can used to initiate/accept
      connections and transfer packets between userspace and kernel similarly
      to how BTPROTO_SCO works:
      
      Central -> uses connect with address set to destination bdaddr:
      > tools/isotest -s 00:AA:01:00:00:00
      
      Peripheral -> uses listen:
      > tools/isotest -d
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      ccf74f23
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add initial implementation of CIS connections · 26afbd82
      Luiz Augusto von Dentz authored
      This adds the initial implementation of CIS connections and introduces
      the ISO packets/links.
      
      == Central: Set CIG Parameters, create a CIS and Setup Data Path ==
      
      > tools/isotest -s <address>
      
      < HCI Command: LE Extended Create... (0x08|0x0043) plen 26
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Extended Create Connection (0x08|0x0043) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 31
            LE Enhanced Connection Complete (0x0a)
            ...
      < HCI Command: LE Create Connected... (0x08|0x0064) plen 5
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Create Connected Isochronous Stream (0x08|0x0064) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Connected Isochronous Stream Established (0x19)
            ...
      < HCI Command: LE Setup Isochronou.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      < HCI Command: LE Setup Isochronou.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      
      == Peripheral: Accept CIS and Setup Data Path ==
      
      > tools/isotest -d
      
       HCI Event: LE Meta Event (0x3e) plen 7
            LE Connected Isochronous Stream Request (0x1a)
      ...
      < HCI Command: LE Accept Co.. (0x08|0x0066) plen 2
      ...
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Connected Isochronous Stream Established (0x19)
      ...
      < HCI Command: LE Setup Is.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      < HCI Command: LE Setup Is.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      26afbd82
  2. 22 Jul, 2022 33 commits