diff options
Diffstat (limited to 'drivers/usb/host/xhci-plat.c')
-rw-r--r-- | drivers/usb/host/xhci-plat.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 2ef716fc3212..3829e1be0383 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -188,11 +188,10 @@ EXPORT_SYMBOL_GPL(xhci_plat_register_vendor_ops); static int xhci_vendor_init(struct xhci_hcd *xhci) { - struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci); - struct xhci_plat_priv *priv = xhci_to_priv(xhci); + struct xhci_vendor_ops *ops = NULL; if (xhci_plat_vendor_overwrite.vendor_ops) - ops = priv->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops; + ops = xhci->vendor_ops = xhci_plat_vendor_overwrite.vendor_ops; if (ops && ops->vendor_init) return ops->vendor_init(xhci); @@ -202,12 +201,11 @@ static int xhci_vendor_init(struct xhci_hcd *xhci) static void xhci_vendor_cleanup(struct xhci_hcd *xhci) { struct xhci_vendor_ops *ops = xhci_vendor_get_ops(xhci); - struct xhci_plat_priv *priv = xhci_to_priv(xhci); if (ops && ops->vendor_cleanup) ops->vendor_cleanup(xhci); - priv->vendor_ops = NULL; + xhci->vendor_ops = NULL; } static int xhci_plat_probe(struct platform_device *pdev) @@ -436,8 +434,8 @@ static int xhci_plat_remove(struct platform_device *dev) struct clk *reg_clk = xhci->reg_clk; struct usb_hcd *shared_hcd = xhci->shared_hcd; - pm_runtime_get_sync(&dev->dev); xhci->xhc_state |= XHCI_STATE_REMOVING; + pm_runtime_get_sync(&dev->dev); if (shared_hcd) { usb_remove_hcd(shared_hcd); @@ -453,7 +451,6 @@ static int xhci_plat_remove(struct platform_device *dev) xhci_vendor_cleanup(xhci); - usb_put_hcd(shared_hcd); clk_disable_unprepare(clk); clk_disable_unprepare(reg_clk); usb_put_hcd(hcd); |