static int matrix_keypad_resume(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct matrix_keypad *keypad = platform_get_drvdata(pdev); if (device_may_wakeup(&pdev->dev)) matrix_keypad_disable_wakeup(keypad); matrix_keypad_start(keypad->input_dev); return 0; }
static int matrix_keypad_resume(struct platform_device *pdev) { struct matrix_keypad *keypad = platform_get_drvdata(pdev); const struct matrix_keypad_platform_data *pdata = keypad->pdata; int i; if (device_may_wakeup(&pdev->dev)) for (i = 0; i < pdata->num_row_gpios; i++) disable_irq_wake(gpio_to_irq(pdata->row_gpios[i])); matrix_keypad_start(keypad->input_dev); return 0; }
static int matrix_keypad_resume(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct matrix_keypad *keypad = platform_get_drvdata(pdev); const struct matrix_keypad_platform_data *pdata = keypad->pdata; int i; if (device_may_wakeup(&pdev->dev)) { for (i = 0; i < pdata->num_row_gpios; i++) { if (test_and_clear_bit(i, keypad->disabled_gpios)) { unsigned int gpio = pdata->row_gpios[i]; disable_irq_wake(gpio_to_irq(gpio)); } } } matrix_keypad_start(keypad->input_dev); return 0; }