一 音量键唤醒源平台化需求
1) 音量键在无应用使用的情况下,关闭中断唤醒源,防止待机过程中误碰音量键导致电流跃起增加功耗
2) 在需要使用音量键作为唤醒源调节音量时打开中断唤醒源,保证音量可以调节。
二、 音量键唤醒源参考平台化实现方案
1) 音量上下键提供按键唤醒源中断使能函数,不同平台函数实现不同,但可以提供一个统一的接口
2) 音频通过ALSA control向用户层提供控制接口“Volume Keys Wakeup“,内部调用音量上下键提供按键唤醒源中断使能函数对唤醒源开关控制。
3) 用户层通过标准alsa控制接口开关“Volume Keys Wakeup“,应用待机情况下用到音量键的场景包括:
1)LPA低功耗播放音乐
2)FM手机播放音乐
3)通话AP待机,包括普通通话,蓝牙耳机通话
以上情况可以在mixer_path.xml 的use case 添加打开Volume Keys Wakeup实现
三8916音量键唤醒源平台化实现参考方案
1) 音量键唤醒源使能函数,使能函数需要加上开关是引用计数,防止唤醒源误关闭的操作
int set_volume_keys_wakeup(int enable)
{
static int enable_ref=0;
if (VOL_DISABLE_WAKEUP == enable) {
enable_ref--;
if(enable_ref<=0)
{
YL_VOL_WAKEUP = VOL_DISABLE_WAKEUP;
enable_ref=0;
printk(KERN_ERR"GPIO_KEYS:YLLOG:disabl