usb: dwc2: add pm runtime support

Adds pm_runtime support for dwc2, so that power domain is
enabled only when there is a transaction going on to help
save power.

Change-Id: I318552774d20eeaed521ff179f99b2551ee24183
Signed-off-by: William Wu <william.wu@rock-chips.com>
This commit is contained in:
William Wu
2018-07-23 09:27:55 +08:00
committed by Tao Huang
parent 85a3a104a2
commit e46fe08c85

View File

@@ -472,6 +472,9 @@ static int dwc2_driver_remove(struct platform_device *dev)
if (hsotg->gadget_enabled)
dwc2_hsotg_remove(hsotg);
pm_runtime_put_sync(hsotg->dev);
pm_runtime_disable(hsotg->dev);
if (hsotg->ll_hw_enabled)
dwc2_lowlevel_hw_disable(hsotg);
@@ -604,6 +607,11 @@ static int dwc2_driver_probe(struct platform_device *dev)
if (retval)
return retval;
pm_runtime_enable(hsotg->dev);
retval = pm_runtime_get_sync(hsotg->dev);
if (retval < 0)
goto error;
retval = dwc2_get_dr_mode(hsotg);
if (retval)
goto error;
@@ -670,6 +678,8 @@ static int dwc2_driver_probe(struct platform_device *dev)
return 0;
error:
pm_runtime_put_sync(hsotg->dev);
pm_runtime_disable(hsotg->dev);
dwc2_lowlevel_hw_disable(hsotg);
return retval;
}