phy: rockchip: rockchip-inno-usb2: flush otg work when exit

The controller will be reinit when suspend and resume in device
mode if not connect to PC. And the U2PHY must be keep in power
on state during the init process. But The 'otg_sm_work' may be
schedule immediately and power off the U2PHY if system suspend
and resume between the delay time of schedule 'otg_sm_work', so
it will result in the error when init controller as below:

dwc2_core_reset() HANG! Soft Reset GRSTCTL=80000001

So flush the otg work in exit function to finish power control
of U2PHY.

Change-Id: I79c4b6a877196abd2f2201b2f984c9ea22e48fec
Signed-off-by: Meng Dongyang <daniel.meng@rock-chips.com>
This commit is contained in:
Meng Dongyang
2018-05-28 10:11:56 +08:00
committed by Tao Huang
parent 6c93daca40
commit f6fac8b68a

View File

@@ -741,6 +741,8 @@ static int rockchip_usb2phy_exit(struct phy *phy)
if (rport->port_id == USB2PHY_PORT_HOST)
cancel_delayed_work_sync(&rport->sm_work);
else if (rport->port_id == USB2PHY_PORT_OTG)
flush_delayed_work(&rport->otg_sm_work);
return 0;
}