Bluetooth: btbcm: Support pcm configuration
authorAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
Tue, 26 Nov 2019 07:17:30 +0000 (08:17 +0100)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 10 Jul 2020 08:48:18 +0000 (17:48 +0900)
commitee02e9fc57a1b624f59d18cdf7ef9e729c479789
tree773ed57bfc850a53b1ab3474d2e53a06d0bf1de9
parent07bd7ab686f5032f237e1504126a95789826af7b
Bluetooth: btbcm: Support pcm configuration

commit 528379902337102b0264fe5343eafb3d6c59fa45 upstream.

Add BCM vendor specific command to configure PCM parameters. The new
vendor opcode allows us to set the sco routing, the pcm interface rate,
and a few other pcm specific options (frame sync, sync mode, and clock
mode). See broadcom-bluetooth.txt in Documentation for more information
about valid values for those settings.

Here is an example trace where this opcode was used to configure
a BCM4354:

        < HCI Command: Vendor (0x3f|0x001c) plen 5
                01 02 00 01 01
        > HCI Event: Command Complete (0x0e) plen 4
        Vendor (0x3f|0x001c) ncmd 1
                Status: Success (0x00)

We can read back the values as well with ocf 0x001d to confirm the
values that were set:
        $ hcitool cmd 0x3f 0x001d
        < HCI Command: ogf 0x3f, ocf 0x001d, plen 0
        > HCI Event: 0x0e plen 9
        01 1D FC 00 01 02 00 01 01

Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
drivers/bluetooth/btbcm.c
drivers/bluetooth/btbcm.h