On Sat, Mar 08, 2025 at 03:08:40PM +0100, David Heidelberg via B4 Relay wrote: > From: methanal <baclofen@xxxxxxx> > > 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: methanal <baclofen@xxxxxxx> > [simplify code, adjust wording] > Signed-off-by: Caleb Connolly <caleb.connolly@xxxxxxxxxx> > --- > 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 488adaca4dd00482cd1106d813b32871092c83a0..ad2ef14ae9f4e897473db43334792cc3de966d52 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) { > + rmi_dbg(RMI_DEBUG_FN, &fn->dev, > + "F55 query returned no electrodes, giving up\n"); > + return 0; 0 here means "successfully detected" and will result in F55 probe succeeding. I expect you want -EINVAL or -ENODEV here. Thanks. -- Dmitry