Message ID | 20180314123900.19505-1-suzuki.katsuhiro@socionext.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 90e0fb05e5c1b1cf6a59c4f888f500e2b1feffc4 |
Headers | show |
On Wed, Mar 14, 2018 at 09:39:00PM +0900, Katsuhiro Suzuki wrote: > This patch adds mixer switch for changing audio source of line-in. > We can choose one of LIN1, 2, 3, default is LIN1. I'll apply for now but this should really be a DAPM control so that we can power down things connected to the disconnected line inputs when recording.
On Mon, Mar 19, 2018 at 01:19:10PM +0900, Katsuhiro Suzuki wrote: > > I'll apply for now but this should really be a DAPM control so that we > > can power down things connected to the disconnected line inputs when > > recording. > Thanks a lot for your suggestion. I tried to change the implementation to DAPM > control as follows: > I can see the value of ALINSW1 register at 'Line In 1 Mux',0 using > amixer get 'Line In 1 Mux',0 > But I can't change the value. > amixer set 'Line In 1 Mux',0 LIN2 > Simple mixer control 'Line In 1 Mux',0 > Capabilities: enum > Items: 'LIN1' 'LIN2' 'LIN3' > Item0: 'LIN1' > Would you tell me what is wrong... Ugh, I *have* run into that before but I can't remember what triggers it and your code doesn't have any mistakes I can spot. Unfortunately I'm at Linaro Connect this week and don't have a test system I can poke at with me to remind myself, and I'm still travelling next week unfortunately. I'd add some trace to the set code path to make sure everything is being called as expected. It's somemthing really small that's hard to make a warning for in the code IIRC.
diff --git a/sound/soc/uniphier/evea.c b/sound/soc/uniphier/evea.c index 439f14f91b23..73fd6730095c 100644 --- a/sound/soc/uniphier/evea.c +++ b/sound/soc/uniphier/evea.c @@ -18,6 +18,8 @@ #define AADCPOW(n) (0x0078 + 0x04 * (n)) #define AADCPOW_AADC_POWD BIT(0) +#define ALINSW1 0x0088 +#define ALINSW1_SEL1_SHIFT 3 #define AHPOUTPOW 0x0098 #define AHPOUTPOW_HP_ON BIT(4) #define ALINEPOW 0x009c @@ -278,7 +280,16 @@ static int evea_set_switch_hp(struct snd_kcontrol *kcontrol, return evea_update_switch_hp(evea); } +static const char * const linsw1_sel1_text[] = { + "LIN1", "LIN2", "LIN3" +}; + +static SOC_ENUM_SINGLE_DECL(linsw1_sel1_enum, + ALINSW1, ALINSW1_SEL1_SHIFT, + linsw1_sel1_text); + static const struct snd_kcontrol_new evea_controls[] = { + SOC_ENUM("Line Capture Source", linsw1_sel1_enum), SOC_SINGLE_BOOL_EXT("Line Capture Switch", 0, evea_get_switch_lin, evea_set_switch_lin), SOC_SINGLE_BOOL_EXT("Line Playback Switch", 0,
This patch adds mixer switch for changing audio source of line-in. We can choose one of LIN1, 2, 3, default is LIN1. Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com> --- sound/soc/uniphier/evea.c | 11 +++++++++++ 1 file changed, 11 insertions(+)