|
@@ -77,9 +77,25 @@ static int ehci_ci_portpower(struct usb_hcd *hcd, int portnum, bool enable)
|
|
|
return 0;
|
|
|
};
|
|
|
|
|
|
+static int ehci_ci_reset(struct usb_hcd *hcd)
|
|
|
+{
|
|
|
+ struct device *dev = hcd->self.controller;
|
|
|
+ struct ci_hdrc *ci = dev_get_drvdata(dev);
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = ehci_setup(hcd);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ ci_platform_configure(ci);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static const struct ehci_driver_overrides ehci_ci_overrides = {
|
|
|
.extra_priv_size = sizeof(struct ehci_ci_priv),
|
|
|
.port_power = ehci_ci_portpower,
|
|
|
+ .reset = ehci_ci_reset,
|
|
|
};
|
|
|
|
|
|
static irqreturn_t host_irq(struct ci_hdrc *ci)
|
|
@@ -151,8 +167,6 @@ static int host_start(struct ci_hdrc *ci)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- ci_platform_configure(ci);
|
|
|
-
|
|
|
return ret;
|
|
|
|
|
|
disable_reg:
|