Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754189AbbFOLRg (ORCPT ); Mon, 15 Jun 2015 07:17:36 -0400 Received: from smtp-out-224.synserver.de ([212.40.185.224]:1110 "EHLO smtp-out-224.synserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753425AbbFOLR3 (ORCPT ); Mon, 15 Jun 2015 07:17:29 -0400 X-SynServer-TrustedSrc: 1 X-SynServer-AuthUser: lars@metafoo.de X-SynServer-PPID: 7402 Message-ID: <557EB444.9070204@metafoo.de> Date: Mon, 15 Jun 2015 13:17:24 +0200 From: Lars-Peter Clausen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Zidan Wang , broonie@kernel.org CC: perex@perex.cz, tiwai@suse.de, ckeepax@opensource.wolfsonmicro.com, patches@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [alsa-devel][PATCH] ASoC: wm8960: add two kcontrols to select ADC left/right channel source References: <1434364473-27130-1-git-send-email-zidan.wang@freescale.com> In-Reply-To: <1434364473-27130-1-git-send-email-zidan.wang@freescale.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2602 Lines: 61 On 06/15/2015 12:34 PM, Zidan Wang wrote: > Add two kcontrols to select ADC left/right channel source, one to select > the left channel source and one for the right channel source. > > Signed-off-by: Zidan Wang > --- > sound/soc/codecs/wm8960.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c > index 023e898..8f9aed1 100644 > --- a/sound/soc/codecs/wm8960.c > +++ b/sound/soc/codecs/wm8960.c > @@ -141,6 +141,8 @@ static const char *wm8960_3d_upper_cutoff[] = {"High", "Low"}; > static const char *wm8960_3d_lower_cutoff[] = {"Low", "High"}; > static const char *wm8960_alcfunc[] = {"Off", "Right", "Left", "Stereo"}; > static const char *wm8960_alcmode[] = {"ALC", "Limiter"}; > +static const char *wm8960_adc_left_source[] = {"left ADC", "right ADC"}; > +static const char *wm8960_adc_right_source[] = {"right ADC", "left ADC"}; Left and Right with a uppercase first letter. > > static const struct soc_enum wm8960_enum[] = { > SOC_ENUM_SINGLE(WM8960_DACCTL1, 5, 4, wm8960_polarity), > @@ -149,6 +151,8 @@ static const struct soc_enum wm8960_enum[] = { > SOC_ENUM_SINGLE(WM8960_3D, 5, 2, wm8960_3d_lower_cutoff), > SOC_ENUM_SINGLE(WM8960_ALC1, 7, 4, wm8960_alcfunc), > SOC_ENUM_SINGLE(WM8960_ALC3, 8, 2, wm8960_alcmode), > + SOC_ENUM_SINGLE(WM8960_ADDCTL1, 3, 2, wm8960_adc_left_source), > + SOC_ENUM_SINGLE(WM8960_ADDCTL1, 2, 2, wm8960_adc_right_source), > }; Preferably use a separate variable for each of the enums, keeping track of which array index belongs to which enums is quite cumbersome. E.g. static SOC_ENUM_SINGLE_DECL(wm8960_adc_left_enum, WM8960_ADDCTL1, ...); > > static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; > @@ -279,6 +283,9 @@ SOC_SINGLE_TLV("Right Output Mixer Boost Bypass Volume", > WM8960_BYPASS2, 4, 7, 1, bypass_tlv), > SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume", > WM8960_ROUTMIX, 4, 7, 1, bypass_tlv), > + > +SOC_ENUM("ADC Left Channel Source", wm8960_enum[6]), > +SOC_ENUM("ADC Right Channel Source", wm8960_enum[7]), Since this affects the routing these should be DAPM controls. Otherwise you might run into issues with a path being powered down even if it is used. > }; > > static const struct snd_kcontrol_new wm8960_lin_boost[] = { > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/