From: Kaustabh Chakraborty <[email protected]>

Some third party ICs claim to support f55 but report an electrode count
of 0. Catch this and bail out early so that we don't confuse the i2c bus
with 0 sized reads.

Signed-off-by: Kaustabh Chakraborty <[email protected]>
[simplify code, adjust wording]
Signed-off-by: Casey Connolly <[email protected]>
Signed-off-by: David Heidelberg <[email protected]>
---
 drivers/input/rmi4/rmi_f55.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/input/rmi4/rmi_f55.c b/drivers/input/rmi4/rmi_f55.c
index 488adaca4dd00..776c915b82e72 100644
--- a/drivers/input/rmi4/rmi_f55.c
+++ b/drivers/input/rmi4/rmi_f55.c
@@ -52,6 +52,11 @@ static int rmi_f55_detect(struct rmi_function *fn)
 
        f55->num_rx_electrodes = f55->qry[F55_NUM_RX_OFFSET];
        f55->num_tx_electrodes = f55->qry[F55_NUM_TX_OFFSET];
+       if (!f55->num_rx_electrodes || !f55->num_tx_electrodes) {
+               dev_err(&fn->dev, "%s: F55 query returned no electrodes, giving 
up\n",
+                       __func__);
+               return -EINVAL;
+       }
 
        f55->cfg_num_rx_electrodes = f55->num_rx_electrodes;
        f55->cfg_num_tx_electrodes = f55->num_rx_electrodes;

-- 
2.51.0



Reply via email to