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