/* * echo 0 > MicSwitch(front) , echo 1 > MicSwitch(back), echo 2 > MicSwitch(normal) * echo 3 > MicSwitch(echo cancellation test), echo 4 > MicSwitch(disable echo cancellation) */ static ssize_t MicSwitch_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n) { int buffer; buffer = atoi(buf); MicSwitch_val = buffer & 0x0000FFFF; AcousticTable_val = MicSwitch_val; printk("acoustic table value: %d\n", AcousticTable_val); switch_audio_table(AcousticTable_val, true); return n; }
int snd_soc_dapm_put_iconia_param(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); const char *pin = (const char *)kcontrol->private_value; int is_mode_new = ucontrol->value.integer.value[0]; mutex_lock(&codec->mutex); audio_data.pin = pin; switch_audio_table(is_mode_new, false); mutex_unlock(&codec->mutex); return 0; }
void mic_switch(struct tegra_wm8903_platform_data *pdata) { switch_audio_table(audio_data.mode.control, false); fm2018_switch(pdata); }