All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: "Pali Rohár" <pali@kernel.org>
Cc: Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Joakim Tjernlund <Joakim.Tjernlund@infinera.com>,
	"linux-bluetooth@vger.kernel.org"
	<linux-bluetooth@vger.kernel.org>
Subject: Re: Default to HW mSBC on capable controllers ?
Date: Tue, 22 Dec 2020 11:05:19 +0100	[thread overview]
Message-ID: <BC13598F-C074-4CB3-B24E-10A6E0CF84DB@holtmann.org> (raw)
In-Reply-To: <20201222092100.ru5inf45v55qoa4m@pali>

Hi Pali,

>>>>> There seems to be quite a few USB controllers gaining the BTUSB_WIDEBAND_SPEECH which I guess means HW mSBC but currently there is no way to select this mode.
>>>>> Any idea if one could patch the kernel to default to HW mSBC and user apps like bluealsa/pulseaudio would just use it automatically?
>>>> 
>>>> It is in our plan to support HW offloading, but that doesn't mean all
>>>> platforms will be supported since that depends on the PCM lines being
>>>> connected to BT controller in the first place.
>>> 
>>> Dedicated PCM lines are used in embedded world and maybe also still in
>>> some mobile segment. I remember that e.g. Nokia N900 had this setup. And
>>> it was quite crazy how it was finally configured... but it worked!
>>> 
>>> But this is nothing for classic x86 laptops with USB bluetooth
>>> controllers on classic intel bluetooth+wifi mPCIe cards where SCO
>>> traffic is routed via HCI (over USB). And not via dedicated PCM pins.
>>> Moreover I think there are not any mainstream laptop which have PCM pins
>>> on mPCIe slots usable for such bluetooth mPCIe cards.
>>> 
>>> For classic desktop / laptop it is needed to deal with fact that SCO
>>> audio is routed via HCI (like A2DP) and therefore support for Enhanced
>>> Setup Synchronous Connection HCI command.
>>> 
>>> AFAIK even for routing SCO over PCM when mSBC hw encoder is used,
>>> Enhanced Setup Synchronous Connection HCI command is required.
>> 
>> So you are saying that we should do PCM over HCI and that would
>> actually work (meaning we have enough bandwidth)?
> 
> This is something which needs to be tested. And without full
> implementation (with control of all parameters) we cannot say YES or NO.
> 
> And if you are aware of bandwidth, Enhanced Setup Synchronous Connection
> HCI command allows you to use also software based CVSD codec. Meaning
> that CVSD encoding/decoding can be done by application and therefore
> decreasing amount of data to transfer to bluetooth adapter.
> 
> As I said this command is needed also if you want to use mSBC hw encoder
> over PCM, so I think usage of Enhanced Setup Synchronous Connection HCI
> command always have benefits to implement it (I have unfinished and
> untested implementation).

CVSD is an air codec only. Controller<->Host is PCM in that case. Only with mSBC you have both air codec and Controller<->Host running with mSBC.

Regards

Marcel



  parent reply	other threads:[~2020-12-22 10:06 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18 13:32 Default to HW mSBC on capable controllers ? Joakim Tjernlund
2020-12-18 19:43 ` Luiz Augusto von Dentz
2020-12-20 17:09   ` Joakim Tjernlund
2020-12-21 21:14   ` Pali Rohár
2020-12-22  1:54     ` Luiz Augusto von Dentz
2020-12-22  9:21       ` Pali Rohár
2020-12-22  9:36         ` Jamie Mccrae
2020-12-22  9:48           ` Pali Rohár
2020-12-22 10:05         ` Marcel Holtmann [this message]
2020-12-22 10:19           ` Pali Rohár
2020-12-22 11:04             ` Marcel Holtmann
2020-12-22 11:46               ` Pali Rohár
2020-12-22 12:20                 ` Marcel Holtmann
2020-12-22 13:17                   ` Pali Rohár
2020-12-22 21:11                     ` Marcel Holtmann
2020-12-22 21:13                       ` Pali Rohár
2020-12-31 10:09                         ` Pasi Kärkkäinen
2021-01-13 14:46       ` Pali Rohár
2020-12-21 21:07 ` Pali Rohár
2020-12-22 11:40   ` Pasi Kärkkäinen
2020-12-22 11:49     ` Pali Rohár
2020-12-22 13:20       ` Pali Rohár
2020-12-23 15:41   ` Joakim Tjernlund
2020-12-23 15:56     ` Pali Rohár
2020-12-23 21:58       ` Luiz Augusto von Dentz
2020-12-28 12:42         ` 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=BC13598F-C074-4CB3-B24E-10A6E0CF84DB@holtmann.org \
    --to=marcel@holtmann.org \
    --cc=Joakim.Tjernlund@infinera.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --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.