On Mon, Nov 18, 2019 at 11:15 AM Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> wrote: > pon., 18 lis 2019 o 11:03 Yash Shah <yash.shah@xxxxxxxxxx> napisał(a): > > As suggested in the comments received on the RFC version of this patch[0], I am trying to use regmap MMIO by looking at gpio-mvebu.c. I got your point regarding the usage of own locks is not making any sense. > > Here is what I will do in v2: > > 1. drop the usage of own locks > > 2. consistently use regmap_* apis for register access (replace all iowrites). > > Does this make sense now? > > The thing is: the gpio-mmio code you're (correctly) reusing uses a > different lock - namely: bgpio_lock in struct gpio_chip. If you want > to use regmap for register operations, then you need to set > disable_locking in regmap_config to true and then take this lock > manually on every access. Is it really so? The bgpio_lock does protect the registers used by regmap-mmio but unless the interrupt code is also using the same registers it is fine to have a different lock for those. Is the interrupt code really poking into the very same registers as passed to bgpio_init()? Of course it could be seen as a bit dirty to poke around in the same memory space with regmap and the bgpio_* accessors but in practice it's no problem if they never touch the same things. Yours, Linus Walleij