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

Commit d11536e4 authored by Axel Lin's avatar Axel Lin Committed by Felipe Balbi
Browse files

mfd: Fix usbhs_enable error handling



In the case of missing platform_data we do not hold a spin_lock,
thus we should not call spin_unlock_irqrestore in the error path.

Also simplify the error handling by separating the successful path
from error path. I think this change improves readability.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Tested-by: default avatarSteve Calfee <stevecalfee@gmail.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent cdefce16
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -700,8 +700,7 @@ static int usbhs_enable(struct device *dev)
	dev_dbg(dev, "starting TI HSUSB Controller\n");
	if (!pdata) {
		dev_dbg(dev, "missing platform_data\n");
		ret =  -ENODEV;
		goto end_enable;
		return  -ENODEV;
	}

	spin_lock_irqsave(&omap->lock, flags);
@@ -915,7 +914,8 @@ static int usbhs_enable(struct device *dev)

end_count:
	omap->count++;
	goto end_enable;
	spin_unlock_irqrestore(&omap->lock, flags);
	return 0;

err_tll:
	if (pdata->ehci_data->phy_reset) {
@@ -931,8 +931,6 @@ static int usbhs_enable(struct device *dev)
	clk_disable(omap->usbhost_fs_fck);
	clk_disable(omap->usbhost_hs_fck);
	clk_disable(omap->usbhost_ick);

end_enable:
	spin_unlock_irqrestore(&omap->lock, flags);
	return ret;
}