genirq: Add irqchip_set_wake_parent
This proves to be useful with stacked domains, when the current domain doesn't implement wake-up, but expect the parent to do so. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Link: https://lkml.kernel.org/r/1426088629-15377-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
This commit is contained in:
		
							parent
							
								
									c517d838eb
								
							
						
					
					
						commit
						08b55e2a92
					
				| @ -460,6 +460,7 @@ extern void irq_chip_eoi_parent(struct irq_data *data); | ||||
| extern int irq_chip_set_affinity_parent(struct irq_data *data, | ||||
| 					const struct cpumask *dest, | ||||
| 					bool force); | ||||
| extern int irq_chip_set_wake_parent(struct irq_data *data, unsigned int on); | ||||
| #endif | ||||
| 
 | ||||
| /* Handling of unhandled and spurious interrupts: */ | ||||
|  | ||||
| @ -948,6 +948,22 @@ int irq_chip_retrigger_hierarchy(struct irq_data *data) | ||||
| 
 | ||||
| 	return -ENOSYS; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * irq_chip_set_wake_parent - Set/reset wake-up on the parent interrupt | ||||
|  * @data:	Pointer to interrupt specific data | ||||
|  * @on:		Whether to set or reset the wake-up capability of this irq | ||||
|  * | ||||
|  * Conditional, as the underlying parent chip might not implement it. | ||||
|  */ | ||||
| int irq_chip_set_wake_parent(struct irq_data *data, unsigned int on) | ||||
| { | ||||
| 	data = data->parent_data; | ||||
| 	if (data->chip->irq_set_wake) | ||||
| 		return data->chip->irq_set_wake(data, on); | ||||
| 
 | ||||
| 	return -ENOSYS; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| /**
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user