bluetooth: set initial packet size to 60
authorIgor V. Kovalenko <igor.v.kovalenko@gmail.com>
Mon, 1 Mar 2021 21:52:59 +0000 (00:52 +0300)
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>
Mon, 5 Apr 2021 15:43:32 +0000 (15:43 +0000)
Raise initial MTU size to fix frame size when hci can do 60 byte frames.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

src/modules/bluetooth/backend-native.c
src/modules/bluetooth/backend-ofono.c

index 519ff61..e42ce91 100644 (file)
@@ -326,8 +326,8 @@ static int sco_acquire_cb(pa_bluetooth_transport *t, bool optional, size_t *imtu
     if (sock < 0)
         goto fail;
 
-    if (imtu) *imtu = 48;
-    if (omtu) *omtu = 48;
+    if (imtu) *imtu = 60;
+    if (omtu) *omtu = 60;
 
     if (t->device->autodetect_mtu) {
         struct sco_options sco_opt;
index 5f0b021..0d55b79 100644 (file)
@@ -329,11 +329,14 @@ static int hf_audio_agent_transport_acquire(pa_bluetooth_transport *t, bool opti
      * the Bluetooth adapter and (for adapters in the USB bus) the MxPS
      * value from the Isoc USB endpoint in use by btusb and should be
      * made available to userspace by the Bluetooth kernel subsystem.
-     * Meanwhile the empiric value 48 will be used. */
+     *
+     * Set initial MTU to max size which is reported to be working (60 bytes)
+     * See also pa_bluetooth_transport::last_read_size handling.
+     */
     if (imtu)
-        *imtu = 48;
+        *imtu = 60;
     if (omtu)
-        *omtu = 48;
+        *omtu = 60;
 
     err = socket_accept(card->fd);
     if (err < 0) {