\kernel\sound\core\control.c \kernel\sound\core\ \kernel\sound\soc\codecs\Msm8x16-wcd.c 从上往下的大致流程: amixer-用户层 |->snd_ctl_ioctl-系统调用 |->snd_ctl_elem_write_user-内核钩子函数 |->snd_ctl_elem_wirte- |->snd_ctl_find_id-遍历kcontrol链表找到与给定id相匹配的kctl |->kctl->put()-调用kctl的成员函数put() |->snd_soc_put_volsw modem重启了的代码:\kernel\drivers\soc\qcom\smd.c 起始ioctl:\kernel\sound\core\control_compat.c snd_ctl_elem_write_user_compat >> snd_ctl_elem_write >> result = kctl->put(kctl, control); ADC1 Volume函数get put设置\kernel\sound\soc\codecs\msm8x16-wcd.c 最终读写寄存器函数:\kernel\sound\soc\soc-core.c 更往上:\kernel\sound\core\control.c: