Hi,

I had faced the same issue with pxa2xx-ac97 driver, just 3-4 months
before. My working was with kernel version 2.6.29 & Marvell's PXA270.
My problem was solved when i disabled the inclusion of the sound/soc/
pxa/pxa2xx-ac97.c driver, in menuconfig itself. So only the sound/arm/
pxa2xx-ac97.c driver is used in my case, which also communicates with
the sound/pci/ac97/ac97_codec.c to perform my codec related
operations. I encountered this solution by chance & it is fine with me
for playing audio & audio call in android. We need to take care of
unmute & volume operation, in android HAL or in driver.

Initially i followed the alsa standard and wrote a machine driver,
which maps the platform driver & codec driver. But in the working copy
i had to disable the machine driver too, bcoz it was mapped to the
sound/soc/pxa/pxa2xx-ac97.c driver.

But my doubt in first place is, have you checked for modification/
addition to pxa2xx-ac97 driver for PXA3XX platform since you are using
PXA320 & the pxa2xx-ac97 driver. I ask this since i have seen a pxa3xx-
ac97 driver for PXA3XX platform, it was along with Marvell's
Littleton.

Regards,
Stan

On Aug 23, 4:57 am, "Matt K. Jeon" <mattkj...@gmail.com> wrote:
> 2011/8/22 Matt K. Jeon <mattkj...@gmail.com>:
>
> > Hello All,
>
> > I am suffering from enabling "pxa2xx-ac97" driver at kernel version 2.6.35.
> > There are 2 different points of registering platform drivers in
> > different source code;
> > - sound/arm/pxa2xx-ac97.c through pxa2xx_ac97_init()
> > static struct platform_driver pxa2xx_ac97_driver = {
> >        .probe          = pxa2xx_ac97_driver_probe,
> >        .remove         = __devexit_p(pxa2xx_ac97_remove),
> >        .driver         = {
> >                .name   = "pxa2xx-ac97",
> >                .owner  = THIS_MODULE,
> > #ifdef CONFIG_PM
> >                .pm     = &pxa2xx_ac97_pm_ops,
> > #endif
> >        },
> > };
>
> > - sound/soc/pxa/pxa2xx-ac97.c through pxa_ac97_init()
> > static struct platform_driver pxa2xx_ac97_driver = {
> >        .probe          = pxa2xx_ac97_dev_probe,
> >        .remove         = __devexit_p(pxa2xx_ac97_dev_remove),
> >        .driver         = {
> >                .name   = "pxa2xx-ac97",
> >                .owner  = THIS_MODULE,
> >        },
> > };
>
> > those are the same name of functions and the name of each drivers are
> > the same so,
> > when try to register the later driver at platform driver, it complains
> > that a driver is already registered with the same name at
>
> >        other = driver_find(drv->name, drv->bus);
> >        if (other) {
> >                put_driver(other);
> >                printk(KERN_ERR "Error: Driver '%s' is already registered, "
> >                        "aborting...\n", drv->name);
> >                return -EBUSY;
> >        }
>
> > above code compares 2 drivers with each driver's name!!!
>
> > Any idea?
>
> > Of course I had changed the name of one driver to something different
> > and the result is fine but in that case DAI (digital audio interface)
> > couldn't be registered at device (soc ac97), because DAI registering
> > procedure compares the addresses of each drivers not name!!!
>
> > Thanks in advance,
> > Matt

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to