Since SIG has not yet clearly defined the specification for ISO data transmission over USB, MediaTek has adopted a method of adding an additional interrupt endpoint for ISO data transmission. This approach differs from the current method used in the Bluetooth upstream driver, which utilizes existing bulk endpoints. The interrupt endpoint provides guaranteed bandwidth, sufficient maximum data length for ISO packets and error checking. Certain new functions related to USB transportation, such as urb allocation and submission, are implemented in btusb.c to leverage existing functions and data structures defined therein. Meanwhile, vendor-specific functions unrelated to transportation have been moved to btmtk.c to streamline btusb.c. Chris Lu (4): Bluetooth: net: add hci_iso_hdr function for iso data Bluetooth: btusb: add callback function in btusb suspend/resume Bluetooth: btmtk: add macro to get/set/clear MediaTek defined flags Bluetooth: btusb: mediatek: add ISO data transmission functions drivers/bluetooth/btmtk.c | 92 ++++++++++++ drivers/bluetooth/btmtk.h | 61 ++++++++ drivers/bluetooth/btusb.c | 276 ++++++++++++++++++++++++++++++++++++ include/net/bluetooth/hci.h | 5 + 4 files changed, 434 insertions(+) -- 2.18.0