• Bartosz Golaszewski's avatar
    genirq/irq_sim: Simplify the API · 337cbeb2
    Bartosz Golaszewski authored
    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: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Reviewed-by: default avatarLinus 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
    337cbeb2
irq_sim.c 6.35 KB