WARNING: at drivers/gpio/gpiolib.c:101 gpio_ensure_requested+0x5c/0x118()

使用输入子系统实现的按键程序,每次按键后进入中断,就会报错如下:

---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 

posted @ 2017-10-31 15:14  LeeAaron  阅读(1910)  评论(0编辑  收藏  举报