On Tue, Dec 02, 2008 at 01:07:28AM +0200, Grazvydas Ignotas wrote:
This patch adds controls for capture source controls. When a microphone is selected, handlers automatically enable bias power (disable when deselected). The patch also adds microphone gain control. Microphone and line input recording tested on OMAP3 pandora board.
Hrm. Disabling the gain like this is likely to cause trouble for jack detect. However, that's not implemented yet so not a problem currently.
+static int twl4030_get_right_input(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol)
+{
- struct snd_soc_codec *codec = kcontrol->private_data;
- u8 reg = twl4030_read_reg_cache(codec, TWL4030_REG_ANAMICR);
- reg &= TWL4030_SUBMIC_EN|TWL4030_AUXR_EN;
- if (reg == TWL4030_SUBMIC_EN)
ucontrol->value.integer.value[0] = 0;
- else if (reg == TWL4030_AUXR_EN)
ucontrol->value.integer.value[0] = 1;
- return 0;
This will report something undefined as selected when neither option is selected. Why not include a "None" option in the mux (the same applies to the other path)? A switch statement might make for clearer code here.
- SOC_DOUBLE_TLV("Microphone Boost", TWL4030_REG_ANAMIC_GAIN,
0, 3, 5, 0, microphone_gain_tlv),
Should be "Microphone Boost Volume" or possibly just "Microphone Volume".