Hi, >From: ext Liam Girdwood [mailto:lrg@xxxxxxxxxxxxxxx] >Sent: 28 January, 2010 18:22 >On Thu, 2010-01-28 at 17:46 +0200, Ilkka Koskinen wrote: >> Add ASoC interface for OMAP McBSP2 and McBSP3 sidetones. >> >> Signed-off-by: Ilkka Koskinen <ilkka.koskinen@xxxxxxxxx> >> --- >> sound/soc/omap/omap-mcbsp.c | 187 >+++++++++++++++++++++++++++++++++++++++++++ >> sound/soc/omap/omap-mcbsp.h | 2 + >> 2 files changed, 189 insertions(+), 0 deletions(-) >> >> diff --git a/sound/soc/omap/omap-mcbsp.c >b/sound/soc/omap/omap-mcbsp.c >> index 6bbbd2a..295620b 100644 >> --- a/sound/soc/omap/omap-mcbsp.c >> +++ b/sound/soc/omap/omap-mcbsp.c >> @@ -39,6 +39,14 @@ > >snip > >> +/* McBSP Sidetone Switch */ >> +static const char *omap_mcbsp_st_status[] = { >> + "off", >> + "on", >> +}; >> + > >Should this not be a switch (like a mute switch) rather than an enum >kcontrol ? Makes sense. I'll change it. >> +static const struct soc_enum omap_mcbsp_st_status_enum[] = { >> + SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(omap_mcbsp_st_status), >> + omap_mcbsp_st_status), >> +}; >> + >> +static const struct snd_kcontrol_new omap_mcbsp2_st_controls[] = { >> + SOC_ENUM_EXT("McBSP2 Sidetone Switch", >omap_mcbsp_st_status_enum[0], >> + omap_mcbsp2_st_get_mode, >omap_mcbsp2_st_set_mode), >> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP2 Sidetone Channel >0 Volume", >> + -32768, 32767, >> + omap_mcbsp2_get_st_ch0_volume, >> + omap_mcbsp2_set_st_ch0_volume), >> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP2 Sidetone Channel >1 Volume", >> + -32768, 32767, >> + omap_mcbsp2_get_st_ch1_volume, >> + omap_mcbsp2_set_st_ch1_volume), >> +}; >> + >> +static const struct snd_kcontrol_new omap_mcbsp3_st_controls[] = { >> + SOC_ENUM_EXT("McBSP3 Sidetone Switch", >omap_mcbsp_st_status_enum[0], >> + omap_mcbsp3_st_get_mode, >omap_mcbsp3_st_set_mode), >> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP3 Sidetone Channel >0 Volume", >> + -32768, 32767, >> + omap_mcbsp3_get_st_ch0_volume, >> + omap_mcbsp3_set_st_ch0_volume), >> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP3 Sidetone Channel >1 Volume", >> + -32768, 32767, >> + omap_mcbsp3_get_st_ch1_volume, >> + omap_mcbsp3_set_st_ch1_volume), >> +}; >> + >> +int omap_mcbsp_st_add_controls(struct snd_soc_codec *codec, >int mcbsp_id) >> +{ >> + if (!cpu_is_omap34xx()) >> + return -ENODEV; >> + >> + switch (mcbsp_id) { >> + case 2: /* McBSP 2 */ >> + return snd_soc_add_controls(codec, >omap_mcbsp2_st_controls, >> + >ARRAY_SIZE(omap_mcbsp2_st_controls)); >> + case 3: /* McBSP 3 */ >> + return snd_soc_add_controls(codec, >omap_mcbsp3_st_controls, >> + >ARRAY_SIZE(omap_mcbsp3_st_controls)); >> + default: >> + break; >> + } >> + >> + return -1; > >-EINVAL; Oops, thanks. Cheers, Ilkka >> +} >> +EXPORT_SYMBOL_GPL(omap_mcbsp_st_add_controls); >> + >> static int __init snd_omap_mcbsp_init(void) >> { >> return snd_soc_register_dais(omap_mcbsp_dai, >> diff --git a/sound/soc/omap/omap-mcbsp.h >b/sound/soc/omap/omap-mcbsp.h >> index 647d2f9..7537435 100644 >> --- a/sound/soc/omap/omap-mcbsp.h >> +++ b/sound/soc/omap/omap-mcbsp.h >> @@ -57,4 +57,6 @@ enum omap_mcbsp_div { >> >> extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS]; >> >> +int omap_mcbsp_st_add_controls(struct snd_soc_codec *codec, >int mcbsp_id); >> + >> #endif > > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel