Skip to content

irq/irq_sim: provide a specialized variant of irq_sim_fire()

Bartosz Golaszewski linux-gpio lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 27 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2irq/irq_sim: provide irq_sim_fire_edge()include/linux/irq_sim.h kernel/irq/irq_sim.c+30 -224 replies
2/2gpio: mockup: use irq_sim_fire_edge()drivers/gpio/gpio-mockup.c+3 -23 replies

Reviews trailers per patch

1 of 2 patches has a Reviewed-by or Acked-by.

PatchMarc Zyngier
1/2A-b
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

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

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(-)
Signature · 1 line
2.19.1