This patchset fixes a few issues with emission of HCI Remove CIG, Set
CIG Parameters, Create CIS when multiple ISO sockets in the same CIG are
closed and reconnected rapidly.
These were found when trying to make Samsung Galaxy Buds2 Pro stream
disabling and re-enabling work, and with a few additional emulator test
improvements. In these cases, the user is closing and reconnecting ISO
sockets rapidly. With this and the associated BlueZ patchset, disabling
and re-enabling streams on this device works correctly and the problem
in https://github.com/bluez/bluez/issues/516 is solved; this kernel
patchset contains nothing device specific though.
The last Create CIS patch probably could be done in different ways,
but seemed simplest to have hci_le_create_cis_sync be idempotent.
Pauli Virtanen (6):
Bluetooth: ISO: fix maximum number of CIS in Set CIG Parameters
Bluetooth: ISO: use hci_sync for setting CIG parameters
Bluetooth: ISO: don't try to do Set CIG Parameters if CIG known busy
Bluetooth: ISO: don't try to remove CIG if there are bound CIS left
Bluetooth: ISO: use correct CIS order in Set CIG Parameters event
Bluetooth: ISO: do not emit new LE Create CIS if previous is pending
include/net/bluetooth/hci_core.h | 4 +-
include/net/bluetooth/hci_sync.h | 2 +-
net/bluetooth/hci_conn.c | 139 +++++++++++++++++++------------
net/bluetooth/hci_event.c | 79 ++++++++++++++----
net/bluetooth/hci_sync.c | 90 ++++++++++++++------
net/bluetooth/iso.c | 2 +-
6 files changed, 217 insertions(+), 99 deletions(-)
--
2.40.1