Messages in this thread | | | Subject | Re: [PATCH] i2c: at91: support atomic write xfer | From | Dmitry Osipenko <> | Date | Sun, 15 Mar 2020 23:46:33 +0300 |
| |
15.03.2020 21:27, Michał Mirosław пишет: > Implement basic support for atomic write - enough to get a simple > write to PMIC on shutdown. Only for chips having ALT_CMD register, > eg. SAMA5D2. > > Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> > ---
Hello Michał,
... > + ret = pm_runtime_get_sync(dev->dev); > + if (ret < 0) > + goto out;
Runtime PM can't be used while interrupts are disabled, unless pm_runtime_irq_safe() is used and driver's RPM callback is IRQ-safe.
... > + timeout = jiffies + (2 + msg->len) * HZ/1000; > + for (;;) { > + stat = at91_twi_read(dev, AT91_TWI_SR); > + if (stat & AT91_TWI_TXCOMP) > + break; > + if (time_after(jiffies, timeout)) { > + ret = -ETIMEDOUT; > + goto out; > + } > + udelay(100); > + }
Jiffies can't be used with the disabled interrupts because jiffies are updated by timer's interrupt.
Either ktime() API or iterator-based loop should be used.
| |