diff options
Diffstat (limited to 'drivers/input/keyboard/omap4-keypad.c')
| -rw-r--r-- | drivers/input/keyboard/omap4-keypad.c | 26 | 
1 files changed, 11 insertions, 15 deletions
| diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c index 8a7ce41b8c56..ee9d04a3f0d5 100644 --- a/drivers/input/keyboard/omap4-keypad.c +++ b/drivers/input/keyboard/omap4-keypad.c @@ -179,11 +179,9 @@ static irqreturn_t omap4_keypad_irq_thread_fn(int irq, void *dev_id)  	int error;  	u64 keys; -	error = pm_runtime_get_sync(dev); -	if (error < 0) { -		pm_runtime_put_noidle(dev); +	error = pm_runtime_resume_and_get(dev); +	if (error)  		return IRQ_NONE; -	}  	low = kbd_readl(keypad_data, OMAP4_KBD_FULLCODE31_0);  	high = kbd_readl(keypad_data, OMAP4_KBD_FULLCODE63_32); @@ -207,11 +205,9 @@ static int omap4_keypad_open(struct input_dev *input)  	struct device *dev = input->dev.parent;  	int error; -	error = pm_runtime_get_sync(dev); -	if (error < 0) { -		pm_runtime_put_noidle(dev); +	error = pm_runtime_resume_and_get(dev); +	if (error)  		return error; -	}  	disable_irq(keypad_data->irq); @@ -254,9 +250,10 @@ static void omap4_keypad_close(struct input_dev *input)  	struct device *dev = input->dev.parent;  	int error; -	error = pm_runtime_get_sync(dev); -	if (error < 0) -		pm_runtime_put_noidle(dev); +	error = pm_runtime_resume_and_get(dev); +	if (error) +		dev_err(dev, "%s: pm_runtime_resume_and_get() failed: %d\n", +			__func__, error);  	disable_irq(keypad_data->irq);  	omap4_keypad_stop(keypad_data); @@ -392,10 +389,9 @@ static int omap4_keypad_probe(struct platform_device *pdev)  	 * Enable clocks for the keypad module so that we can read  	 * revision register.  	 */ -	error = pm_runtime_get_sync(dev); -	if (error < 0) { -		dev_err(dev, "pm_runtime_get_sync() failed\n"); -		pm_runtime_put_noidle(dev); +	error = pm_runtime_resume_and_get(dev); +	if (error) { +		dev_err(dev, "pm_runtime_resume_and_get() failed\n");  		return error;  	} |