This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8186

-- gerrit

commit 5c2c91df5dddca23709075e73ce551e2ff5f78b7
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sun Mar 24 16:17:11 2024 +0100

    jtag: linuxgpiod: fix detection for line request bias
    
    Commit 290eac04b93c ("drivers/linuxgpiod: Migrate to adapter gpio
    commands") introduced an incorrect check to determine if the
    library libgpiod declares the line request flags:
            GPIOD_LINE_REQUEST_FLAG_BIAS_DISABLE
            GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP
            GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_DOWN
    The names above are declared by the library inside an enum, thus
    cannot be used by the C preprocessor in a #ifdef.
    
    Determine in configure if the version of libgpiod provides the
    line request flags for "bias" and define a C macro.
    Use the new macro in the driver code.
    
    Change-Id: Iaa452230f4753fce4c6e9daa254299cedb7cab7f
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>
    Fixes: 290eac04b93c ("drivers/linuxgpiod: Migrate to adapter gpio commands")

diff --git a/configure.ac b/configure.ac
index fd7b64d150..7613848371 100644
--- a/configure.ac
+++ b/configure.ac
@@ -669,7 +669,11 @@ PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [
        PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], 
[use_libftdi=no])
 ])
 
-PKG_CHECK_MODULES([LIBGPIOD], [libgpiod < 2.0], [use_libgpiod=yes], 
[use_libgpiod=no])
+PKG_CHECK_MODULES([LIBGPIOD], [libgpiod < 2.0], [
+       use_libgpiod=yes
+       PKG_CHECK_EXISTS([libgpiod >= 1.5],
+               [AC_DEFINE([HAVE_LIBGPIOD1_FLAGS_BIAS], [1], [define if 
libgpiod v1 has line request flags bias])])
+], [use_libgpiod=no])
 
 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
        [use_libjaylink=yes], [use_libjaylink=no])
diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c
index 9428837883..3ca452357a 100644
--- a/src/jtag/drivers/linuxgpiod.c
+++ b/src/jtag/drivers/linuxgpiod.c
@@ -320,12 +320,12 @@ static int helper_get_line(enum adapter_gpio_config_index 
idx)
 
        switch (adapter_gpio_config[idx].pull) {
        case ADAPTER_GPIO_PULL_NONE:
-#ifdef GPIOD_LINE_REQUEST_FLAG_BIAS_DISABLE
+#ifdef HAVE_LIBGPIOD1_FLAGS_BIAS
                flags |= GPIOD_LINE_REQUEST_FLAG_BIAS_DISABLE;
 #endif
                break;
        case ADAPTER_GPIO_PULL_UP:
-#ifdef GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP
+#ifdef HAVE_LIBGPIOD1_FLAGS_BIAS
                flags |= GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP;
 #else
                LOG_WARNING("linuxgpiod: ignoring request for pull-up on %s: 
not supported by gpiod v%s",
@@ -333,7 +333,7 @@ static int helper_get_line(enum adapter_gpio_config_index 
idx)
 #endif
                break;
        case ADAPTER_GPIO_PULL_DOWN:
-#ifdef GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_DOWN
+#ifdef HAVE_LIBGPIOD1_FLAGS_BIAS
                flags |= GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_DOWN;
 #else
                LOG_WARNING("linuxgpiod: ignoring request for pull-down on %s: 
not supported by gpiod v%s",

-- 

Reply via email to