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