Add support for Amazon Graviton custom variant of GICv2m, where the message is encoded using the MSI message address, as opposed to standard GICv2m, where the SPI number is encoded in the MSI message data. In addition, the Graviton flavor of GICv2m is used along GICv3 (and not GICv2).
Showing the changes to include/linux (2 of 4 files). Show all
Unified · Split
| @@ -39,4 +39,9 @@ struct gic_kvm_info { · 38 unmodified lines | |||
| 39 | 39 | ||
| 40 | const struct gic_kvm_info *gic_get_kvm_info(void); | 40 | const struct gic_kvm_info *gic_get_kvm_info(void); |
| 41 | 41 | ||
| 42 | struct irq_domain; | ||
| 43 | struct fwnode_handle; | ||
| 44 | int gicv2m_init(struct fwnode_handle *parent_handle, | ||
| 45 | struct irq_domain *parent); | ||
| 46 | |||
| 42 | #endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */ | 47 | #endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */ |
| @@ -160,9 +160,6 @@ int gic_of_init_child(struct device *dev, struct gic_chip_data **gic, int irq); · 159 unmodified lines | |||
| 160 | */ | 160 | */ |
| 161 | void gic_init(void __iomem *dist , void __iomem *cpu); | 161 | void gic_init(void __iomem *dist , void __iomem *cpu); |
| 162 | 162 | ||
| 163 | int gicv2m_init(struct fwnode_handle *parent_handle, | ||
| 164 | struct irq_domain *parent); | ||
| 165 | |||
| 166 | void gic_send_sgi(unsigned int cpu_id, unsigned int irq); | 163 | void gic_send_sgi(unsigned int cpu_id, unsigned int irq); |
| 167 | int gic_get_cpu_id(unsigned int cpu); | 164 | int gic_get_cpu_id(unsigned int cpu); |
| 168 | void gic_migrate_target(unsigned int new_cpu_id); | 165 | void gic_migrate_target(unsigned int new_cpu_id); |