Re: omap4-droid4: voice call support was Re: [PATCHv5,5/5] ARM: dts: omap4-droid4: add soundcard

From: Tony Lindgren
Date: Wed Mar 28 2018 - 21:45:22 EST


Hi,

* Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> [180328 14:03]:
> Hi,
>
> On Wed, Mar 28, 2018 at 10:29:10AM +0800, Mark Brown wrote:
> > On Wed, Mar 28, 2018 at 12:22:37AM +0200, Sebastian Reichel wrote:
> > > On Tue, Mar 27, 2018 at 08:14:41PM +0800, Mark Brown wrote:
> >
> > > > No, this is exactly the sort of use case with multiple DAIs that the
> > > > graph card is intended to enable over the old simple-card.
> >
> > > +----------+ +-------------+
> > > | OMAP4 | | CPCAP |
> > > | | | |
> > > | [McBSP2] | <-----> | [HiFi DAI] |
> > > | | | |
> > > | [McBSP3] | <--+--> | [Voice DAI] |
> > > | | | | |
> > > +----------+ | +-------------+
> > > |
> > > +----------+ | +-------------+
> > > | MDM6600 | | | WL1285 |
> > > | | | | |
> > > | [DAI] | <--+--> | [DAI] |
> > > | | | |
> > > +----------+ +-------------+
> >
> > > Legend:
> > > OMAP4 = SoC running Linux
> > > CPCAP = Audio codec
> > > MDM6600 = Baseband
> > > WL1285 = Bluetooth
> >
> > > Re-reading the audio-graph-card binding document I still don't see
> > > how the network (OMAP.McBSP3, CPCAP.Voice, MDM6600, WL1285) is
> > > supposed to look like. It seems to expect point-to-point DAI
> > > connections.
> >
> > Ugh, a TDM mux?
>
> Yes, at least that's how I understood Motorola's code.

Hmm is there some active component doing the muxing then?
Maybe the "AT+CMUT=0" part below?

> > That's really unusual and not particularly supported yet, you'd
> > need to extend the graph card to do it. It's where things should
> > end up for a generic card though.
>
> Motorola's driver provided the following modes:
>
> OMAP4 <-> CPCAP (voice recording)
> MDM6600 <-> CPCAP (voice call, CPU not involved)
> OMAP4 <-> WL1285 (bluetooth HFP/HSP)
> MDM6600 <-> WL1285 (bluetooth voice call)
>
> In case of the last two variants, the bus clock is provided by
> CPCAP, so it needs to be enabled for any audio stream. I suppose
> the codec <-> codec as part of TDM is out of scope for the graph
> card and we need a Droid 4 specific card driver?

Hmm well I got audio call hacked to work as a proof of concept hack,
see below. Maybe it can be used to verify some of the assumptions
above.

Then.. To split the work a bit, can you guys maybe try to decode
the cpcap register values and try to do a proper ASoC driver patch?

Meanwhile, I can try to make voice calls more reproducable with
qmi or MM for example instead of just n_gsm.. And then I'll try
to fix my n_gsm pile of hacks for posting..

Cheers,

Tony

8< --------------------------