Messages in this thread | | | From | Linus Walleij <> | Date | Tue, 19 Nov 2019 16:02:56 +0100 | Subject | Re: [PATCH 3/4] gpio: sifive: Add GPIO driver for SiFive SoCs |
| |
On Mon, Nov 18, 2019 at 11:15 AM Bartosz Golaszewski <bgolaszewski@baylibre.com> wrote: > pon., 18 lis 2019 o 11:03 Yash Shah <yash.shah@sifive.com> 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
| |