Mark Brown 쓴 글:
On Tue, Mar 24, 2009 at 09:57:20PM +0900, Joonyoung Shim wrote:
This patch supports DAPM widget for always active DAC or ADC regardless of stream. This widgets will be used for voice call at TWL4030 codec.
TWL4030 codec use the digital signal for voice call, so it needs DAC and ADC to change signal to digital or analog, however currently DAC and ADC widgets cannot support voice call because they are activated only when playback or capture is executed.
What's actually needed here is proper path management in the digital domain. Powering components on all the time is clearly suboptimal since it consumes power when the bypass paths aren't in use, potentially including power from other components
Activating always DAC or ADC widget doesn't mean powering it on all the time. To power on DAC or ADC activated, we need one or more complete path connecting with DAC or ADC because the power of widgets is controlled by DAPM automatically. If complete path is no, DAC or ADC will be powered off , so we can control the power of DAC or ADC using controls at user space.
This is something that's planned in for the core (there are devices out there with more complex digital routing needs than can be solved with this sort of configuration) but I can't give you a specific schedule for it.
What I'd suggest doing for now is providing a direct analog link from the ADC input to the DAC output for DAPM and then hooking in using events on the widgets to manage the power of the DAC and ADC manually.
Thanks, but i think hooking in using events on the widgets is impossible because voice call is different operation with record or playback.
When the core gains support for digital routing this can be replaced. Alternatively, if there is no integration with record or playback required then there's no reason to represent them as DACs and ADCs, they could be done as some other path element that DAPM does know about.
Hmm, I think additional support needs for voice call operation at ASoC, so i suggested a way of this patch.