On Sat, Mar 14, 2015 at 1:32 PM, Wolfram Sang <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to