[alsa-devel] [PATCH 1/4] ASoC: ALSA ASoC CQ0093 Voice Codec Driver

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Sep 22 23:22:45 CEST 2009


On Tue, Sep 22, 2009 at 01:28:58PM -0600, miguel.aguilar at ridgerun.com wrote:

Looks mostly good - the main issue here is the device registration
stuff, everything else is fairly minor.

> +	select SND_SOC_CQ0093VC if ARCH_DAVINCI_DM365

This probably should have no dependency (see below about device
registration).

> +#define AUDIO_NAME "cq0093"
> +#define CQ93VC_VERSION "0.1"

I'd just drop these.

> +static int cq93vc_hw_params(struct snd_pcm_substream *substream,
> +			   struct snd_pcm_hw_params *params,
> +			   struct snd_soc_dai *dai)
> +{
> +	return 0;
> +}

Just omit this if it's empty.

> +static const struct snd_kcontrol_new cq93vc_snd_controls[] = {
> +	SOC_SINGLE("PGA Capture Volume", VC_REG05, 0, 0x03, 0),
> +	SOC_SINGLE("Mono DAC Playback Volume", VC_REG09, 0, 0x3f, 0),

Any chance of adding TLV information for these?  Not essential but it's
nice for userspace applications.

> +static int cq93vc_add_controls(struct snd_soc_codec *codec)
> +{

Please use snd_soc_add_controls instead.

> +static int cq93vc_set_bias_level(struct snd_soc_codec *codec,
> +				enum snd_soc_bias_level level)
> +{
> +	switch (level) {
> +	case SND_SOC_BIAS_ON:
> +		/* all power is driven by DAPM system */
> +		cq93vc_write(codec, VC_REG12, POWER_ALL_ON);

The code is OK but the driver isn't using DAPM.

> +static int cq93vc_probe(struct platform_device *pdev)
> +{

You should make the driver a regular platform device - that way you
won't need to do the trick with the global variable to get the resources
and you won't need to register the DAIs on module_init.  See wm8350 for
an example of doing this with a platform device.



More information about the Alsa-devel mailing list