FAQ-MT6250基線關機有pop音

SZX511發表於2019-06-17

MT6250基線關機有pop音,之前MT6250D有出現過,解決方法是將afe_def件的__AFE_PA_DELAY_OFF__定義為1,能夠解決。而MT6250按此方法處理後,能將pop音消除,但錄音機錄音後,立刻播放會當機。
[Solution]
分析過程:因為是播放聲音的末尾有pop音,採用提前關PA的方法,這個方法在較多平臺經常使用,如MT6236,MT6253,MT6252等。
AFE_TurnOffSpeaker函式修改如下:
void AFE_TurnOffSpeaker( kal_uint8 aud_func )
{
kal_uint32 savedMask;
stack_print("AFE_TurnOffSpeaker v1-afe_common.c line 2872-2");
savedMask = SaveAndSetIRQMask(); /* Disable interrupt to prevent race
condition */
afe.sp_flag &= ~(1<<aud_func);
RestoreIRQMask(savedMask);
if( !afe.gpio_lock && (afe.aud[aud_func].out_dev & L1SP_BUFFER_EXT)) {
AFE_SwitchExtAmplifier( false );
kal_sleep_task(1);
afe.ext_op_on = KAL_FALSE;
}
AFE_SetRefresh();
L1Audio_Msg_AFE_TurnSpk( L1AUDIO_Str_onoff(0), L1AUDIO_Func_Name(aud_func)
);
}
但經試驗會出現通話時,對方聽不到我們手機的聲音,或者對方說話,我們聽不到了,擴音可以聽到.
考慮到若是再去分析通話的問題,會比較發散。於是從__AFE_PA_DELAY_OFF__定義為1,引發當機問題著手。仍將__AFE_PA_DELAY_OFF__定義為1,但錄音機錄音後,立刻播放會當機,抓memory dump分析。
AFE_Stop_and_Wait_DelayOff中kal_sleep_task,MMI (等待事件<aud_even:0x1>,一直等不到,導致MMI的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529038/viewspace-2647869/,如需轉載,請註明出處,否則將追究法律責任。

相關文章