sysfsgpio: do not try to initialise absent signals
authorPaul Fertser <fercerpav@gmail.com>
Fri, 3 May 2013 08:49:07 +0000 (12:49 +0400)
committerFreddie Chopin <freddie.chopin@gmail.com>
Wed, 8 May 2013 14:53:36 +0000 (14:53 +0000)
When e.g. SRST is not specified, the current code results in assigning 0 to
srst_fd and subsequently a stray '1' is output on screen on reset.

Avoid this by not doing bogus initialisation.

Change-Id: Iadb847a384a927ae746124cf6e4e3c6cc8b11406
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1375
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
src/jtag/drivers/sysfsgpio.c

index 283ec445a2c870b4d7938853063425ef056105e6..f77371c8d9839743c72e5bd3c3d20727667fae19 100644 (file)
@@ -475,14 +475,18 @@ static int sysfsgpio_init(void)
                goto out_error;
 
        /* assume active low*/
-       trst_fd = setup_sysfs_gpio(trst_gpio, 1, 1);
-       if (trst_gpio > 0 && trst_fd < 0)
-               goto out_error;
+       if (trst_gpio > 0) {
+               trst_fd = setup_sysfs_gpio(trst_gpio, 1, 1);
+               if (trst_fd < 0)
+                       goto out_error;
+       }
 
        /* assume active low*/
-       srst_fd = setup_sysfs_gpio(srst_gpio, 1, 1);
-       if (srst_gpio > 0 && srst_fd < 0)
-               goto out_error;
+       if (srst_gpio > 0) {
+               srst_fd = setup_sysfs_gpio(srst_gpio, 1, 1);
+               if (srst_fd < 0)
+                       goto out_error;
+       }
 
        return ERROR_OK;