From: Trent Piepho <tpiepho@gmail.com>
To: Joseph Hwang <josephsih@google.com>,
linux-bluetooth <linux-bluetooth@vger.kernel.org>
Cc: "Marcel Holtmann" <marcel@holtmann.org>,
"Luiz Augusto von Dentz" <luiz.dentz@gmail.com>,
chromeos-bluetooth-upstreaming
<chromeos-bluetooth-upstreaming@chromium.org>,
"Alain Michaud" <alainm@chromium.org>,
"Abhishek Pandit-Subedi" <abhishekpandit@chromium.org>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Johan Hedberg" <johan.hedberg@gmail.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
"Pali Rohár" <pali@kernel.org>
Subject: Re: [PATCH v3 1/2] Bluetooth: btusb: define HCI packet sizes of USB Alts
Date: Tue, 08 Dec 2020 15:04:29 -0800 [thread overview]
Message-ID: <9810329.nUPlyArG6x@zen.local> (raw)
In-Reply-To: <20200923102215.hrfzl7c7q2omeiws@pali>
On Wednesday, September 23, 2020 3:22:15 AM PST Pali Rohár wrote:
> On Monday 14 September 2020 20:18:27 Joseph Hwang wrote:
> > On Thu, Sep 10, 2020 at 4:18 PM Pali Rohár <pali@kernel.org> wrote:
> > > And this part of code which you write is Realtek specific.
> >
> > We currently only have Intel and Realtek platforms to test with. If
> > making it generic without proper testing platforms is fine, I will
> > make it generic. Or do you think it might be better to make it
> > customized with particular vendors for now; and make it generic later
> > when it works well with sufficient vendors?
>
> I understood that those packet size changes are generic to bluetooth
> specification and therefore it is not vendor specific code. Those packet
> sizes for me really seems to be USB specific.
>
> Therefore it should apply for all vendors, not only for Realtek and
> Intel.
I have tried to test WBS with some different USB adapters. So far, all use
these packet sizes. Tested were:
Broadcom BRCM20702A
Realtek RTL8167B
Realtek RTL8821C
CSR CSR8510 (probably fake)
In all cases, WBS works best with packet size of (USB packet size for alt mode
selected) * 3 packets - 3 bytes HCI header. None of these devices support alt
6 mode, where supposedly one packet is better, but I can find no BT adapter on
which to test this.
> +static const int hci_packet_size_usb_alt[] = { 0, 24, 48, 72, 96, 144, 60};
Note that the packet sizes here are based on the max isoc packet length for
the USB alt mode used, e.g. alt 1 is 9 bytes. That value is only a
"recommended" value from the bluetooth spec. It seems like it would be more
correct use (btusb_data*)->isoc_tx_ep->wMaxPacketSize to find the MTU.
> > [Issue 2] The btusb_work() is performed by a worker. There would be a
> > timing issue here if we let btusb_work() to do “hdev->sco_mtu =
> > hci_packet_size_usb_alt[i]” because there is no guarantee how soon the
> > btusb_work() can be finished and get “hdev->sco_mtu” value set
> > correctly. In order to avoid the potential race condition, I suggest
> > to determine air_mode in btusb_notify() before
> > schedule_work(&data->work) is executed so that “hdev->sco_mtu =
> > hci_packet_size_usb_alt[i]” is guaranteed to be performed when
> > btusb_notify() finished. In this way, hci_sync_conn_complete_evt() can
> > set conn->mtu correctly as described in [Issue 1] above.
Does this also give userspace a clear point at which to determine MTU setting,
_before_ data is sent over SCO connection? It will not work if sco_mtu is not
valid until after userspace sends data to SCO connection with incorrect mtu.
next prev parent reply other threads:[~2020-12-08 23:05 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-10 6:04 [PATCH v3 0/2] To support the HFP WBS, a chip vendor may choose a particular Joseph Hwang
2020-09-10 6:04 ` [PATCH v3 1/2] Bluetooth: btusb: define HCI packet sizes of USB Alts Joseph Hwang
2020-09-10 8:18 ` Pali Rohár
2020-09-14 12:18 ` Joseph Hwang
2020-09-23 10:22 ` Pali Rohár
2020-12-08 23:04 ` Trent Piepho [this message]
2020-12-09 1:13 ` Pali Rohár
2020-12-10 0:19 ` Trent Piepho
2020-12-10 0:35 ` Pali Rohár
2020-09-10 6:04 ` [PATCH v3 2/2] Bluetooth: sco: new getsockopt options BT_SNDMTU/BT_RCVMTU Joseph Hwang
2020-09-10 8:20 ` Pali Rohár
2020-09-11 7:08 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9810329.nUPlyArG6x@zen.local \
--to=tpiepho@gmail.com \
--cc=abhishekpandit@chromium.org \
--cc=alainm@chromium.org \
--cc=chromeos-bluetooth-upstreaming@chromium.org \
--cc=davem@davemloft.net \
--cc=johan.hedberg@gmail.com \
--cc=josephsih@google.com \
--cc=kuba@kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=marcel@holtmann.org \
--cc=netdev@vger.kernel.org \
--cc=pali@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.