phy: rockchip-inno-usb2: don't cancel chg_work if otg in host mode
authorWu Liang feng <wulf@rock-chips.com>
Tue, 13 Sep 2016 01:40:27 +0000 (09:40 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 13 Sep 2016 12:32:40 +0000 (20:32 +0800)
Because chg_work is used for charge detection, so if OTG works in
Host mode, we don't need to initialize chg_work, and aslo we don't
need to cancel it when phy exit.

Change-Id: I19cbede5aeb4c1f7f8faa32f195fffb0fc71eca9
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
drivers/phy/phy-rockchip-inno-usb2.c

index 011748235b2e69ab105b47f33d04bd05e5f553ec..f19bfe9525a64d593c258e3fb5c9332ca6caf30d 100644 (file)
@@ -499,9 +499,10 @@ static int rockchip_usb2phy_exit(struct phy *phy)
 {
        struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy);
 
-       if (rport->port_id == USB2PHY_PORT_OTG) {
+       if (rport->port_id == USB2PHY_PORT_OTG &&
+           rport->mode != USB_DR_MODE_HOST)
                cancel_delayed_work_sync(&rport->chg_work);
-       else if (rport->port_id == USB2PHY_PORT_HOST)
+       else if (rport->port_id == USB2PHY_PORT_HOST)
                cancel_delayed_work_sync(&rport->sm_work);
 
        return 0;