From 7999822189ca9d7ee088a96b0dccd8a0cd54b8e4 Mon Sep 17 00:00:00 2001 From: Jan Pobrislo Date: Tue, 4 Jul 2017 14:43:19 -0600 Subject: [PATCH] I've found that the interrupts aren't enabled since nothing updates them after btn_poll() marks the file descriptor structure as being polling. I've managed to make it work with this change. --- drivers/input/button_upper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/input/button_upper.c b/drivers/input/button_upper.c index 93b54454e0..816cf01c4a 100644 --- a/drivers/input/button_upper.c +++ b/drivers/input/button_upper.c @@ -769,7 +769,7 @@ static int btn_poll(FAR struct file *filep, FAR struct pollfd *fds, if (i >= CONFIG_BUTTONS_NPOLLWAITERS) { - ierr("ERROR: Too man poll waiters\n"); + ierr("ERROR: Too many poll waiters\n"); fds->priv = NULL; ret = -EBUSY; goto errout_with_dusem; @@ -797,6 +797,7 @@ static int btn_poll(FAR struct file *filep, FAR struct pollfd *fds, } errout_with_dusem: + btn_enable(priv); btn_givesem(&priv->bu_exclsem); return ret; }