[alsa-devel] [PATCH v2 1/4] ASoC: DMIC: Adding the OMAP DMIC driver

Lambert, David dlambert at ti.com
Fri Jan 7 17:34:53 CET 2011


On Thu, Jan 6, 2011 at 4:20 PM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
> On Thu, Jan 06, 2011 at 08:00:36AM -0600, David Lambert wrote:
>
>> @@ -103,6 +106,7 @@ config SND_OMAP_SOC_SDP4430
>>       depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP_4430SDP
>>       select SND_OMAP_SOC_MCPDM
>>       select SND_SOC_TWL6040
>> +     select SND_SOC_DMIC
>>       help
>>         Say Y if you want to add support for SoC audio on Texas Instruments
>>         SDP4430.
>
> Any tweaks to specific machines should be done separately to adding the
> new drivers.

OK... I'll put that in to a separate patch.

>
>> +     struct omap_dmic *dmic = snd_soc_dai_get_drvdata(dai);
>> +     int ctrl, div_sel = -EINVAL;
>> +
>> +     if (div_id != OMAP_DMIC_CLKDIV)
>> +             return -ENODEV;
>> +
>> +     switch (dmic->clk_freq) {
>> +     case 19200000:
>> +             if (div == 5)
>> +                     div_sel = 0x1;
>> +             else if (div == 8)
>> +                     div_sel = 0x0;
>
> I suggested switch statements previously; you didn't comment on my
> reply.
>

Sorry... my personal standard on when to go with a switch statement is
>2 choices,
I'll change it over to a switch...

>> +static irqreturn_t omap_dmic_irq_handler(int irq, void *dev_id)
>> +{
>> +     struct omap_dmic *dmic = dev_id;
>
> My comments on this function appear to have been mostly ignored also.
>

Being as with this hardware, the IRQ handler really does nothing, I
think it best
if I just take it out for now.  It is useful in debugging cases to ensure you're
moving data.  I'll just remove it.

>> +     switch (rate) {
>> +     case 192000:
>> +             div = 5;
>> +             break;
>> +     default:
>> +             div = 8;
>
> Shouldn't the default case be a case 96000?

The default case IS 96000 (only options for rate here are 96000 and
192000), isn't it?

>
>> +     case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
>> +             break;
>> +     case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
>> +             break;
>
> Remove the empty cases, they're handled by the default.
>

OK

>> +
>> +MODULE_AUTHOR("David Lambert <dlambert at ti.com>");
>> +MODULE_DESCRIPTION("OMAP DMIC SoC Interface");
>> +MODULE_LICENSE("GPL");
>
> As also previously noted you should have a MODULE_ALIAS.

The MODULE_ALIAS is in there... just following example of the other drivers
I looked at, it was placed above the platform_driver declaration.

+MODULE_ALIAS("platform:omap-dmic-dai");
+
+static struct platform_driver asoc_dmic_driver = {
+       .driver = {
+               .name = "omap-dmic-dai",
+               .owner = THIS_MODULE,
+       },
+       .probe = asoc_dmic_probe,
+       .remove = __devexit_p(asoc_dmic_remove),
+};

>

--
David Lambert
OMAP™ Multimedia
214-567-5692


More information about the Alsa-devel mailing list