The double negation is costly and can be avoided by shifting the
register value before masking the requested bit.

Signed-off-by: Jean Delvare <[email protected]>
Cc: Linus Walleij <[email protected]>
---
 drivers/gpio/gpio-pch.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-4.4-rc8.orig/drivers/gpio/gpio-pch.c  2016-01-05 14:18:55.444163876 
+0100
+++ linux-4.4-rc8/drivers/gpio/gpio-pch.c       2016-01-05 14:19:02.014313389 
+0100
@@ -127,7 +127,7 @@ static int pch_gpio_get(struct gpio_chip
 {
        struct pch_gpio *chip = gpiochip_get_data(gpio);
 
-       return !!(ioread32(&chip->reg->pi) & (1 << nr));
+       return (ioread32(&chip->reg->pi) >> nr) & 1;
 }
 
 static int pch_gpio_direction_output(struct gpio_chip *gpio, unsigned nr,


-- 
Jean Delvare
SUSE L3 Support
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to