forked from mirrors/linux
		
	net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt
Fix the g1 interrupt free code such that is masks any further interrupts, and then releases the interrupt. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									46712644d6
								
							
						
					
					
						commit
						3460a5770c
					
				
					 1 changed files with 7 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -413,6 +413,13 @@ static const struct irq_domain_ops mv88e6xxx_g1_irq_domain_ops = {
 | 
			
		|||
static void mv88e6xxx_g1_irq_free(struct mv88e6xxx_chip *chip)
 | 
			
		||||
{
 | 
			
		||||
	int irq, virq;
 | 
			
		||||
	u16 mask;
 | 
			
		||||
 | 
			
		||||
	mv88e6xxx_g1_read(chip, GLOBAL_CONTROL, &mask);
 | 
			
		||||
	mask |= GENMASK(chip->g1_irq.nirqs, 0);
 | 
			
		||||
	mv88e6xxx_g1_write(chip, GLOBAL_CONTROL, mask);
 | 
			
		||||
 | 
			
		||||
	free_irq(chip->irq, chip);
 | 
			
		||||
 | 
			
		||||
	for (irq = 0; irq < 16; irq++) {
 | 
			
		||||
		virq = irq_find_mapping(chip->g1_irq.domain, irq);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue