mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 13:34:27 -04:00 
			
		
		
		
	Backport the patch queued upstream for 5.16. The patch differs slightly from the upstream patch due to an upstream change that added a convenience function. Signed-off-by: Sander Vanheule <sander@svanheule.net>
		
			
				
	
	
		
			22 lines
		
	
	
		
			877 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			877 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| gpio: realtek-otto: fix GPIO line IRQ offset
 | |
| 
 | |
| The irqchip uses one domain for all GPIO lines, so th line offset should be
 | |
| determined w.r.t. the first line of the first port, not the first line of the
 | |
| triggered port.
 | |
| 
 | |
| Fixes: 0d82fb1127fb ("gpio: Add Realtek Otto GPIO support")
 | |
| Signed-off-by: Sander Vanheule <sander@svanheule.net>
 | |
| Link: https://lore.kernel.org/linux-gpio/20211028085243.34360-1-sander@svanheule.net/
 | |
| 
 | |
| --- a/drivers/gpio/gpio-realtek-otto.c
 | |
| +++ b/drivers/gpio/gpio-realtek-otto.c
 | |
| @@ -206,7 +206,7 @@ static void realtek_gpio_irq_handler(str
 | |
|  		status = realtek_gpio_read_isr(ctrl, lines_done / 8);
 | |
|  		port_pin_count = min(gc->ngpio - lines_done, 8U);
 | |
|  		for_each_set_bit(offset, &status, port_pin_count) {
 | |
| -			irq = irq_find_mapping(gc->irq.domain, offset);
 | |
| +			irq = irq_find_mapping(gc->irq.domain, offset + lines_done);
 | |
|  			generic_handle_irq(irq);
 | |
|  		}
 | |
|  	}
 |