Re: [PATCH v1] mfd: tps6586x: Move interrupt handling into workqueue

From: Thierry Reding
Date: Mon May 14 2018 - 08:39:56 EST


On Mon, May 14, 2018 at 03:20:55PM +0300, Dmitry Osipenko wrote:
> On 14.05.2018 15:01, Dmitry Osipenko wrote:
> > On 14.05.2018 14:51, Thierry Reding wrote:
> >> On Mon, May 14, 2018 at 12:18:42AM +0300, Dmitry Osipenko wrote:
> >>> Reading of status register within the interrupt handler fails with -EAGAIN
> >>> if I2C is busy with handling some other request at the same time. Move the
> >>> actual interrupt handling into a workqueue to avoid the unfortunate I2C
> >>> failure and to avoid hanging CPU in interrupt up to 1 second (transfer
> >>> timeout in the Tegra I2C driver).
> >>>
> >>> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
> >>> ---
> >>> drivers/mfd/tps6586x.c | 40 +++++++++++++++++++++++++++++-----------
> >>> 1 file changed, 29 insertions(+), 11 deletions(-)
> >>
> >> Could this not be achieved with a threaded interrupt handler?
> >>
> >> Thierry
> >>
> >
> > Seems yes. I completely forgot about the threaded interrupt handlers existence.
> > Thank you very much for the suggestion, I'll try with the threaded IRQ and send
> > v2 if it will be fine.
> >
>
> Oh wait! TPS6586x driver already uses threaded interrupt handler, so everything
> should be fine in regards to the interrupt handling and this patch is obsolete.
> Thank you again for the good suggestion, then it's only the Tegra's I2C driver
> that causes trouble for the TPS6586x right now.

Heh... indeed. Sounds like the discussion that Wolfram pointed out is
the right way forward.

Thierry

Attachment: signature.asc
Description: PGP signature