From: Matthew Campbell Date: Tue, 24 Nov 2015 14:05:38 +0000 (-0500) Subject: sysfsgpio: support broken gpio implementations X-Git-Tag: v0.10.0-rc1~298 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=37252b231336a8178d29d7e0d383d08a630bfb15;ds=sidebyside sysfsgpio: support broken gpio implementations Change tests when reading from 'value' in sysfs from =='0' to !='1'. This guards against broken sysfs GPIO implementations that return non-zero for high rather than just '1' while still being clean and correct code. Note that sysfs will never output a leading zero even in a very broken implementation as that is covered in gpiolib.c, not the offending driver. Tested against broken Freescale kernel 3.14.38 on i.MX6SL. Change-Id: Id05567bb8504b1babef33d6ee5172bceefeca8b8 Signed-off-by: Matthew Campbell Reviewed-on: http://openocd.zylin.com/3121 Tested-by: jenkins Reviewed-by: Antonio Borneo Reviewed-by: Spencer Oliver --- diff --git a/src/jtag/drivers/sysfsgpio.c b/src/jtag/drivers/sysfsgpio.c index e60181459d..fd613c2d48 100644 --- a/src/jtag/drivers/sysfsgpio.c +++ b/src/jtag/drivers/sysfsgpio.c @@ -210,7 +210,7 @@ static int sysfsgpio_swdio_read(void) return 0; } - return buf[0] == '1'; + return buf[0] != '0'; } static void sysfsgpio_swdio_write(int swclk, int swdio) @@ -259,7 +259,7 @@ static int sysfsgpio_read(void) return 0; } - return buf[0] == '1'; + return buf[0] != '0'; } /*