irq/irq_sim: add irq_set_type() callback
Implement the irq_set_type() callback and call irqd_set_trigger_type() internally so that users interested in the configured trigger type can later retrieve it using irqd_get_trigger_type(). We only support edge trigger types. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
68b7587baa
commit
8d91ecc84d
|
@ -25,10 +25,22 @@ static void irq_sim_irqunmask(struct irq_data *data)
|
||||||
irq_ctx->enabled = true;
|
irq_ctx->enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int irq_sim_set_type(struct irq_data *data, unsigned int type)
|
||||||
|
{
|
||||||
|
/* We only support rising and falling edge trigger types. */
|
||||||
|
if (type & ~IRQ_TYPE_EDGE_BOTH)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
irqd_set_trigger_type(data, type);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct irq_chip irq_sim_irqchip = {
|
static struct irq_chip irq_sim_irqchip = {
|
||||||
.name = "irq_sim",
|
.name = "irq_sim",
|
||||||
.irq_mask = irq_sim_irqmask,
|
.irq_mask = irq_sim_irqmask,
|
||||||
.irq_unmask = irq_sim_irqunmask,
|
.irq_unmask = irq_sim_irqunmask,
|
||||||
|
.irq_set_type = irq_sim_set_type,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void irq_sim_handle_irq(struct irq_work *work)
|
static void irq_sim_handle_irq(struct irq_work *work)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user