linux/drivers/pinctrl/intel
Andy Shevchenko b2e05d63c2 pinctrl: lynxpoint: Use raw_spinlock for locking
The Intel Lynxpoint pinctrl driver implements irqchip callbacks which are
called with desc->lock raw_spinlock held. In mainline this is fine because
spinlock resolves to raw_spinlock. However, running the same code in -rt
we will get a BUG() asserted.

This is because in -rt spinlocks are preemptible so taking the driver
private spinlock in irqchip callbacks causes might_sleep() to trigger.

In order to keep -rt happy but at the same time make sure that register
accesses get serialized, convert the driver to use raw_spinlock instead.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2019-12-13 16:48:47 +02:00
..
Kconfig pinctrl: lynxpoint: Move GPIO driver to pin controller folder 2019-12-13 16:48:47 +02:00
Makefile pinctrl: lynxpoint: Move GPIO driver to pin controller folder 2019-12-13 16:48:47 +02:00
pinctrl-baytrail.c pinctrl: baytrail: Reuse struct intel_pinctrl in the driver 2019-12-13 16:48:47 +02:00
pinctrl-broxton.c pinctrl: broxton: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-cannonlake.c pinctrl: cannonlake: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-cedarfork.c pinctrl: cedarfork: Update pin names according to v1.13c 2019-04-03 14:49:47 +03:00
pinctrl-cherryview.c pinctrl: cherryview: Use GPIO direction definitions 2019-12-13 16:48:47 +02:00
pinctrl-denverton.c pinctrl: denverton: Update pin names according to v1.08 2019-08-08 12:57:01 +03:00
pinctrl-geminilake.c pinctrl: geminilake: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-icelake.c pinctrl: icelake: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-intel.c pinctrl: intel: Share struct intel_pinctrl for wider use 2019-12-13 16:48:47 +02:00
pinctrl-intel.h pinctrl: intel: Share struct intel_pinctrl for wider use 2019-12-13 16:48:47 +02:00
pinctrl-lewisburg.c pinctrl: lewisburg: Update pin list according to v1.1v6 2019-11-21 15:04:16 +01:00
pinctrl-lynxpoint.c pinctrl: lynxpoint: Use raw_spinlock for locking 2019-12-13 16:48:47 +02:00
pinctrl-merrifield.c pinctrl: merrifield: Use devm_platform_ioremap_resource() 2019-07-23 16:13:14 +03:00
pinctrl-sunrisepoint.c pinctrl: sunrisepoint: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-tigerlake.c pinctrl: intel: Add Intel Tiger Lake pin controller support 2019-10-30 16:05:18 +02:00