forked from mirrors/linux
		
	gpiolib: Respect error code of ->get_direction()
In case we try to lock GPIO pin as IRQ when something going wrong we print a misleading message. Correct this by checking an error code from ->get_direction() in gpiochip_lock_as_irq() and printing a corresponding message. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
		
							parent
							
								
									f8b52dd50c
								
							
						
					
					
						commit
						36b312792b
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		|  | @ -3262,6 +3262,12 @@ int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset) | ||||||
| 	if (!chip->can_sleep && chip->get_direction) { | 	if (!chip->can_sleep && chip->get_direction) { | ||||||
| 		int dir = chip->get_direction(chip, offset); | 		int dir = chip->get_direction(chip, offset); | ||||||
| 
 | 
 | ||||||
|  | 		if (dir < 0) { | ||||||
|  | 			chip_err(chip, "%s: cannot get GPIO direction\n", | ||||||
|  | 				 __func__); | ||||||
|  | 			return dir; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if (dir) | 		if (dir) | ||||||
| 			clear_bit(FLAG_IS_OUT, &desc->flags); | 			clear_bit(FLAG_IS_OUT, &desc->flags); | ||||||
| 		else | 		else | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Andy Shevchenko
						Andy Shevchenko