[alsa-devel] New SoC layer codec registration problem

Victor Rodriguez vm.rod25 at gmail.com
Thu Oct 28 16:07:01 CEST 2010


On Thu, Oct 28, 2010 at 4:12 AM, Alexander <subaparts at yandex.ru> wrote:
> I'm trying to implement new SoC codec in linux-next-20101025 kernel.
>
> Part of the code:
> ---
> #if defined(CONFIG_SPI_MASTER)
> static int __devinit cs4271_spi_probe(struct spi_device *spi)
> {
>        struct cs4271_private *cs4271;
>        int ret;
>
>        cs4271 = kzalloc(sizeof *cs4271, GFP_KERNEL);
>        if (!cs4271)
>                return -ENOMEM;
>
>        spi_set_drvdata(spi, cs4271);
>        cs4271->control_data = spi;
>        cs4271->bus_type = SND_SOC_SPI;
>
>        ret = snd_soc_register_codec(&spi->dev, &soc_codec_dev_cs4271,
>                                     &cs4271_dai, 1);

Sorry for this maybe I am wrong but shouldn't this bee with {}
>        if (ret < 0) {
>                kfree(cs4271);
>                return ret;
          }
Thanks

Victor Rodriguez

> }
>
> static int __devexit cs4271_spi_remove(struct spi_device *spi)
> {
>        snd_soc_unregister_codec(&spi->dev);
>        kfree(spi_get_drvdata(spi));
>        return 0;
> }
>
> static struct spi_driver cs4271_spi_driver = {
>        .driver = {
>                .name   = "cs4271-codec",
>                .owner  = THIS_MODULE,
>        },
>        .probe          = cs4271_spi_probe,
>        .remove         = __devexit_p(cs4271_spi_remove),
> };
> #endif /* defined(CONFIG_SPI_MASTER) */
> ---
>
> So, codec name I expect is "cs4271-codec", but codec registered with
> name "spi0.0"
>
> Here is boot log:
> ---
> Jan  1 00:00:04 miniCio user.debug kernel: cs4271-codec spi0.0: codec
> register spi0.0
> Jan  1 00:00:04 miniCio user.debug kernel: cs4271-codec spi0.0: dai
> register spi0.0 #1
> Jan  1 00:00:04 miniCio user.debug kernel: Registered DAI 'cs4271-hifi'
> Jan  1 00:00:04 miniCio user.debug kernel: Registered codec 'spi0.0'
> Jan  1 00:00:04 miniCio user.info kernel: Codec driver for CS4271
> registered
> Jan  1 00:00:04 miniCio user.debug kernel: ep93xx-pcm-audio
> ep93xx-pcm-audio: platform register ep93xx-pcm-audio
> Jan  1 00:00:04 miniCio user.debug kernel: Registered platform
> 'ep93xx-pcm-audio'
> Jan  1 00:00:04 miniCio user.debug kernel: ep93xx-i2s ep93xx-i2s: dai
> register ep93xx-i2s
> Jan  1 00:00:04 miniCio user.debug kernel: Registered DAI 'ep93xx-i2s'
> Jan  1 00:00:04 miniCio user.debug kernel: soc-audio soc-audio: binding
> CS4271 at idx 0
> Jan  1 00:00:04 miniCio user.debug kernel: soc-audio soc-audio: CODEC
> cs4271-codec not registered
> Jan  1 00:00:04 miniCio user.debug kernel: soc-audio soc-audio:
> Registered card 'EDB93XX'
> Jan  1 00:00:04 miniCio user.info kernel: EDB93xx Machine ALSA Driver
> Jan  1 00:00:04 miniCio user.info kernel: ALSA device list:
> Jan  1 00:00:04 miniCio user.info kernel:   No soundcards found.
> ---
>
> What am I doing wrong?
>
> Alexander.
>
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>


More information about the Alsa-devel mailing list