Loading arch/arm/mach-pxa/ssp.c +15 −58 Original line number Original line Diff line number Diff line Loading @@ -342,8 +342,9 @@ void ssp_free(struct ssp_device *ssp) } } EXPORT_SYMBOL(ssp_free); EXPORT_SYMBOL(ssp_free); static int __devinit ssp_probe(struct platform_device *pdev, int type) static int __devinit ssp_probe(struct platform_device *pdev) { { const struct platform_device_id *id = platform_get_device_id(pdev); struct resource *res; struct resource *res; struct ssp_device *ssp; struct ssp_device *ssp; int ret = 0; int ret = 0; Loading Loading @@ -413,7 +414,7 @@ static int __devinit ssp_probe(struct platform_device *pdev, int type) */ */ ssp->port_id = pdev->id + 1; ssp->port_id = pdev->id + 1; ssp->use_count = 0; ssp->use_count = 0; ssp->type = type; ssp->type = (int)id->driver_data; mutex_lock(&ssp_lock); mutex_lock(&ssp_lock); list_add(&ssp->node, &ssp_list); list_add(&ssp->node, &ssp_list); Loading Loading @@ -457,75 +458,31 @@ static int __devexit ssp_remove(struct platform_device *pdev) return 0; return 0; } } static int __devinit pxa25x_ssp_probe(struct platform_device *pdev) static const struct platform_device_id ssp_id_table[] = { { { "pxa25x-ssp", PXA25x_SSP }, return ssp_probe(pdev, PXA25x_SSP); { "pxa25x-nssp", PXA25x_NSSP }, } { "pxa27x-ssp", PXA27x_SSP }, { }, static int __devinit pxa25x_nssp_probe(struct platform_device *pdev) { return ssp_probe(pdev, PXA25x_NSSP); } static int __devinit pxa27x_ssp_probe(struct platform_device *pdev) { return ssp_probe(pdev, PXA27x_SSP); } static struct platform_driver pxa25x_ssp_driver = { .driver = { .name = "pxa25x-ssp", }, .probe = pxa25x_ssp_probe, .remove = __devexit_p(ssp_remove), }; }; static struct platform_driver pxa25x_nssp_driver = { static struct platform_driver ssp_driver = { .driver = { .probe = ssp_probe, .name = "pxa25x-nssp", }, .probe = pxa25x_nssp_probe, .remove = __devexit_p(ssp_remove), .remove = __devexit_p(ssp_remove), }; static struct platform_driver pxa27x_ssp_driver = { .driver = { .driver = { .name = "pxa27x-ssp", .owner = THIS_MODULE, .name = "pxa2xx-ssp", }, }, .probe = pxa27x_ssp_probe, .id_table = ssp_id_table, .remove = __devexit_p(ssp_remove), }; }; static int __init pxa_ssp_init(void) static int __init pxa_ssp_init(void) { { int ret = 0; return platform_driver_register(&ssp_driver); ret = platform_driver_register(&pxa25x_ssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa25x_ssp_driver"); return ret; } ret = platform_driver_register(&pxa25x_nssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa25x_nssp_driver"); return ret; } ret = platform_driver_register(&pxa27x_ssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa27x_ssp_driver"); return ret; } return ret; } } static void __exit pxa_ssp_exit(void) static void __exit pxa_ssp_exit(void) { { platform_driver_unregister(&pxa25x_ssp_driver); platform_driver_unregister(&ssp_driver); platform_driver_unregister(&pxa25x_nssp_driver); platform_driver_unregister(&pxa27x_ssp_driver); } } arch_initcall(pxa_ssp_init); arch_initcall(pxa_ssp_init); Loading Loading
arch/arm/mach-pxa/ssp.c +15 −58 Original line number Original line Diff line number Diff line Loading @@ -342,8 +342,9 @@ void ssp_free(struct ssp_device *ssp) } } EXPORT_SYMBOL(ssp_free); EXPORT_SYMBOL(ssp_free); static int __devinit ssp_probe(struct platform_device *pdev, int type) static int __devinit ssp_probe(struct platform_device *pdev) { { const struct platform_device_id *id = platform_get_device_id(pdev); struct resource *res; struct resource *res; struct ssp_device *ssp; struct ssp_device *ssp; int ret = 0; int ret = 0; Loading Loading @@ -413,7 +414,7 @@ static int __devinit ssp_probe(struct platform_device *pdev, int type) */ */ ssp->port_id = pdev->id + 1; ssp->port_id = pdev->id + 1; ssp->use_count = 0; ssp->use_count = 0; ssp->type = type; ssp->type = (int)id->driver_data; mutex_lock(&ssp_lock); mutex_lock(&ssp_lock); list_add(&ssp->node, &ssp_list); list_add(&ssp->node, &ssp_list); Loading Loading @@ -457,75 +458,31 @@ static int __devexit ssp_remove(struct platform_device *pdev) return 0; return 0; } } static int __devinit pxa25x_ssp_probe(struct platform_device *pdev) static const struct platform_device_id ssp_id_table[] = { { { "pxa25x-ssp", PXA25x_SSP }, return ssp_probe(pdev, PXA25x_SSP); { "pxa25x-nssp", PXA25x_NSSP }, } { "pxa27x-ssp", PXA27x_SSP }, { }, static int __devinit pxa25x_nssp_probe(struct platform_device *pdev) { return ssp_probe(pdev, PXA25x_NSSP); } static int __devinit pxa27x_ssp_probe(struct platform_device *pdev) { return ssp_probe(pdev, PXA27x_SSP); } static struct platform_driver pxa25x_ssp_driver = { .driver = { .name = "pxa25x-ssp", }, .probe = pxa25x_ssp_probe, .remove = __devexit_p(ssp_remove), }; }; static struct platform_driver pxa25x_nssp_driver = { static struct platform_driver ssp_driver = { .driver = { .probe = ssp_probe, .name = "pxa25x-nssp", }, .probe = pxa25x_nssp_probe, .remove = __devexit_p(ssp_remove), .remove = __devexit_p(ssp_remove), }; static struct platform_driver pxa27x_ssp_driver = { .driver = { .driver = { .name = "pxa27x-ssp", .owner = THIS_MODULE, .name = "pxa2xx-ssp", }, }, .probe = pxa27x_ssp_probe, .id_table = ssp_id_table, .remove = __devexit_p(ssp_remove), }; }; static int __init pxa_ssp_init(void) static int __init pxa_ssp_init(void) { { int ret = 0; return platform_driver_register(&ssp_driver); ret = platform_driver_register(&pxa25x_ssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa25x_ssp_driver"); return ret; } ret = platform_driver_register(&pxa25x_nssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa25x_nssp_driver"); return ret; } ret = platform_driver_register(&pxa27x_ssp_driver); if (ret) { printk(KERN_ERR "failed to register pxa27x_ssp_driver"); return ret; } return ret; } } static void __exit pxa_ssp_exit(void) static void __exit pxa_ssp_exit(void) { { platform_driver_unregister(&pxa25x_ssp_driver); platform_driver_unregister(&ssp_driver); platform_driver_unregister(&pxa25x_nssp_driver); platform_driver_unregister(&pxa27x_ssp_driver); } } arch_initcall(pxa_ssp_init); arch_initcall(pxa_ssp_init); Loading