Re: [PATCH 0/6] Implement I2C restart handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

> this is a request for feedback about a lockdep-warning-free I2C
> restart_handler.  I would like to know whether someone had the problem already
> and how the best and mainline friendliest solution looks like.
> I have an embedded board with the PMIC chip DA9063 that is also used as a
> voltage regulator for DVFS. For a clean reboot/reset of the system I have to
> set the bit nSHUTDOWN in the PMIC via I2C. The restart_handler call chain
> is of type
> 
>     static ATOMIC_NOTIFIER_HEAD(restart_handler_list);
> 
> So any code running as a restart_handler cannot (should not) wait, for other
> locks. When you use i2c_transfer/regmap you get lockdep warnings like [1].

Yes, this problem has come up occasionally. And it is not only about
sleeping. IRQs are disabled, too.

My idea was to introduce master_xfer_irqless or similar to struct
i2c_algorithm. I even discussed this shortly with Mark Brown how to
interact with regmap; but this was too long ago, so I forgot what we
agreed on :(

> Any comments? 

I just skimmed very lightly over the patchset. Yet, seeing an I2C client
messing directly with 'struct adapter' breaks so many abstractions, it
hits my instant-NACK nerve ;)

Thanks,

   Wolfram

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux