Re: [PATCH 0/7] PinePhone BT audio bringup

From: Chen-Yu Tsai
Date: Thu Nov 05 2020 - 23:28:22 EST


Hi,

On Fri, Nov 6, 2020 at 12:15 PM Samuel Holland <samuel@xxxxxxxxxxxx> wrote:
>
> This series makes use of the additional DAIs recently added to the
> sun8i-codec driver to add hardware routing for BT SCO (headset) audio
> on the PinePhone.
>
> The BT audio connection is represented by the "dummy" bt-sco codec. The
> connection to the Quectel EG-25G modem via AIF2 works as well, but I do
> not include it here because there is no appropriate codec driver in
> tree. We have been using an out-of-tree "dummy" codec driver similar to
> bt-sco, and I'm not sure if such a driver would be desired upstream.
>
> The modem has a similar amount of configurability as the rtl8723cs BT
> chip. For the BT chip, the DAI format and PCM parameters are set in a
> configuration firmware file and loaded at driver load time. For the
> modem, the DAI format and PCM parameters are set by (and can be queried
> from) an AT command. However, this AT command requires a modem restart
> to take effect, so the parameters cannot feasibly be changed at runtime.
>
> With a dummy driver, we pick some "standard" set of PCM parameters, e.g.
> 16 bit mono at 8 or 16 kHz, and assume the hardware agrees. Similarly,
> we assume the DAI format pre-programmed in the remote hardware matches
> what is configured in the DAI link (in this case, in the device tree).
>
> Is that the right way to model this? Or does the modem (and maybe even
> the BT chip) deserve a more featureful driver that reads and/or programs
> the format and params at probe time?

FYI there's a "Bluetooth: Allow to use configure SCO socket codec parameters"
thread on the bluetooth mailing list which is still unresolved AFAICT.

You might want to take a look at it.

ChenYu

> Because of those unanswered questions, I'm sending BT SCO support
> first/only.
>
> Regards,
> Samuel
>
> Arnaud Ferraris (1):
> arm64: dts: allwinner: pinephone: Set audio card name
>
> Samuel Holland (6):
> ASoC: dt-bindings: sun8i-codec: Increase #sound-dai-cells
> ARM: dts: sun8i-a33: Allow using multiple codec DAIs
> arm64: dts: allwinner: a64: Allow using multiple codec DAIs
> arm64: dts: allwinner: a64: Add pinmux nodes for AIF2/AIF3
> arm64: dts: allwinner: a64: Allow multiple DAI links
> arm64: dts: allwinner: pinephone: Add support for Bluetooth audio
>
> .../sound/allwinner,sun8i-a33-codec.yaml | 2 +-
> arch/arm/boot/dts/sun8i-a33.dtsi | 4 +-
> .../dts/allwinner/sun50i-a64-pinephone.dtsi | 25 +++++++++++++
> arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 37 ++++++++++++++-----
> 4 files changed, 55 insertions(+), 13 deletions(-)
>
> --
> 2.26.2
>