diff options
Diffstat (limited to 'sound/soc/codecs/mc1n2/mcdriver.c')
-rw-r--r-- | sound/soc/codecs/mc1n2/mcdriver.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/sound/soc/codecs/mc1n2/mcdriver.c b/sound/soc/codecs/mc1n2/mcdriver.c index af3cdc3..417d2ba 100644 --- a/sound/soc/codecs/mc1n2/mcdriver.c +++ b/sound/soc/codecs/mc1n2/mcdriver.c @@ -37,7 +37,7 @@ static SINT32 update_clock (const MCDRV_CLOCK_INFO* psClockInfo); static SINT32 switch_clock (const MCDRV_CLKSW_INFO* psClockInfo); static SINT32 get_path (MCDRV_PATH_INFO* psPathInfo); -static SINT32 set_path (const MCDRV_PATH_INFO* psPathInfo); +static SINT32 set_path (MCDRV_PATH_INFO* psPathInfo); static SINT32 get_volume (MCDRV_VOL_INFO* psVolInfo); static SINT32 set_volume (const MCDRV_VOL_INFO *psVolInfo); @@ -762,6 +762,17 @@ static SINT32 switch_clock return McDevIf_ExecutePacket(); } +#ifdef CONFIG_SND_SOC_MC1N2_MIC_ADC_SWAP +void swap_mic_adc_paths(MCDRV_PATH_INFO* psPathInfo) +{ + UINT8 temp_state; + + temp_state = psPathInfo->asAdc0[0].abSrcOnOff[0]; + psPathInfo->asAdc0[0].abSrcOnOff[0] = psPathInfo->asAdc0[1].abSrcOnOff[0]; + psPathInfo->asAdc0[1].abSrcOnOff[0] = temp_state; +} +#endif + /**************************************************************************** * get_path * @@ -791,6 +802,10 @@ static SINT32 get_path McResCtrl_GetPathInfoVirtual(psPathInfo); +#ifdef CONFIG_SND_SOC_MC1N2_MIC_ADC_SWAP + swap_mic_adc_paths(psPathInfo); +#endif + return MCDRV_SUCCESS; } @@ -809,7 +824,7 @@ static SINT32 get_path ****************************************************************************/ static SINT32 set_path ( - const MCDRV_PATH_INFO* psPathInfo + MCDRV_PATH_INFO* psPathInfo ) { SINT32 sdRet = MCDRV_SUCCESS; @@ -836,6 +851,10 @@ static SINT32 set_path return sdRet; } +#ifdef CONFIG_SND_SOC_MC1N2_MIC_ADC_SWAP + swap_mic_adc_paths(psPathInfo); +#endif + McResCtrl_SetPathInfo(psPathInfo); /* unused analog out volume mute */ |