[alsa-devel] [PATCH v2 2/6] ARM: DaVinci: ASoC: Add the platform devices for ASP

naresh x0090427 at ti.com
Mon Apr 20 05:17:11 CEST 2009


Dave,

Thanks for the review.

I will re-submit the patch after fixing the comments.

Regards,
Naresh

>
>On Thursday 16 April 2009, Medisetty, Naresh wrote:
>>  arch/arm/mach-davinci/dm355.c            |   29 ++++++++++++-
>>  arch/arm/mach-davinci/dm644x.c           |   27 +++++++++++-
>>  arch/arm/mach-davinci/dm646x.c           |   67
>++++++++++++++++++++++++++
>>  arch/arm/mach-davinci/include/mach/asp.h |   39 ++++++++++++++++-
>
>Note the merge dependency:  most of those aren't yet in mainline.
>I think Kevin sent the dm644x.c changes to the ARM list for their
>first review cycle recently.
>
>My comments below are for the dm355.c changes, but they apply just
>as much to the other two SoC-specific setup files.
>
>
>> +static struct resource dm355_evm_snd_resources[] = {
>> +       {
>> +               .start  = DAVINCI_ASP1_BASE,
>> +               .end    = DAVINCI_ASP1_BASE + SZ_8K - 1,
>> +               .flags  = IORESOURCE_MEM,
>> +       },
>> +};
>> +
>> +static struct evm_snd_platform_data dm355_evm_snd_data = {
>> +       .clk_name       = "asp1",
>> +       .tx_dma_ch      = DAVINCI_DMA_ASP1_TX,
>> +       .rx_dma_ch      = DAVINCI_DMA_ASP1_RX,
>> +};
>
>If you're going to move to proper driver model support
>(good!) ... the DMA channels should be IORESOURCE_DMA
>resources, and the clock should be associated directly
>with that platform device.
>
>That might seem to leave that current platform data
>struct as useless ... not so!  It should tell about how
>the audio is configured:  whether RX and TX are both
>wired, if they're stereo or what, how *audio* clocks
>are set up, and so forth.  All that is specific to the
>specific *board* in use, not to that SoC, so it should
>be provided by board setup code.  A lot of it is now
>encoded in the sound/soc/davinci/davinci-evm.c file.
>
>Example:  dm6446 evm supports six different audio clocks,
>but right now one choice is fixed at board setup time.
>
>ASoC seems to have ways to let drivers make that choice.
>That could be handled by board-specific callbacks and data
>tables, and would be good to package in platform data.
>A different dm6446 board may use a different audio clock
>setup, with different choices.
>
>
>> +
>> +static struct platform_device dm355_asoc_device = {
>> +       .name                           = "davinci-asoc",
>> +       .id                                     = -1,
>> +       .dev.platform_data      = &dm355_evm_snd_data,
>> +       .num_resources          = ARRAY_SIZE(dm355_evm_snd_resources),
>> +       .resource                       = dm355_evm_snd_resources,
>
>Looks like the alignment goofage there (for "=") is more than
>what can be explained by patch mangling from email...
>
>
>> +};
>
>
>> @@ -555,6 +579,7 @@ static int __init dm355_init_devices(void)
>>
>>         davinci_cfg_reg(DM355_INT_EDMA_CC);
>>         platform_device_register(&dm355_edma_device);
>> +       platform_device_register(&dm355_asoc_device);
>
>This does *NOT* belong in the generic dm355 setup code like that.
>Not every DM355 board will even have audio!  Or have it wired
>exactly like Spectrum's EVM boards.
>
>It'd be appropriate to add dm355_init_asoc(asp_num, platform_data)
>or something similar, so that different boards wouldn't need to
>repeat the won't-change parts.  That routine might need to set up
>some pin, IRQ, and EDMA muxing.  Boards with no audio support would
>not call that routine.  Ones with two audio interfaces might need
>to call it once for each interface.
>
>
>>         return 0;
>>  }
>>  postcore_initcall(dm355_init_devices);
>
>
>Similar comments for the two other SoC chips touched by this patch;
>although obviously the dm6446 wouldn't need an asp_num, etc.
>
>- dave





More information about the Alsa-devel mailing list