Merge series "Use raw spinlocks in the ls-extirq driver" from Vladimir Oltean <vladim...
authorMark Brown <broonie@kernel.org>
Thu, 26 Aug 2021 12:40:35 +0000 (13:40 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 26 Aug 2021 12:40:35 +0000 (13:40 +0100)
commitd287801c497151a44e5577fb3bbab673fe52e7b0
tree95aa0c6ea6eb1b3b0894987d140fa0f425430946
parent29c34975c9391d3ad1fd5dd3c92ba0d41afe9549
parent67021f25d95292d285dd213c58401642b98eaf24
Merge series "Use raw spinlocks in the ls-extirq driver" from Vladimir Oltean <vladimir.oltean@nxp.com>:

The ls-extirq irqchip driver accesses regmap inside its implementation
of the struct irq_chip :: irq_set_type method, and currently regmap
only knows to lock using normal spinlocks. But the method above wants
raw spinlock context, so this isn't going to work and triggers a
"[ BUG: Invalid wait context ]" splat.

The best we can do given the arrangement of the code is to patch regmap
and the syscon driver: regmap to support raw spinlocks, and syscon to
request them on behalf of its ls-extirq consumer.

Link: https://lore.kernel.org/lkml/20210825135438.ubcuxm5vctt6ne2q@skbuf/T/#u
Vladimir Oltean (2):
  regmap: teach regmap to use raw spinlocks if requested in the config
  mfd: syscon: request a regmap with raw spinlocks for some devices

 drivers/base/regmap/internal.h |  4 ++++
 drivers/base/regmap/regmap.c   | 35 +++++++++++++++++++++++++++++-----
 drivers/mfd/syscon.c           | 16 ++++++++++++++++
 include/linux/regmap.h         |  2 ++
 4 files changed, 52 insertions(+), 5 deletions(-)

--
2.25.1

base-commit: 6efb943b8616ec53a5e444193dccf1af9ad627b5
drivers/base/regmap/regmap.c
include/linux/regmap.h