On Wed, Aug 25, 2021 at 04:54:38PM +0300, Vladimir Oltean wrote: > - Use a hwspinlock. Never used one, don't know what it's about?! hwspinlocks are for locking around things that are shared with other processors not running Linux where the other processors might also take the lock, they're very specialist. > Either way, there seems to be no option to use a raw spinlock. "Disable > locking" sounds like the best bet, but regmap offers regmap_bulk_read() > and regmap_bulk_write() and those would be broken without locking taken > at the syscon driver level, I think? If you disable locks at the regmap level something needs to ensure that there's no concurrency issues which for a MFD if any of the registers are shared sounds off. > I did google for fixes for this kind of issues that were sent in the > past, but in my limited search I did not find any other driver which > uses regmap while under a raw spinlock. No problem with adding raw spinlocks to regmap, I think it's just nobody needed them before. I've not looked at the problem in sufficient detail to figure out if that's actually the best solution here but from an initial pass through it looks reasonableit looks reasonable