At Sun, 11 Oct 2009 12:38:49 +0200, Krzysztof Helt wrote: > > From: Krzysztof Helt <krzysztof.h1@xxxxx> > > The C4231 control set is a superset of the AD1848 control > set so reuse the CS4231 controls definitions for the AD1848. > > Signed-off-by: Krzysztof Helt <krzysztof.h1@xxxxx> Applied now. Thanks. Takashi > --- > sound/isa/wss/wss_lib.c | 79 +++++++++++++--------------------------------- > 1 files changed, 23 insertions(+), 56 deletions(-) > > diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c > index 754a208..2ba1897 100644 > --- a/sound/isa/wss/wss_lib.c > +++ b/sound/isa/wss/wss_lib.c > @@ -2200,49 +2200,12 @@ static const DECLARE_TLV_DB_SCALE(db_scale_5bit_12db_max, -3450, 150, 0); > static const DECLARE_TLV_DB_SCALE(db_scale_rec_gain, 0, 150, 0); > static const DECLARE_TLV_DB_SCALE(db_scale_4bit, -4500, 300, 0); > > -static struct snd_kcontrol_new snd_ad1848_controls[] = { > -WSS_DOUBLE("PCM Playback Switch", 0, CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, > - 7, 7, 1, 1), > -WSS_DOUBLE_TLV("PCM Playback Volume", 0, > - CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 63, 1, > - db_scale_6bit), > -WSS_DOUBLE("Aux Playback Switch", 0, > - CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1), > -WSS_DOUBLE_TLV("Aux Playback Volume", 0, > - CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 0, 0, 31, 1, > - db_scale_5bit_12db_max), > -WSS_DOUBLE("Aux Playback Switch", 1, > - CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 7, 7, 1, 1), > -WSS_DOUBLE_TLV("Aux Playback Volume", 1, > - CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 0, 0, 31, 1, > - db_scale_5bit_12db_max), > -WSS_DOUBLE_TLV("Capture Volume", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, > - 0, 0, 15, 0, db_scale_rec_gain), > -{ > - .name = "Capture Source", > - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, > - .info = snd_wss_info_mux, > - .get = snd_wss_get_mux, > - .put = snd_wss_put_mux, > -}, > -WSS_DOUBLE("Mic Boost", 0, > - CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0), > -WSS_SINGLE("Loopback Capture Switch", 0, CS4231_LOOPBACK, 0, 1, 0), > -WSS_SINGLE_TLV("Loopback Capture Volume", 0, CS4231_LOOPBACK, 2, 63, 1, > - db_scale_6bit), > -}; > - > static struct snd_kcontrol_new snd_wss_controls[] = { > WSS_DOUBLE("PCM Playback Switch", 0, > CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 7, 7, 1, 1), > WSS_DOUBLE_TLV("PCM Playback Volume", 0, > CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 63, 1, > db_scale_6bit), > -WSS_DOUBLE("Line Playback Switch", 0, > - CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 7, 7, 1, 1), > -WSS_DOUBLE_TLV("Line Playback Volume", 0, > - CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 0, 0, 31, 1, > - db_scale_5bit_12db_max), > WSS_DOUBLE("Aux Playback Switch", 0, > CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1), > WSS_DOUBLE_TLV("Aux Playback Volume", 0, > @@ -2253,15 +2216,6 @@ WSS_DOUBLE("Aux Playback Switch", 1, > WSS_DOUBLE_TLV("Aux Playback Volume", 1, > CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 0, 0, 31, 1, > db_scale_5bit_12db_max), > -WSS_SINGLE("Mono Playback Switch", 0, > - CS4231_MONO_CTRL, 7, 1, 1), > -WSS_SINGLE_TLV("Mono Playback Volume", 0, > - CS4231_MONO_CTRL, 0, 15, 1, > - db_scale_4bit), > -WSS_SINGLE("Mono Output Playback Switch", 0, > - CS4231_MONO_CTRL, 6, 1, 1), > -WSS_SINGLE("Mono Output Playback Bypass", 0, > - CS4231_MONO_CTRL, 5, 1, 0), > WSS_DOUBLE_TLV("Capture Volume", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, > 0, 0, 15, 0, db_scale_rec_gain), > { > @@ -2277,6 +2231,20 @@ WSS_SINGLE("Loopback Capture Switch", 0, > CS4231_LOOPBACK, 0, 1, 0), > WSS_SINGLE_TLV("Loopback Capture Volume", 0, CS4231_LOOPBACK, 2, 63, 1, > db_scale_6bit), > +WSS_DOUBLE("Line Playback Switch", 0, > + CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 7, 7, 1, 1), > +WSS_DOUBLE_TLV("Line Playback Volume", 0, > + CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 0, 0, 31, 1, > + db_scale_5bit_12db_max), > +WSS_SINGLE("Mono Playback Switch", 0, > + CS4231_MONO_CTRL, 7, 1, 1), > +WSS_SINGLE_TLV("Mono Playback Volume", 0, > + CS4231_MONO_CTRL, 0, 15, 1, > + db_scale_4bit), > +WSS_SINGLE("Mono Output Playback Switch", 0, > + CS4231_MONO_CTRL, 6, 1, 1), > +WSS_SINGLE("Mono Output Playback Bypass", 0, > + CS4231_MONO_CTRL, 5, 1, 0), > }; > > static struct snd_kcontrol_new snd_opti93x_controls[] = { > @@ -2343,22 +2311,21 @@ int snd_wss_mixer(struct snd_wss *chip) > if (err < 0) > return err; > } > - else if (chip->hardware & WSS_HW_AD1848_MASK) > - for (idx = 0; idx < ARRAY_SIZE(snd_ad1848_controls); idx++) { > - err = snd_ctl_add(card, > - snd_ctl_new1(&snd_ad1848_controls[idx], > - chip)); > - if (err < 0) > - return err; > - } > - else > - for (idx = 0; idx < ARRAY_SIZE(snd_wss_controls); idx++) { > + else { > + int count = ARRAY_SIZE(snd_wss_controls); > + > + /* Use only the first 11 entries on AD1848 */ > + if (chip->hardware & WSS_HW_AD1848_MASK) > + count = 11; > + > + for (idx = 0; idx < count; idx++) { > err = snd_ctl_add(card, > snd_ctl_new1(&snd_wss_controls[idx], > chip)); > if (err < 0) > return err; > } > + } > return 0; > } > EXPORT_SYMBOL(snd_wss_mixer); > -- > 1.6.0.3 > > > ---------------------------------------------------------------------- > Szukasz pracy? Chcesz lepiej zarabia�> Sprawd� oferty na http://link.interia.pl/f23ba >
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel