On Tue, Jun 28, 2011 at 12:55:50PM -0700, Greg KH wrote: > On Tue, Jun 28, 2011 at 04:34:00PM +0300, Felipe Balbi wrote: > > From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > > > > This also fixes the error path: If the second device fails to register > > we never remove the first one. > > This is compile-tested only. I don't see any difference between those > > two. Maybe we should just use one name instead? > > > > Cc: Ben Dooks <ben-linux@xxxxxxxxx> > > Cc: Kukjin Kim <kgene.kim@xxxxxxxxxxx> > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > > --- > > drivers/usb/gadget/s3c2410_udc.c | 29 +++++++++-------------------- > > 1 files changed, 9 insertions(+), 20 deletions(-) > > > > diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c > > index 1c19cd3..394c1a3 100644 > > --- a/drivers/usb/gadget/s3c2410_udc.c > > +++ b/drivers/usb/gadget/s3c2410_udc.c > > @@ -2057,26 +2057,22 @@ static int s3c2410_udc_resume(struct platform_device *pdev) > > #define s3c2410_udc_resume NULL > > #endif > > > > -static struct platform_driver udc_driver_2410 = { > > - .driver = { > > - .name = "s3c2410-usbgadget", > > - .owner = THIS_MODULE, > > - }, > > - .probe = s3c2410_udc_probe, > > - .remove = s3c2410_udc_remove, > > - .suspend = s3c2410_udc_suspend, > > - .resume = s3c2410_udc_resume, > > +static const struct platform_device_id s3c_udc_ids[] = { > > + { "s3c2410-usbgadget", }, > > + { "s3c2440-usbgadget", }, > > }; > > +MODULE_DEVICE_TABLE(platform, s3c_udc_ids); > > > > -static struct platform_driver udc_driver_2440 = { > > +static struct platform_driver udc_driver_24x0 = { > > .driver = { > > - .name = "s3c2440-usbgadget", > > + .name = "s3c24x0-usbgadget", > > .owner = THIS_MODULE, > > }, > > .probe = s3c2410_udc_probe, > > .remove = s3c2410_udc_remove, > > .suspend = s3c2410_udc_suspend, > > .resume = s3c2410_udc_resume, > > + .id_table = s3c_udc_ids, > > }; > > > > static int __init udc_init(void) > > @@ -2092,11 +2088,7 @@ static int __init udc_init(void) > > s3c2410_udc_debugfs_root = NULL; > > } > > > > - retval = platform_driver_register(&udc_driver_2410); > > - if (retval) > > - goto err; > > - > > - retval = platform_driver_register(&udc_driver_2440); > > + retval = platform_driver_register(&udc_driver_24x0); > > if (retval) > > goto err; > > > > @@ -2109,8 +2101,7 @@ err: > > > > static void __exit udc_exit(void) > > { > > - platform_driver_unregister(&udc_driver_2410); > > - platform_driver_unregister(&udc_driver_2440); > > + platform_driver_unregister(&udc_driver_24x0); > > debugfs_remove(s3c2410_udc_debugfs_root); > > } > > > > @@ -2121,5 +2112,3 @@ MODULE_AUTHOR(DRIVER_AUTHOR); > > MODULE_DESCRIPTION(DRIVER_DESC); > > MODULE_VERSION(DRIVER_VERSION); > > MODULE_LICENSE("GPL"); > > -MODULE_ALIAS("platform:s3c2410-usbgadget"); > > -MODULE_ALIAS("platform:s3c2440-usbgadget"); > > You just dropped the alias here, doesn't that break things? I think modutils is smart enough to work out how to find them from the device id table. > thanks, > > greg k-h -- Ben Dooks, ben@xxxxxxxxx, http://www.fluff.org/ben/ Large Hadron Colada: A large Pina Colada that makes the universe disappear. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html