aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/s3c-hsudc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/s3c-hsudc.c')
-rw-r--r--drivers/usb/gadget/s3c-hsudc.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index d5e3e1e5862..3fa717c5f4b 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1133,7 +1133,7 @@ static irqreturn_t s3c_hsudc_irq(int irq, void *_dev)
1133 return IRQ_HANDLED; 1133 return IRQ_HANDLED;
1134} 1134}
1135 1135
1136int usb_gadget_probe_driver(struct usb_gadget_driver *driver, 1136static int s3c_hsudc_start(struct usb_gadget_driver *driver,
1137 int (*bind)(struct usb_gadget *)) 1137 int (*bind)(struct usb_gadget *))
1138{ 1138{
1139 struct s3c_hsudc *hsudc = the_controller; 1139 struct s3c_hsudc *hsudc = the_controller;
@@ -1181,9 +1181,8 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
1181 1181
1182 return 0; 1182 return 0;
1183} 1183}
1184EXPORT_SYMBOL(usb_gadget_probe_driver);
1185 1184
1186int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) 1185static int s3c_hsudc_stop(struct usb_gadget_driver *driver)
1187{ 1186{
1188 struct s3c_hsudc *hsudc = the_controller; 1187 struct s3c_hsudc *hsudc = the_controller;
1189 unsigned long flags; 1188 unsigned long flags;
@@ -1210,7 +1209,6 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
1210 driver->driver.name); 1209 driver->driver.name);
1211 return 0; 1210 return 0;
1212} 1211}
1213EXPORT_SYMBOL(usb_gadget_unregister_driver);
1214 1212
1215static inline u32 s3c_hsudc_read_frameno(struct s3c_hsudc *hsudc) 1213static inline u32 s3c_hsudc_read_frameno(struct s3c_hsudc *hsudc)
1216{ 1214{
@@ -1224,6 +1222,8 @@ static int s3c_hsudc_gadget_getframe(struct usb_gadget *gadget)
1224 1222
1225static struct usb_gadget_ops s3c_hsudc_gadget_ops = { 1223static struct usb_gadget_ops s3c_hsudc_gadget_ops = {
1226 .get_frame = s3c_hsudc_gadget_getframe, 1224 .get_frame = s3c_hsudc_gadget_getframe,
1225 .start = s3c_hsudc_start,
1226 .stop = s3c_hsudc_stop,
1227}; 1227};
1228 1228
1229static int s3c_hsudc_probe(struct platform_device *pdev) 1229static int s3c_hsudc_probe(struct platform_device *pdev)
@@ -1311,7 +1311,15 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
1311 1311
1312 disable_irq(hsudc->irq); 1312 disable_irq(hsudc->irq);
1313 local_irq_enable(); 1313 local_irq_enable();
1314
1315 ret = usb_add_gadget_udc(&pdev->dev, &hsudc->gadget);
1316 if (ret)
1317 goto err_add_udc;
1318
1314 return 0; 1319 return 0;
1320err_add_udc:
1321 clk_disable(hsudc->uclk);
1322 clk_put(hsudc->uclk);
1315err_clk: 1323err_clk:
1316 free_irq(hsudc->irq, hsudc); 1324 free_irq(hsudc->irq, hsudc);
1317err_irq: 1325err_irq:
@@ -1333,6 +1341,7 @@ static struct platform_driver s3c_hsudc_driver = {
1333 }, 1341 },
1334 .probe = s3c_hsudc_probe, 1342 .probe = s3c_hsudc_probe,
1335}; 1343};
1344MODULE_ALIAS("platform:s3c-hsudc");
1336 1345
1337static int __init s3c_hsudc_modinit(void) 1346static int __init s3c_hsudc_modinit(void)
1338{ 1347{