Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6d38569 authored by Arvind Yadav's avatar Arvind Yadav Committed by Felipe Balbi
Browse files

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: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 958d1a4c
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -458,6 +458,7 @@ static int __maybe_unused mtu3_resume(struct device *dev)
{
	struct platform_device *pdev = to_platform_device(dev);
	struct ssusb_mtk *ssusb = platform_get_drvdata(pdev);
	int ret;

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

@@ -465,12 +466,28 @@ static int __maybe_unused mtu3_resume(struct device *dev)
		return 0;

	ssusb_wakeup_disable(ssusb);
	clk_prepare_enable(ssusb->sys_clk);
	clk_prepare_enable(ssusb->ref_clk);
	ssusb_phy_power_on(ssusb);
	ret = clk_prepare_enable(ssusb->sys_clk);
	if (ret)
		goto err_sys_clk;

	ret = clk_prepare_enable(ssusb->ref_clk);
	if (ret)
		goto err_ref_clk;

	ret = ssusb_phy_power_on(ssusb);
	if (ret)
		goto err_power_on;

	ssusb_host_enable(ssusb);

	return 0;

err_power_on:
	clk_disable_unprepare(ssusb->ref_clk);
err_ref_clk:
	clk_disable_unprepare(ssusb->sys_clk);
err_sys_clk:
	return ret;
}

static const struct dev_pm_ops mtu3_pm_ops = {