aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/renesas_usbhs/mod_gadget.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/renesas_usbhs/mod_gadget.c')
-rw-r--r--drivers/usb/renesas_usbhs/mod_gadget.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index 78fca978b2d0..ed4949faa70d 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -230,7 +230,7 @@ static int usbhsg_recip_handler_std_clear_endpoint(struct usbhs_priv *priv,
230 return 0; 230 return 0;
231} 231}
232 232
233struct usbhsg_recip_handle req_clear_feature = { 233static struct usbhsg_recip_handle req_clear_feature = {
234 .name = "clear feature", 234 .name = "clear feature",
235 .device = usbhsg_recip_handler_std_control_done, 235 .device = usbhsg_recip_handler_std_control_done,
236 .interface = usbhsg_recip_handler_std_control_done, 236 .interface = usbhsg_recip_handler_std_control_done,
@@ -271,7 +271,7 @@ static int usbhsg_recip_handler_std_set_endpoint(struct usbhs_priv *priv,
271 return 0; 271 return 0;
272} 272}
273 273
274struct usbhsg_recip_handle req_set_feature = { 274static struct usbhsg_recip_handle req_set_feature = {
275 .name = "set feature", 275 .name = "set feature",
276 .device = usbhsg_recip_handler_std_set_device, 276 .device = usbhsg_recip_handler_std_set_device,
277 .interface = usbhsg_recip_handler_std_control_done, 277 .interface = usbhsg_recip_handler_std_control_done,
@@ -372,7 +372,7 @@ static int usbhsg_recip_handler_std_get_endpoint(struct usbhs_priv *priv,
372 return 0; 372 return 0;
373} 373}
374 374
375struct usbhsg_recip_handle req_get_status = { 375static struct usbhsg_recip_handle req_get_status = {
376 .name = "get status", 376 .name = "get status",
377 .device = usbhsg_recip_handler_std_get_device, 377 .device = usbhsg_recip_handler_std_get_device,
378 .interface = usbhsg_recip_handler_std_get_interface, 378 .interface = usbhsg_recip_handler_std_get_interface,
@@ -845,7 +845,6 @@ static int usbhsg_gadget_start(struct usb_gadget *gadget,
845 845
846 /* first hook up the driver ... */ 846 /* first hook up the driver ... */
847 gpriv->driver = driver; 847 gpriv->driver = driver;
848 gpriv->gadget.dev.driver = &driver->driver;
849 848
850 return usbhsg_try_start(priv, USBHSG_STATUS_REGISTERD); 849 return usbhsg_try_start(priv, USBHSG_STATUS_REGISTERD);
851} 850}
@@ -861,7 +860,6 @@ static int usbhsg_gadget_stop(struct usb_gadget *gadget,
861 return -EINVAL; 860 return -EINVAL;
862 861
863 usbhsg_try_stop(priv, USBHSG_STATUS_REGISTERD); 862 usbhsg_try_stop(priv, USBHSG_STATUS_REGISTERD);
864 gpriv->gadget.dev.driver = NULL;
865 gpriv->driver = NULL; 863 gpriv->driver = NULL;
866 864
867 return 0; 865 return 0;
@@ -925,11 +923,6 @@ static int usbhsg_stop(struct usbhs_priv *priv)
925 return usbhsg_try_stop(priv, USBHSG_STATUS_STARTED); 923 return usbhsg_try_stop(priv, USBHSG_STATUS_STARTED);
926} 924}
927 925
928static void usbhs_mod_gadget_release(struct device *pdev)
929{
930 /* do nothing */
931}
932
933int usbhs_mod_gadget_probe(struct usbhs_priv *priv) 926int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
934{ 927{
935 struct usbhsg_gpriv *gpriv; 928 struct usbhsg_gpriv *gpriv;
@@ -976,15 +969,10 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
976 /* 969 /*
977 * init gadget 970 * init gadget
978 */ 971 */
979 dev_set_name(&gpriv->gadget.dev, "gadget");
980 gpriv->gadget.dev.parent = dev; 972 gpriv->gadget.dev.parent = dev;
981 gpriv->gadget.dev.release = usbhs_mod_gadget_release;
982 gpriv->gadget.name = "renesas_usbhs_udc"; 973 gpriv->gadget.name = "renesas_usbhs_udc";
983 gpriv->gadget.ops = &usbhsg_gadget_ops; 974 gpriv->gadget.ops = &usbhsg_gadget_ops;
984 gpriv->gadget.max_speed = USB_SPEED_HIGH; 975 gpriv->gadget.max_speed = USB_SPEED_HIGH;
985 ret = device_register(&gpriv->gadget.dev);
986 if (ret < 0)
987 goto err_add_udc;
988 976
989 INIT_LIST_HEAD(&gpriv->gadget.ep_list); 977 INIT_LIST_HEAD(&gpriv->gadget.ep_list);
990 978
@@ -1014,15 +1002,13 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
1014 1002
1015 ret = usb_add_gadget_udc(dev, &gpriv->gadget); 1003 ret = usb_add_gadget_udc(dev, &gpriv->gadget);
1016 if (ret) 1004 if (ret)
1017 goto err_register; 1005 goto err_add_udc;
1018 1006
1019 1007
1020 dev_info(dev, "gadget probed\n"); 1008 dev_info(dev, "gadget probed\n");
1021 1009
1022 return 0; 1010 return 0;
1023 1011
1024err_register:
1025 device_unregister(&gpriv->gadget.dev);
1026err_add_udc: 1012err_add_udc:
1027 kfree(gpriv->uep); 1013 kfree(gpriv->uep);
1028 1014
@@ -1038,8 +1024,6 @@ void usbhs_mod_gadget_remove(struct usbhs_priv *priv)
1038 1024
1039 usb_del_gadget_udc(&gpriv->gadget); 1025 usb_del_gadget_udc(&gpriv->gadget);
1040 1026
1041 device_unregister(&gpriv->gadget.dev);
1042
1043 kfree(gpriv->uep); 1027 kfree(gpriv->uep);
1044 kfree(gpriv); 1028 kfree(gpriv);
1045} 1029}