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.