On Saturday, February 01, 2014 at 06:03:22 AM, Matt Ranostay wrote: > Duly noted. Will be fixed in the next rev... mutexs are pointless as you > say.. only corner case would be if you were changing gain_boost and a event > came in at the same time. But that wouldn't harm anything except slightly > delay the gain_boost being updated by some x microseconds. Please stop top-posting ;-) btw I think you might need a mutex around the entire: +static void calibrate_as3935(struct as3935_state *st) +{ + /* mask disturber interrupt bit */ + as3935_write(st, AS3935_INT, 1 << 5); + + as3935_write(st, AS3935_CALIBRATE, 0x96); + as3935_write(st, AS3935_TUNE_CAP, 1 << 5 | st->tune_cap); + + mdelay(2); + as3935_write(st, AS3935_TUNE_CAP, st->tune_cap); +} and similar functions where you do a bunch of register accesses. This is because you probably want to protect them against concurent execution so the chip won't be confused if a user were to poke something via SYSFS twice. Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html