On Sat, Mar 14, 2015 at 1:32 PM, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > On Sat, Mar 14, 2015 at 12:27:03PM +0100, Wolfram Sang wrote: >> Hi Sebastian, >> >> > - i2c_transfer() has this piece: >> > 2091 if (in_atomic() || irqs_disabled()) { >> > 2092 ret = i2c_trylock_adapter(adap); >> > >> > is this irqs_disabled() is what bothers me and should not be there. >> > pxa does a spin_lock_irq() which would enable interrupts on return / >> > too early. >> > mxs has a wait_for_completion() which needs irqs enabled _and_ makes >> > in_atomic() problematic, too. I have't checked other drivers but the >> > commit, that introduced it, does not explain why it is required. That was some time ago, but as far as I remember, PIO in i2c_pxa was required to enable communication with PMIC in interrupt context. >> I haven't really looked into it, but a quick search gave me this thread >> explaining the intention of the code in question: >> >> http://lists.lm-sensors.org/pipermail/i2c/2007-November/002268.html >> >> Regards, >> >> Wolfram >> > > And adding a recent mail address from Mike to cc. > -- Sincerely yours, Mike. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html