History

irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks

Implement mask/unmask for virtual SGIs by calling into the configuration helper.

Marc Zyngier committed 6 years ago

Commit b4e8d641 parent e252cf81 file · +18 −0Browse files

Unified · Split

drivers/irqchip/irq-gic-v3-its.c+18−0
@@ -3944,6 +3944,22 @@ static void its_configure_sgi(struct irq_data *d, bool clear) · 3943 unmodified lines
3944 its_send_single_vcommand(find_4_1_its(), its_build_vsgi_cmd, &desc);3944 its_send_single_vcommand(find_4_1_its(), its_build_vsgi_cmd, &desc);
3945}3945}
3946 3946
3947static void its_sgi_mask_irq(struct irq_data *d)
3948{
3949 struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
3950
3951 vpe->sgi_config[d->hwirq].enabled = false;
3952 its_configure_sgi(d, false);
3953}
3954
3955static void its_sgi_unmask_irq(struct irq_data *d)
3956{
3957 struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
3958
3959 vpe->sgi_config[d->hwirq].enabled = true;
3960 its_configure_sgi(d, false);
3961}
3962
3947static int its_sgi_set_affinity(struct irq_data *d,3963static int its_sgi_set_affinity(struct irq_data *d,
3948 const struct cpumask *mask_val,3964 const struct cpumask *mask_val,
3949 bool force)3965 bool force)
@@ -3958,6 +3974,8 @@ static int its_sgi_set_affinity(struct irq_data *d, · 8 unmodified lines
3958 3974
3959static struct irq_chip its_sgi_irq_chip = {3975static struct irq_chip its_sgi_irq_chip = {
3960 .name = "GICv4.1-sgi",3976 .name = "GICv4.1-sgi",
3977 .irq_mask = its_sgi_mask_irq,
3978 .irq_unmask = its_sgi_unmask_irq,
3961 .irq_set_affinity = its_sgi_set_affinity,3979 .irq_set_affinity = its_sgi_set_affinity,
3962};3980};
3963 3981