• Mark Brown's avatar
    Merge series "Use raw spinlocks in the ls-extirq driver" from Vladimir Oltean... · d287801c
    Mark Brown authored
    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: 6efb943b
    d287801c
regmap.c 80 KB