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.