mbox series

[v7,0/8] Bluetooth: btmtk: MediaTek ISO data transmission support

Message ID 20240704060116.16600-1-chris.lu@mediatek.com
Headers show
Series Bluetooth: btmtk: MediaTek ISO data transmission support | expand

Message

Chris Lu July 4, 2024, 6:01 a.m. UTC
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.

Driver sets up ISO interface and endpoints in btusb_mtk_setup and clears
the setup in btusb_mtk_shutdown. These flow can't move to btmtk.c due to
btusb_driver is only defined in btusb.c when claiming/relaesing interface.
Once ISO interface is claimed, driver can use specific interrupt endpoint
to send and receive iso data. ISO packet anchor stops when driver
suspending and resubmit interrupt urb for ISO data when driver resuming.

---
Change from v6 to v7:
-Change MediaTek's specific suspend/resume function naming to
btmtk_usb_suspend/resume and add comment to explain the purpose of function.
---

Chris Lu (8):
  Bluetooth: btusb: mediatek: remove the unnecessary goto tag
  Bluetooth: btusb: mediatek: return error for failed reg access
  Bluetooth: btmtk: rename btmediatek_data
  Bluetooth: btusb: add callback function in btusb suspend/resume
  Bluetooth: btmtk: move btusb_mtk_hci_wmt_sync to btmtk.c
  Bluetooth: btmtk: move btusb_mtk_[setup, shutdown] to btmtk.c
  Bluetooth: btmtk: move btusb_recv_acl_mtk to btmtk.c
  Bluetooth: btusb: mediatek: add ISO data transmission functions

 drivers/bluetooth/btmtk.c     | 1067 ++++++++++++++++++++++++++++++++-
 drivers/bluetooth/btmtk.h     |   91 ++-
 drivers/bluetooth/btmtksdio.c |    1 +
 drivers/bluetooth/btmtkuart.c |    1 +
 drivers/bluetooth/btusb.c     |  751 +++--------------------
 5 files changed, 1227 insertions(+), 684 deletions(-)

Comments

patchwork-bot+bluetooth@kernel.org July 8, 2024, 9:20 p.m. UTC | #1
Hello:

This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Thu, 4 Jul 2024 14:01:08 +0800 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [v7,1/8] Bluetooth: btusb: mediatek: remove the unnecessary goto tag
    https://git.kernel.org/bluetooth/bluetooth-next/c/a06a1458192e
  - [v7,2/8] Bluetooth: btusb: mediatek: return error for failed reg access
    https://git.kernel.org/bluetooth/bluetooth-next/c/ac7daf0f197c
  - [v7,3/8] Bluetooth: btmtk: rename btmediatek_data
    https://git.kernel.org/bluetooth/bluetooth-next/c/dfad4030dcc4
  - [v7,4/8] Bluetooth: btusb: add callback function in btusb suspend/resume
    https://git.kernel.org/bluetooth/bluetooth-next/c/cacda8ed6753
  - [v7,5/8] Bluetooth: btmtk: move btusb_mtk_hci_wmt_sync to btmtk.c
    https://git.kernel.org/bluetooth/bluetooth-next/c/39a9e1c69e74
  - [v7,6/8] Bluetooth: btmtk: move btusb_mtk_[setup, shutdown] to btmtk.c
    https://git.kernel.org/bluetooth/bluetooth-next/c/314f1c00d267
  - [v7,7/8] Bluetooth: btmtk: move btusb_recv_acl_mtk to btmtk.c
    https://git.kernel.org/bluetooth/bluetooth-next/c/91d0ac304edf
  - [v7,8/8] Bluetooth: btusb: mediatek: add ISO data transmission functions
    https://git.kernel.org/bluetooth/bluetooth-next/c/7eac027d1b20

You are awesome, thank you!