Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: dwc3: xilinx: improve error handling for PM APIs

Improve error handling for PM APIs in the dwc3_xlnx_probe function by
introducing devm_pm_runtime_enable and error label. Removed unnecessary
API pm_runtime_disable call in dwc3_xlnx_remove.

Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Link: https://lore.kernel.org/r/1700590878-124335-1-git-send-email-radhey.shyam.pandey@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Piyush Mehta and committed by
Greg Kroah-Hartman
53b5ff83 51920207

+8 -5
+8 -5
drivers/usb/dwc3/dwc3-xilinx.c
··· 293 293 goto err_clk_put; 294 294 295 295 pm_runtime_set_active(dev); 296 - pm_runtime_enable(dev); 297 - pm_suspend_ignore_children(dev, false); 298 - pm_runtime_get_sync(dev); 296 + ret = devm_pm_runtime_enable(dev); 297 + if (ret < 0) 298 + goto err_pm_set_suspended; 299 299 300 - return 0; 300 + pm_suspend_ignore_children(dev, false); 301 + return pm_runtime_resume_and_get(dev); 302 + 303 + err_pm_set_suspended: 304 + pm_runtime_set_suspended(dev); 301 305 302 306 err_clk_put: 303 307 clk_bulk_disable_unprepare(priv_data->num_clocks, priv_data->clks); ··· 319 315 clk_bulk_disable_unprepare(priv_data->num_clocks, priv_data->clks); 320 316 priv_data->num_clocks = 0; 321 317 322 - pm_runtime_disable(dev); 323 318 pm_runtime_put_noidle(dev); 324 319 pm_runtime_set_suspended(dev); 325 320 }