使用輸入子系統實現的按鍵程式,每次按鍵後進入中斷,就會報錯如下: input_key_handler [ cut here ] WARNING: at drivers/gpio/gpiolib.c:101 gpio_ensure_requested+0x5c/0x118() autorequest ...
使用輸入子系統實現的按鍵程式,每次按鍵後進入中斷,就會報錯如下:
---input_key_handler---
------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:101 gpio_ensure_requested+0x5c/0x118()
autorequest GPIO-145
源代碼如下:
irqreturn_t input_key_handler(int irqno, void *dev_id) { int value; printk("---%s---\n", __FUNCTION__); value = gpio_direction_input(EXYNOS4_GPX1(1)); printk("---<DRV>--- %d\n", value); input_report_key(input_key, KEY_HOME, !value); input_sync(input_key); return IRQ_HANDLED; }
出現此種問題的原因是在使用 gpio_direction_input 之前沒有申請。
兩種解決辦法:
1、使用前用 gpio_request 來申請 gpio
2、將 gpio_direction_input 改為 gpio_get_value