summaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2019-12-02 09:37:00 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-13 08:42:41 +0100
commitb4ea1f788f314c4e221d7da02efbede6d5aa9692 (patch)
treee281c274eedcabe4d6a017fc122f9e9d8ee885d4 /drivers/input
parent2a8e38a8b9b7fcce4b0b0bc7ca4f2d74cc7c1529 (diff)
downloadlinux-stable-b4ea1f788f314c4e221d7da02efbede6d5aa9692.tar.gz
linux-stable-b4ea1f788f314c4e221d7da02efbede6d5aa9692.tar.bz2
linux-stable-b4ea1f788f314c4e221d7da02efbede6d5aa9692.zip
Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
commit 86bcd3a12999447faad60ec59c2d64d18d8e61ac upstream. F34 is a bit special as it reinitializes the device and related driver structs during the firmware update. This clears the fn_irq_mask which will then prevent F34 from receiving further interrupts, leading to timeouts during the firmware update. Make sure to reinitialize the IRQ enables at the appropriate times. The issue is in F34 code, but the commit in the fixes tag exposed the issue, as before this commit things would work by accident. Fixes: 363c53875aef (Input: synaptics-rmi4 - avoid processing unknown IRQs) Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Link: https://lore.kernel.org/r/20191129133514.23224-1-l.stach@pengutronix.de Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/rmi4/rmi_f34v7.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/rmi4/rmi_f34v7.c b/drivers/input/rmi4/rmi_f34v7.c
index a4cabf52740c..74f7c6f214ff 100644
--- a/drivers/input/rmi4/rmi_f34v7.c
+++ b/drivers/input/rmi4/rmi_f34v7.c
@@ -1189,6 +1189,9 @@ int rmi_f34v7_do_reflash(struct f34_data *f34, const struct firmware *fw)
{
int ret;
+ f34->fn->rmi_dev->driver->set_irq_bits(f34->fn->rmi_dev,
+ f34->fn->irq_mask);
+
rmi_f34v7_read_queries_bl_version(f34);
f34->v7.image = fw->data;