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