[PATCH 0/2] irq/irq_sim: provide a specialized variant of irq_sim_fire()

From: Bartosz Golaszewski
Date: Tue Nov 20 2018 - 08:40:44 EST


The interrupts simulator has a limitation in that a call to irq_sim_fire()
always fires the dummy interrupt - irrespective of the flags passed to the
irq request function.

This series addresses a problem with certain libgpiod tests failing when
using gpio-mockup with simulated interrupts since commit fa38869b0161
("gpiolib: Don't support irq sharing for userspace"). The tests are
failing because irq_sim fires interrupts for falling edge events even if
gpiolib requests a threaded irq triggered by rising edge only (and vice
versa).

We're introducing a new function: irq_sim_fire_edge() which takes
another argument allowing to specify the trigger type for the dummy
interrupt. We then use it in gpio-mockup.

Patch 1 applies on top of my previous irq_sim changeset[1]. Patch 2
applies on top of the recent changes to gpio-mockup[2].

Since test breakage in user-space after 4.20-rc1 can be considered
a regression, it would be great if this could go into 4.20.

[1] https://lkml.org/lkml/2018/11/9/1418
[2] https://lkml.org/lkml/2018/11/8/1012

Bartosz Golaszewski (2):
irq/irq_sim: provide irq_sim_fire_edge()
gpio: mockup: use irq_sim_fire_edge()

drivers/gpio/gpio-mockup.c | 5 +++--
include/linux/irq_sim.h | 2 ++
kernel/irq/irq_sim.c | 30 ++++++++++++++++++++++++++++--
3 files changed, 33 insertions(+), 4 deletions(-)

--
2.19.1