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@xxxxxxxxxxxx> > --- 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.