diff options
Diffstat (limited to 'drivers/usb/gadget/s3c-hsudc.c')
-rw-r--r-- | drivers/usb/gadget/s3c-hsudc.c | 17 |
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 | ||
1136 | int usb_gadget_probe_driver(struct usb_gadget_driver *driver, | 1136 | static 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 | } |
1184 | EXPORT_SYMBOL(usb_gadget_probe_driver); | ||
1185 | 1184 | ||
1186 | int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | 1185 | static 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 | } |
1213 | EXPORT_SYMBOL(usb_gadget_unregister_driver); | ||
1214 | 1212 | ||
1215 | static inline u32 s3c_hsudc_read_frameno(struct s3c_hsudc *hsudc) | 1213 | static 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 | ||
1225 | static struct usb_gadget_ops s3c_hsudc_gadget_ops = { | 1223 | static 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 | ||
1229 | static int s3c_hsudc_probe(struct platform_device *pdev) | 1229 | static 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; |
1320 | err_add_udc: | ||
1321 | clk_disable(hsudc->uclk); | ||
1322 | clk_put(hsudc->uclk); | ||
1315 | err_clk: | 1323 | err_clk: |
1316 | free_irq(hsudc->irq, hsudc); | 1324 | free_irq(hsudc->irq, hsudc); |
1317 | err_irq: | 1325 | err_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 | }; |
1344 | MODULE_ALIAS("platform:s3c-hsudc"); | ||
1336 | 1345 | ||
1337 | static int __init s3c_hsudc_modinit(void) | 1346 | static int __init s3c_hsudc_modinit(void) |
1338 | { | 1347 | { |