On Mon, 17 Mar 2025 10:43:58 +0100 Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote: > On Tue, Mar 04, 2025 at 11:18:52AM +0100, Kory Maincent wrote: > > +static int tps23881_irq_handler(int irq, struct pse_controller_dev *pcdev, > > + unsigned long *notifs, > > + unsigned long *notifs_mask) > > +{ > > + struct tps23881_priv *priv = to_tps23881_priv(pcdev); > > + struct i2c_client *client = priv->client; > > + int ret, it_mask; > > + > > + /* Get interruption mask */ > > + ret = i2c_smbus_read_word_data(client, TPS23881_REG_IT_MASK); > > + if (ret < 0) > > + return ret; > > + it_mask = ret; > > + > > + /* Read interrupt register until it frees the interruption pin. */ > > + while (true) { > > If the hardware has a stuck interrupt, this could result in an infinite > loop. max_retries with some sane value would be good. Ack I will. Do you have a value in mind as a sane value? > > + > > +static int tps23881_setup_irq(struct tps23881_priv *priv, int irq) > > +{ > > + struct i2c_client *client = priv->client; > > + struct pse_irq_desc irq_desc = { > > + .name = "tps23881-irq", > > here or in devm_pse_irq_helper() it would be good to add intex suffix to > the irq handler name. You mean index? Like the PSE index? So I will need to add back the support of the PSE index in the series. Regards, -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com