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

Commit 333fbe84 authored by Fabio Estevam's avatar Fabio Estevam Committed by Dmitry Torokhov
Browse files

Input: imx_keypad - check error returned by clk_prepare_enable()



Check error returned by clk_prepare_enable().

Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent a40ec72d
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -384,14 +384,18 @@ static void imx_keypad_close(struct input_dev *dev)
static int imx_keypad_open(struct input_dev *dev)
{
	struct imx_keypad *keypad = input_get_drvdata(dev);
	int error;

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

	/* Enable the kpp clock */
	error = clk_prepare_enable(keypad->clk);
	if (error)
		return error;

	/* We became active from now */
	keypad->enabled = true;

	/* Enable the kpp clock */
	clk_prepare_enable(keypad->clk);
	imx_keypad_config(keypad);

	/* Sanity control, not all the rows must be actived now. */
@@ -596,18 +600,23 @@ static int imx_kbd_resume(struct device *dev)
	struct platform_device *pdev = to_platform_device(dev);
	struct imx_keypad *kbd = platform_get_drvdata(pdev);
	struct input_dev *input_dev = kbd->input_dev;
	int ret = 0;

	if (device_may_wakeup(&pdev->dev))
		disable_irq_wake(kbd->irq);

	mutex_lock(&input_dev->mutex);

	if (input_dev->users)
		clk_prepare_enable(kbd->clk);
	if (input_dev->users) {
		ret = clk_prepare_enable(kbd->clk);
		if (ret)
			goto err_clk;
	}

err_clk:
	mutex_unlock(&input_dev->mutex);

	return 0;
	return ret;
}
#endif