Messages in this thread | | | From | Arnd Bergmann <> | Date | Wed, 25 Aug 2021 23:24:52 +0200 | Subject | Re: [PATCH 2/2] mfd: syscon: request a regmap with raw spinlocks for some devices |
| |
On Wed, Aug 25, 2021 at 10:50 PM Vladimir Oltean <vladimir.oltean@nxp.com> wrote: > > This patch solves a ls-extirq irqchip driver bug in a perhaps > non-intuitive (at least non-localized) way. > > The issue is that ls-extirq uses regmap, and due to the fact that it is > being called by the IRQ core under raw spinlock context, it needs to use > raw spinlocks itself. So it needs to request raw spinlocks from the > regmap config. > > All is fine so far, except the ls-extirq driver does not manage its own > regmap, instead it uses syscon_node_to_regmap() to get it from the > parent syscon (this driver). > > Because the syscon regmap is initialized before any of the consumer > drivers (ls-extirq) probe, we need to know beforehand whether to request > raw spinlocks or not. > > The solution seems to be to check some compatible string. The ls-extirq > driver probes on quite a few NXP Layerscape SoCs, all with different > compatible strings. This is potentially fragile and subject to bit rot > (since the fix is not localized to the ls-extirq driver, adding new > compatible strings there but not here seems plausible). Anyway, it is > probably the best we can do without major rework. > > Suggested-by: Mark Brown <broonie@kernel.org> > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
This should work, but how hard would it be to change the ls-extirq driver instead to not use the syscon driver at all but make the extirq driver set up the regmap itself?
Are there any other users of the syscon?
Arnd
| |