On Tue, Jun 28, 2011 at 10:24:13PM +0100, Ben Dooks wrote: > 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. Doh, you are right, sorry, I missed that part above in the patch. greg k-h -- 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