[alsa-devel] [PATCH] ALSA SOC driver for s3c24xx with uda1341

Mark Brown broonie at sirena.org.uk
Tue Nov 11 11:39:32 CET 2008


On Mon, Nov 10, 2008 at 08:04:49PM +0100, chri wrote:
> On Mon, Nov 10, 2008 at 2:34 PM, Mark Brown <broonie at sirena.org.uk> wrote:

> ack. I was tempted to use pr_debug (and even better dev_dbg) but I
> went for the old printk method for uniformity with the rest of the
> drivers.

If you work with current git you'll see that the other drivers have been
converted to pr_debug().

> >> +SOC_SINGLE("DAC Gain switch", UDA1341_STATUS1, 6, 1, 0),
> >> +SOC_SINGLE("ADC Gain switch", UDA1341_STATUS1, 5, 1, 0),

> > What exactly do these controls do?  "Gain switch" sounds wrong - I'd not
> > expect the gain to be a boolean.

> they turn on/off an amplifier with 6db gain in the record and playback
> respectively.

Should be "ADC +6dB Switch" or similar then.

> >> +static int s3c24xx_uda1341_hw_params(struct snd_pcm_substream *substream,
> >> +                                       struct snd_pcm_hw_params *params)
> >> +{

> > I can follow this function but it'd be nice to see more comments in
> > here.  It looks like you could clarify it by iterating over a table of
> > possible clock sources rather than writing each out in code.

> unfortunately the 2 clock sources are handled differently: PCLK can be
> divided, MPLL_in no. So I don't see much convenience in using a
> (complicated) table

A pointer to a table of dividers would handle it.  In any case, it needs
more comments.

> >> +     ret = cpu_dai->dai_ops.set_sysclk(cpu_dai, clk_source , clk,
> >> +                                             SND_SOC_CLOCK_IN);
> >> +     if (ret < 0)
> >> +             return ret;

> > You want to run this through scripts/checkpatch.pl.

> I already did it

I'd have expected checkpatch to catch the extra space you've got after
clk_source there...

> >> +static void s3c24xx_uda1341_power(int en)
> >> +{
> >> +     if (s3c24xx_uda1341_l3_pins->power)
> >> +             s3c24xx_uda1341_l3_pins->power(en);
> >> +}

> > This feels like it ought to be initialised conditionally rather than
> > having the check for the pin it.

> It's not clear to me what you mean here.

This function is going to be used in a vtable where IIRC it can be
optional but it needs to check the value of power in s3c24xx_uda1341_l3_pins.
It feels like you've got too many layers of indirection here and that,
for example, the l3_pins power should be assignable directly to the
vtable.


More information about the Alsa-devel mailing list