0. 背景
平台:MSM8953
kernel version: msm-3.18。
1. enable_spk_ext_pa
代码路径:LA.UM.5.6\kernel\msm-3.18\sound\soc\msm\msm8952.c
然后我们在SI里面检索enable,然后用F4跳转几下,就找到这个函数了。
static int enable_spk_ext_pa(struct snd_soc_codec *codec, int enable)
{
struct snd_soc_card *card = codec->component.card;
struct msm8916_asoc_mach_data *pdata = snd_soc_card_get_drvdata(card);
if (!gpio_is_valid(pdata->spk_ext_pa_gpio)) {
pr_err("%s: Invalid gpio: %d\n", __func__, pdata->spk_ext_pa_gpio);
return false;
}
if(enable){
AW87XX_MODE4(pdata->spk_ext_pa_gpio);
pr_err("@@@@@@@@ AW87XX_MODE2 @@@@@@@@@@@\n");
} else {
AW87XX_SHTDOWN(pdata->spk_ext_pa_gpio);
pr_err("@@@@@@@@ AW87XX_SHTDOWN @@@@@@@@@\n");
}
return 0;
}
这里大概就是说,enable为true那么外部PA就拉高,反之就拉低。

(可能引起困惑的两个宏定义如上,就是用来拉高、拉低GPIO的)
2. msm_audrx_init
接下来看谁调用了这个函数enable_spk_ext_pa:
~/android7/LA.UM.5.6$ grep -nr

本文详细解析了MSM8953平台上的音频驱动实现,重点介绍了enable_spk_ext_pa函数如何控制外部功率放大器(GPIO),以及msm_audrx_init函数在音频初始化过程中的作用。
最低0.47元/天 解锁文章
2707





