Skip to content

Commit e6d3856

Browse files
ArvindYadavCsFelipe Balbi
authored andcommitted
usb: mtu3: Handle return value of clk_prepare_enable
clk_prepare_enable() can fail here and we must check its return value. Signed-off-by: Arvind Yadav <[email protected]> Signed-off-by: Felipe Balbi <[email protected]>
1 parent 958d1a4 commit e6d3856

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

drivers/usb/mtu3/mtu3_plat.c

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,19 +458,36 @@ static int __maybe_unused mtu3_resume(struct device *dev)
458458
{
459459
struct platform_device *pdev = to_platform_device(dev);
460460
struct ssusb_mtk *ssusb = platform_get_drvdata(pdev);
461+
int ret;
461462

462463
dev_dbg(dev, "%s\n", __func__);
463464

464465
if (!ssusb->is_host)
465466
return 0;
466467

467468
ssusb_wakeup_disable(ssusb);
468-
clk_prepare_enable(ssusb->sys_clk);
469-
clk_prepare_enable(ssusb->ref_clk);
470-
ssusb_phy_power_on(ssusb);
469+
ret = clk_prepare_enable(ssusb->sys_clk);
470+
if (ret)
471+
goto err_sys_clk;
472+
473+
ret = clk_prepare_enable(ssusb->ref_clk);
474+
if (ret)
475+
goto err_ref_clk;
476+
477+
ret = ssusb_phy_power_on(ssusb);
478+
if (ret)
479+
goto err_power_on;
480+
471481
ssusb_host_enable(ssusb);
472482

473483
return 0;
484+
485+
err_power_on:
486+
clk_disable_unprepare(ssusb->ref_clk);
487+
err_ref_clk:
488+
clk_disable_unprepare(ssusb->sys_clk);
489+
err_sys_clk:
490+
return ret;
474491
}
475492

476493
static const struct dev_pm_ops mtu3_pm_ops = {

0 commit comments

Comments
 (0)