]> git.baikalelectronics.ru Git - kernel.git/commit
genirq/irq_sim: Simplify the API
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Thu, 14 May 2020 08:39:01 +0000 (10:39 +0200)
committerMarc Zyngier <maz@kernel.org>
Mon, 18 May 2020 09:30:21 +0000 (10:30 +0100)
commit14dab5afbc2d1a8b535a724d3e08fe970f897d42
tree25e52b0caff13140434a929d697fd9f9d7b92947
parent69a7a7fa240a6ffbbb2b8791c2917048298f7aa9
genirq/irq_sim: Simplify the API

The interrupt simulator API exposes a lot of custom data structures and
functions and doesn't reuse the interfaces already exposed by the irq
subsystem. This patch tries to address it.

We hide all the simulator-related data structures from users and instead
rely on the well-known irq domain. When creating the interrupt simulator
the user receives a pointer to a newly created irq_domain and can use it
to create mappings for simulated interrupts.

It is also possible to pass a handle to fwnode when creating the simulator
domain and retrieve it using irq_find_matching_fwnode().

The irq_sim_fire() function is dropped as well. Instead we implement the
irq_get/set_irqchip_state interface.

We modify the two modules that use the simulator at the same time as
adding these changes in order to reduce the intermediate bloat that would
result when trying to migrate the drivers in separate patches.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> #for IIO
Link: https://lore.kernel.org/r/20200514083901.23445-3-brgl@bgdev.pl
drivers/gpio/gpio-mockup.c
drivers/iio/dummy/iio_dummy_evgen.c
include/linux/irq_sim.h
kernel/irq/Kconfig
kernel/irq/irq_sim.c