Re: call/normal switch was Re: omap4-droid4: voice call support was

Dan Williams
2018-04-02T15:50:08Z

On Sun, 2018-04-01 at 10:30 -0700, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [180401 15:38]:
> > * Pavel Machek <pavel@ucw.cz> [180401 13:20]:
> > > On Sat 2018-03-31 16:43:14, Tony Lindgren wrote:
> > > > * Pavel Machek <pavel@ucw.cz> [180331 19:56]:
> > > > > On Sat 2018-03-31 21:46:16, Pavel Machek wrote:
> > > > > > On Sat 2018-03-31 21:19:39, Pavel Machek wrote:
> > > > > > > On Sat 2018-03-31 11:19:35, Tony Lindgren wrote:
> > > > > > > > Cool :) Microphone still does not work for me.. I tried
> > > > > > > > tweaking
> > > > > > > > the alsamixer settings but no mic. This is with cold
> > > > > > > > boot with
> > > > > > > > droid4-kexecboot if that might make a difference, we
> > > > > > > > may have
> > > > > > > > some register uninitialized somewhere. Any ideas?
> > > > > > >
> > > > > > > Ok, I was focusing on the speaker side.
> > > > > > >
> > > > > > > alsamixer, tab to go to capture settings, set it to 37 37
> > > > > > > Mic2 Mic1
> > > > > > > should work, according to my notes, but not recently
> > > > > > > tested and not
> > > > > > > tested against real human.
> > > > > > >
> > > > > > > I'll attempt to test it, but something in my userland
> > > > > > > shuts down
> > > > > > > system just after boot 60% of time, which is rather
> > > > > > > annoying.
> > > > > >
> > > > > > Hmm. So I tried again, and setting Mic1 and back in the
> > > > > > capture
> > > > > > settings crashed the modem. Bang, disconnected from the
> > > > > > USB.
> > > > >
> > > > > Next try, and it worked this time.
> > > > >
> > > > > _Before the call_, set mode to Normal and then Call. Then go
> > > > > to
> > > > > capture, and set 100 100 Mic2 Mic1. Then place a call,
> > > > >
> > > > > AT+CFUN=1
> > > > > OK
> > > > > ATD6;
> > > >
> > > > No luck with microphone here :( Using ttyUSB4, AT+CFUN=1
> > > > works, but ATD command on it just hangs the USB interface
> > > > and I have to reload phy-mapphone-mdm6600 to reset the
> > > > modem.
> > >
> > > Test call with real human worked (thanks to Rolf K.), I could
> > > hear him
> > > well but he reported call was very quiet. And that was with
> > > capture
> > > settings at 100%.
> >
> > Maybe the volume also needs to be controlled at mdm6600 end.
> > I'm seeing some AT+CLVL=n with n being between [0-7] calls on
> > DLCI2 in my Android logcat logs.
> >
> > > If you had a register dump from android with mics working,
> > > preferably
> > > not in speaker mode, perhaps I could try to figure it out?
> >
> > OK here are four diffs against starting the phone app for regular
> > call, speaker call, and muted versions of them:
> >
> > http://muru.com/linux/d4/cpcap/
> >
> > Also, I'm connected over cdma right now, not 3g, but I doubt
> > that makes a difference for the microphone.
>
> Found it! Here's what I need to do over n_gsm:
>
> ngsm 1 "AT+CFUN=1"
> ngsm 1 "AT+CFUN?"
> ngsm 2 "AT+EACC=3,0" # enable mic
> ngsm 2 "AT+CLVL=4" # set speaker volume
> ngsm 2 "AT+CMUT=0" # unmute mic

I tried to look through the QMI dumps we have in libqmi from 2013
(latest Qualcomm posted) and couldn't find anything to do with mic
control, speaker volume, or anything like that.

If the modem supports the AT service (which I think it does? Not
looking at the libqmi dumps right now) then it could potentially tunnel
these AT commands through QMI too.

Perhaps Qualcomm added something to the Voice service after 2013, or
perhaps there are other services that might control speaker/mic that we
don't have public dumps for yet though.

Dan

> ngsm 1 "ATD${number}"
> ngsm 1 "AT+CLCC" # list current calls
> ngsm 2 "AT+NREC=1" # enable noise cancellation
> ngsm 1 "AT+SCRN=0" # ??? not sure if this does anything
>
> while [ 1 ]; do
> date
> ngsm 1 "AT+CLCC"
> sleep 10
> done
>
> So speaker phone call works just fine, I just tested with a
> human at the other end :)
>
> Hmm let's hope all those also translate to some qmi calls.
>
> Regards,
>
> Tony