mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	irqchip/gic-v4: Enable low-level GICv4 operations
Get the show on the road... Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
		
							parent
							
								
									7954907bed
								
							
						
					
					
						commit
						3d63cb53e2
					
				
					 4 changed files with 18 additions and 2 deletions
				
			
		|  | @ -28,7 +28,7 @@ obj-$(CONFIG_ARM_GIC_PM)		+= irq-gic-pm.o | |||
| obj-$(CONFIG_ARCH_REALVIEW)		+= irq-gic-realview.o | ||||
| obj-$(CONFIG_ARM_GIC_V2M)		+= irq-gic-v2m.o | ||||
| obj-$(CONFIG_ARM_GIC_V3)		+= irq-gic-v3.o irq-gic-common.o | ||||
| obj-$(CONFIG_ARM_GIC_V3_ITS)		+= irq-gic-v3-its.o irq-gic-v3-its-pci-msi.o irq-gic-v3-its-platform-msi.o | ||||
| obj-$(CONFIG_ARM_GIC_V3_ITS)		+= irq-gic-v3-its.o irq-gic-v3-its-pci-msi.o irq-gic-v3-its-platform-msi.o irq-gic-v4.o | ||||
| obj-$(CONFIG_PARTITION_PERCPU)		+= irq-partition-percpu.o | ||||
| obj-$(CONFIG_HISILICON_IRQ_MBIGEN)	+= irq-mbigen.o | ||||
| obj-$(CONFIG_ARM_NVIC)			+= irq-nvic.o | ||||
|  |  | |||
|  | @ -3226,7 +3226,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists, | |||
| 		has_v4 |= its->is_v4; | ||||
| 
 | ||||
| 	if (has_v4 & rdists->has_vlpis) { | ||||
| 		if (its_init_vpe_domain()) { | ||||
| 		if (its_init_vpe_domain() || | ||||
| 		    its_init_v4(parent_domain, &its_vpe_domain_ops)) { | ||||
| 			rdists->has_vlpis = false; | ||||
| 			pr_err("ITS: Disabling GICv4 support\n"); | ||||
| 		} | ||||
|  |  | |||
|  | @ -210,3 +210,16 @@ int its_prop_update_vlpi(int irq, u8 config, bool inv) | |||
| 
 | ||||
| 	return irq_set_vcpu_affinity(irq, &info); | ||||
| } | ||||
| 
 | ||||
| int its_init_v4(struct irq_domain *domain, const struct irq_domain_ops *ops) | ||||
| { | ||||
| 	if (domain) { | ||||
| 		pr_info("ITS: Enabling GICv4 support\n"); | ||||
| 		gic_domain = domain; | ||||
| 		vpe_domain_ops = ops; | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	pr_err("ITS: No GICv4 VPE domain allocated\n"); | ||||
| 	return -ENODEV; | ||||
| } | ||||
|  |  | |||
|  | @ -100,4 +100,6 @@ int its_get_vlpi(int irq, struct its_vlpi_map *map); | |||
| int its_unmap_vlpi(int irq); | ||||
| int its_prop_update_vlpi(int irq, u8 config, bool inv); | ||||
| 
 | ||||
| int its_init_v4(struct irq_domain *domain, const struct irq_domain_ops *ops); | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Marc Zyngier
						Marc Zyngier