[Gta04-owner] Voice routing
Dr. H. Nikolaus Schaller
hns at goldelico.com
Thu Nov 14 13:39:02 CET 2013
Am 13.11.2013 um 16:46 schrieb Andreas Kemnade:
> On Wed, 2013-11-13 at 12:12 +0100, Dr. H. Nikolaus Schaller wrote:
>> I have started to analyse the voice routing patch for the 3.12.0 kernel
>> because routing to SoC did not work any more .
>> After removing the patch it worked fine.
>> With the patch it appears that I have to switch to hw-routing
>> once and back to SoC to make it work.
>> This indicates an initialization issue.
>> What I have done is to replace writing directly to the twl registers
>> by a call to twl4030_voice_set_tristate() which tries to preserve
>> as much as possible of the original register contents.
>> Now, SW routing works in the dial script.
>> But HW routing does not (neither with old nor new patch). Maybe
>> I am also just missing something in the mixer settings?
> tested with 3.12.0-wip (did uname -a to check what i am running on)
> hw routing works.
Hm. First of all I had a problem that 3.12.0-wip / master has a bug in the .config
so that our gta04 specific and the generic twl4030-audio drivers were compiled into the kernel.
The result was that we had 5 instead of 4 audio devices.
But it still does not work.
> Possible problem: One path (mic->modem or
> modem->speaker) is not completely in the DAPM route system, so not
> everything is powered on properly if not enough things are powered on.
Ah, that is a good hint.
Maybe nothing is powered on at all unless I run an arecord >/dev/null in the
background? I.e. the ALSA system does not know that the TWL4030 codec
and the microphone voltage etc. is to be activated.
Such a mechanism is certainly available in QtMoko and SHR/FSO code but
hidden so deeply that one would not find...
> I think Neil has improved my patch in his kernel to fix that.
Well, we should have it in the 3.12 since its was a rebase of the 3.7-plus which was
a rebase on Neil's 3.7 kernel.
But I don't know...
More information about the Gta04-owner