usb: gadget: replace usb_gadget::is_dualspeed with max_speed
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / usb / renesas_usbhs / mod_gadget.c
index f4b032e..43c67e5 100644 (file)
@@ -681,9 +681,7 @@ static int usbhsg_try_start(struct usbhs_priv *priv, u32 status)
         * - function
         * - usb module
         */
-       usbhs_sys_hispeed_ctrl(priv, 1);
        usbhs_sys_function_ctrl(priv, 1);
-       usbhs_sys_usb_ctrl(priv, 1);
 
        /*
         * enable irq callback
@@ -731,9 +729,7 @@ static int usbhsg_try_stop(struct usbhs_priv *priv, u32 status)
        gpriv->gadget.speed = USB_SPEED_UNKNOWN;
 
        /* disable sys */
-       usbhs_sys_hispeed_ctrl(priv, 0);
        usbhs_sys_function_ctrl(priv, 0);
-       usbhs_sys_usb_ctrl(priv, 0);
 
        usbhsg_pipe_disable(dcp);
 
@@ -755,7 +751,7 @@ static int usbhsg_gadget_start(struct usb_gadget *gadget,
 
        if (!driver             ||
            !driver->setup      ||
-           driver->speed != USB_SPEED_HIGH)
+           driver->speed < USB_SPEED_FULL)
                return -EINVAL;
 
        /* first hook up the driver ... */
@@ -776,6 +772,7 @@ static int usbhsg_gadget_stop(struct usb_gadget *gadget,
                return -EINVAL;
 
        usbhsg_try_stop(priv, USBHSG_STATUS_REGISTERD);
+       gpriv->gadget.dev.driver = NULL;
        gpriv->driver = NULL;
 
        return 0;
@@ -865,7 +862,7 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
        gpriv->gadget.dev.parent        = dev;
        gpriv->gadget.name              = "renesas_usbhs_udc";
        gpriv->gadget.ops               = &usbhsg_gadget_ops;
-       gpriv->gadget.is_dualspeed      = 1;
+       gpriv->gadget.max_speed         = USB_SPEED_HIGH;
        ret = device_register(&gpriv->gadget.dev);
        if (ret < 0)
                goto err_add_udc;