irqchip/gic-v3-its: Add VLPI configuration hook

Add the skeleton irq_set_vcpu_affinity method that will be used
to configure VLPIs.

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>

+24
+24
drivers/irqchip/irq-gic-v3-its.c
··· 36 36 37 37 #include <linux/irqchip.h> 38 38 #include <linux/irqchip/arm-gic-v3.h> 39 + #include <linux/irqchip/arm-gic-v4.h> 39 40 40 41 #include <asm/cputype.h> 41 42 #include <asm/exception.h> ··· 787 786 return 0; 788 787 } 789 788 789 + static int its_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info) 790 + { 791 + struct its_device *its_dev = irq_data_get_irq_chip_data(d); 792 + struct its_cmd_info *info = vcpu_info; 793 + 794 + /* Need a v4 ITS */ 795 + if (!its_dev->its->is_v4 || !info) 796 + return -EINVAL; 797 + 798 + switch (info->cmd_type) { 799 + case MAP_VLPI: 800 + 801 + case GET_VLPI: 802 + 803 + case PROP_UPDATE_VLPI: 804 + case PROP_UPDATE_AND_INV_VLPI: 805 + 806 + default: 807 + return -EINVAL; 808 + } 809 + } 810 + 790 811 static struct irq_chip its_irq_chip = { 791 812 .name = "ITS", 792 813 .irq_mask = its_mask_irq, ··· 817 794 .irq_set_affinity = its_set_affinity, 818 795 .irq_compose_msi_msg = its_irq_compose_msi_msg, 819 796 .irq_set_irqchip_state = its_irq_set_irqchip_state, 797 + .irq_set_vcpu_affinity = its_irq_set_vcpu_affinity, 820 798 }; 821 799 822 800 /*