|
@@ -332,23 +332,24 @@ static int matrix_keypad_init_gpio(struct platform_device *pdev,
|
|
|
}
|
|
|
|
|
|
if (pdata->clustered_irq > 0) {
|
|
|
- err = request_irq(pdata->clustered_irq,
|
|
|
+ err = request_any_context_irq(pdata->clustered_irq,
|
|
|
matrix_keypad_interrupt,
|
|
|
pdata->clustered_irq_flags,
|
|
|
"matrix-keypad", keypad);
|
|
|
- if (err) {
|
|
|
+ if (err < 0) {
|
|
|
dev_err(&pdev->dev,
|
|
|
"Unable to acquire clustered interrupt\n");
|
|
|
goto err_free_rows;
|
|
|
}
|
|
|
} else {
|
|
|
for (i = 0; i < pdata->num_row_gpios; i++) {
|
|
|
- err = request_irq(gpio_to_irq(pdata->row_gpios[i]),
|
|
|
+ err = request_any_context_irq(
|
|
|
+ gpio_to_irq(pdata->row_gpios[i]),
|
|
|
matrix_keypad_interrupt,
|
|
|
IRQF_TRIGGER_RISING |
|
|
|
IRQF_TRIGGER_FALLING,
|
|
|
"matrix-keypad", keypad);
|
|
|
- if (err) {
|
|
|
+ if (err < 0) {
|
|
|
dev_err(&pdev->dev,
|
|
|
"Unable to acquire interrupt for GPIO line %i\n",
|
|
|
pdata->row_gpios[i]);
|