forked from Minki/linux
usb: dwc2: Add exit clock gating before removing driver
When dwc2 core is in clock gating mode loading driver again causes driver fail. Because in that mode registers are not accessible. Added a flow of exiting clock gating mode to avoid the driver reload failure. Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com> Link: https://lore.kernel.org/r/20210413073731.3C81BA022E@mailhost.synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ef5e0eec47
commit
401411bbc4
@ -326,6 +326,15 @@ static int dwc2_driver_remove(struct platform_device *dev)
|
||||
"exit partial_power_down failed\n");
|
||||
}
|
||||
|
||||
/* Exit clock gating when driver is removed. */
|
||||
if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE &&
|
||||
hsotg->bus_suspended) {
|
||||
if (dwc2_is_device_mode(hsotg))
|
||||
dwc2_gadget_exit_clock_gating(hsotg, 0);
|
||||
else
|
||||
dwc2_host_exit_clock_gating(hsotg, 0);
|
||||
}
|
||||
|
||||
dwc2_debugfs_exit(hsotg);
|
||||
if (hsotg->hcd_enabled)
|
||||
dwc2_hcd_remove(hsotg);
|
||||
|
Loading…
Reference in New Issue
Block a user