On 20-09-22 02:51:11, Andy Duan wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > On Mon, 21 Sep 2020 14:27:28 +0200 > > Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > > > > On 2020-09-21 10:57:03 [+0100], Jonathan Cameron wrote: > > > > So looking at this the other way, are there any significant risks > > > > associated with this change? If not I'm tempted to queue them up > > > > and we have the rcX time to fix anything we've missed (just like > > > > every other patch!) > > > > > > I've been told that it only performs IRQ-thread wake-ups in hard-IRQ > > > context. This is fine then. > > > > > drivers/iio/adc/vf610-adc.c > > > > However, there looks to be a lot more wrong in there than just this. > > So normally for a device with a data ready signal like this we would hook up as > > follows. > > > > Data ready #1 -> IRQ chip (trigger) -> Read sensor #1 + > > iio_trigger_notify_done() > > -> Read sensor #2 + > > iio_trigger_notify_done() > > > > (note that the read etc is normally in a thread - all we do in interrupt context is > > usually to grab a timestamp if that makes sense for a given sensor). > > > > This driver does both of. > > Data ready -> Read data from itself and call iio_trigger_notify_done() IRQ chip > > for a different trigger -> Take a timestamp and never call > > iio_trigger_notify_done() > > or read any data for that matter. > > > > Which won't do what we want at all. > > > > Andy, if I have a go at fixing this are you able to test the result? > > I think the simplest is probably to introduce a trigger to tie the two halves > > together. > > We can set it as the default trigger so things should keep on working for existing > > users. > > > > For more general case, we should probably have two functions. > > > > iio_trigger_notify_done() which is only called from places we can sleep. > > iio_trigger_notify_done_no_action() which only decrements the counter (or > > given this is only called inside industrialio-trigger.c could just replace with > > atomic_dec(&trig->use_count)). > > > > Sanchayan, can you help to verify the fixes that Jonathan will send out ? > Sorry for the delay in reply. Unfortunately can't as I do not access to the hardware having left Toradex. CCed Stefan Agner who might be able to help. @Stefan Hello Stefan :), may be you can help here?