From cdff9a65d90e24ed7e253026863a143c178b4d32 Mon Sep 17 00:00:00 2001 From: William Wu Date: Mon, 4 Nov 2019 09:39:46 +0800 Subject: [PATCH] usb: dwc3: rockchip-inno: rework the disconnect workflow This patch doesn't fix any issue but make the code more concise. Change-Id: I56d9d0e5f13579d2087edc41ca83bdb00e1ebb3f Signed-off-by: William Wu --- drivers/usb/dwc3/dwc3-rockchip-inno.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-rockchip-inno.c b/drivers/usb/dwc3/dwc3-rockchip-inno.c index 3bc69e87658c..2a898f3440af 100644 --- a/drivers/usb/dwc3/dwc3-rockchip-inno.c +++ b/drivers/usb/dwc3/dwc3-rockchip-inno.c @@ -258,16 +258,12 @@ static void u3phy_disconnect_det_work(struct work_struct *work) struct dwc3_rockchip *rockchip = container_of(work, struct dwc3_rockchip, u3_work); struct usb_hcd *hcd = dev_get_drvdata(&rockchip->dwc->xhci->dev); - struct usb_hcd *shared_hcd = hcd->shared_hcd; - struct xhci_hcd *xhci = hcd_to_xhci(hcd); u32 count = 0; mutex_lock(&rockchip->lock); - if (hcd->state != HC_STATE_HALT) { - usb_remove_hcd(shared_hcd); - usb_remove_hcd(hcd); - } + if (hcd->state != HC_STATE_HALT) + dwc3_host_exit(rockchip->dwc); if (rockchip->phy) usb_phy_shutdown(rockchip->phy); @@ -281,11 +277,8 @@ static void u3phy_disconnect_det_work(struct work_struct *work) usleep_range(1000, 1100); } - if (hcd->state == HC_STATE_HALT) { - xhci->shared_hcd = shared_hcd; - usb_add_hcd(hcd, hcd->irq, IRQF_SHARED); - usb_add_hcd(shared_hcd, hcd->irq, IRQF_SHARED); - } + if (hcd->state == HC_STATE_HALT) + dwc3_host_init(rockchip->dwc); if (rockchip->phy) usb_phy_init(rockchip->phy);