[PATCH]: bb83b9e105 jtag: linuxgpiod: replace gpiod_chip_open_by_number()
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8201 -- gerrit commit bb83b9e1059aee205f80e5985258f1959718e61a Author: Antonio Borneo Date: Sun Apr 7 16:00:14 2024 +0200 jtag: linuxgpiod: replace gpiod_chip_open_by_number() Preparing for libgpiod v2, replace v1 specific function gpiod_chip_open_by_number() with the common v1 & v2 function gpiod_chip_open(). Change-Id: I5f0f9bef739f4097fb74f78b5b6e2fe823c1ab87 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 1926ed9ae6..156e9cb2f5 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -275,12 +275,15 @@ static int linuxgpiod_quit(void) static int helper_get_line(enum adapter_gpio_config_index idx) { + char chip_path[24]; + if (!is_gpio_config_valid(idx)) return ERROR_OK; int dir = GPIOD_LINE_REQUEST_DIRECTION_INPUT, flags = 0, val = 0, retval; - gpiod_chip[idx] = gpiod_chip_open_by_number(adapter_gpio_config[idx].chip_num); + snprintf(chip_path, sizeof(chip_path), "/dev/gpiochip%u", adapter_gpio_config[idx].chip_num); + gpiod_chip[idx] = gpiod_chip_open(chip_path); if (!gpiod_chip[idx]) { LOG_ERROR("Cannot open LinuxGPIOD chip %d for %s", adapter_gpio_config[idx].chip_num, adapter_gpio_get_name(idx)); --
[PATCH]: 5e16466f9b jtag: linuxgpiod: use libgpiod v2 API for gpiod_line_request()
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8207 -- gerrit commit 5e16466f9b78696fbc44d6c2c0ca069f9aa0c310 Author: Antonio Borneo Date: Sun Apr 7 21:15:48 2024 +0200 jtag: linuxgpiod: use libgpiod v2 API for gpiod_line_request() Work in progress. Target is to replace v1 gpiod_line_request() Define and use dummy functions from v2 for v1: - gpiod_line_config_new(), - gpiod_line_config_free(), - gpiod_line_config_add_line_settings(), - gpiod_chip_request_lines(). Change-Id: I9e2d3013845c5d12942f5e07c9721fcd151d6840 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 21983c97ea..c7c3ae65b7 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -49,6 +49,11 @@ struct gpiod_line_settings { int active_low; }; +struct gpiod_line_config { + unsigned int gpio_num; + struct gpiod_line_settings *line_settings; +}; + static struct gpiod_line_settings *gpiod_line_settings_new(void) { static struct gpiod_line_settings my; @@ -58,6 +63,15 @@ static struct gpiod_line_settings *gpiod_line_settings_new(void) return } +static struct gpiod_line_config *gpiod_line_config_new(void) +{ + static struct gpiod_line_config my; + + my = (struct gpiod_line_config) { 0 }; + + return +} + static struct gpiod_request_config *gpiod_request_config_new(void) { static struct gpiod_request_config my; @@ -71,6 +85,10 @@ static void gpiod_line_settings_free(struct gpiod_line_settings *settings) { } +static void gpiod_line_config_free(struct gpiod_line_config *config) +{ +} + static void gpiod_request_config_free(struct gpiod_request_config *config) { } @@ -111,6 +129,23 @@ static void gpiod_request_config_set_consumer(struct gpiod_request_config *confi config->consumer = consumer; } +static int gpiod_line_config_add_line_settings(struct gpiod_line_config *config, + const unsigned int *offsets, size_t num_offsets, struct gpiod_line_settings *settings) +{ + assert(num_offsets == 1); + + config->gpio_num = *offsets; + config->line_settings = settings; + + return 0; +} + +static struct gpiod_line_request *gpiod_chip_request_lines(struct gpiod_chip *chip, + struct gpiod_request_config *req_cfg, struct gpiod_line_config *line_cfg) +{ + return NULL; +} + #ifdef HAVE_LIBGPIOD1_FLAGS_BIAS static int gpiod_line_settings_set_bias(struct gpiod_line_settings *settings, int bias) @@ -415,9 +450,10 @@ static int helper_get_line(enum adapter_gpio_config_index idx) } struct gpiod_line_settings *line_settings = gpiod_line_settings_new(); + struct gpiod_line_config *line_config = gpiod_line_config_new(); struct gpiod_request_config *req_cfg = gpiod_request_config_new(); - if (!line_settings || !req_cfg) { + if (!line_settings || !line_config || !req_cfg) { LOG_ERROR("Cannot configure LinuxGPIOD line for %s", adapter_gpio_get_name(idx)); retval = ERROR_JTAG_INIT_FAILED; goto err_out; @@ -479,6 +515,7 @@ static int helper_get_line(enum adapter_gpio_config_index idx) err_out: gpiod_line_settings_free(line_settings); + gpiod_line_config_free(line_config); gpiod_request_config_free(req_cfg); return retval; --
[PATCH]: 57088de421 jtag: linuxgpiod: use libgpiod v2 API to set gpio bias
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8205 -- gerrit commit 57088de421b19d7aef1a26c49e018ca20a97d8ca Author: Antonio Borneo Date: Sun Apr 7 18:25:49 2024 +0200 jtag: linuxgpiod: use libgpiod v2 API to set gpio bias Define and use dummy functions from v2 for v1: - gpiod_line_settings_set_bias(). Change-Id: I96d32b6200d3bb6ca7c16e7a18e3860f367b5008 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 42f3101ce8..96d915e291 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -35,12 +35,17 @@ #define GPIOD_LINE_DRIVE_OPEN_DRAIN GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN #define GPIOD_LINE_DRIVE_OPEN_SOURCEGPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE +#define GPIOD_LINE_BIAS_DISABLEDGPIOD_LINE_REQUEST_FLAG_BIAS_DISABLE +#define GPIOD_LINE_BIAS_PULL_UP GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP +#define GPIOD_LINE_BIAS_PULL_DOWN GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_DOWN + #define gpiod_request_configgpiod_line_request_config struct gpiod_line_settings { int direction; int value; int drive; + int bias; }; static struct gpiod_line_settings *gpiod_line_settings_new(void) @@ -98,6 +103,30 @@ static void gpiod_request_config_set_consumer(struct gpiod_request_config *confi config->consumer = consumer; } +#ifdef HAVE_LIBGPIOD1_FLAGS_BIAS + +static int gpiod_line_settings_set_bias(struct gpiod_line_settings *settings, int bias) +{ + settings->bias = bias; + + return 0; +} + +#else /* HAVE_LIBGPIOD1_FLAGS_BIAS */ + +static int gpiod_line_settings_set_bias(struct gpiod_line_settings *settings, int bias) +{ + if (bias == GPIOD_LINE_BIAS_DISABLED) + return 0; + + LOG_WARNING("linuxgpiod: ignoring request for pull-%s: not supported by gpiod v%s", + (bias == GPIOD_LINE_BIAS_PULL_UP) ? "up" : "down", + gpiod_version_string()); + + return -1; +} + +#endif /* HAVE_LIBGPIOD1_FLAGS_BIAS */ #endif /* HAVE_LIBGPIOD_V1 */ static struct gpiod_chip *gpiod_chip[ADAPTER_GPIO_IDX_NUM] = {}; @@ -416,25 +445,13 @@ static int helper_get_line(enum adapter_gpio_config_index idx) switch (adapter_gpio_config[idx].pull) { case ADAPTER_GPIO_PULL_NONE: -#ifdef HAVE_LIBGPIOD1_FLAGS_BIAS - flags |= GPIOD_LINE_REQUEST_FLAG_BIAS_DISABLE; -#endif + gpiod_line_settings_set_bias(line_settings, GPIOD_LINE_BIAS_DISABLED); break; case ADAPTER_GPIO_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", - adapter_gpio_get_name(idx), gpiod_version_string()); -#endif + gpiod_line_settings_set_bias(line_settings, GPIOD_LINE_BIAS_PULL_UP); break; case ADAPTER_GPIO_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", - adapter_gpio_get_name(idx), gpiod_version_string()); -#endif + gpiod_line_settings_set_bias(line_settings, GPIOD_LINE_BIAS_PULL_DOWN); break; } @@ -442,7 +459,7 @@ static int helper_get_line(enum adapter_gpio_config_index idx) flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; req_cfg->request_type = line_settings->direction; - req_cfg->flags = flags | line_settings->drive; + req_cfg->flags = flags | line_settings->drive | line_settings->bias; retval = gpiod_line_request(gpiod_line[idx], req_cfg, line_settings->value); if (retval < 0) { --
[PATCH]: 3688a99a13 jtag: linuxgpiod: use libgpiod v2 API to set gpio drive
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8204 -- gerrit commit 3688a99a13f970b875f932ba0e8a18c8bd4c229b Author: Antonio Borneo Date: Sun Apr 7 18:15:48 2024 +0200 jtag: linuxgpiod: use libgpiod v2 API to set gpio drive Define and use dummy functions from v2 for v1: - gpiod_line_settings_set_drive(). Change-Id: Ic058e85c441c9f8db63919be5166172be5b72221 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index b9e5c18ab0..42f3101ce8 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -31,11 +31,16 @@ #define GPIOD_LINE_VALUE_INACTIVE 0 #define GPIOD_LINE_VALUE_ACTIVE 1 +#define GPIOD_LINE_DRIVE_PUSH_PULL 0 +#define GPIOD_LINE_DRIVE_OPEN_DRAIN GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN +#define GPIOD_LINE_DRIVE_OPEN_SOURCEGPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE + #define gpiod_request_configgpiod_line_request_config struct gpiod_line_settings { int direction; int value; + int drive; }; static struct gpiod_line_settings *gpiod_line_settings_new(void) @@ -80,6 +85,13 @@ static int gpiod_line_settings_set_output_value(struct gpiod_line_settings *sett return 0; } +static int gpiod_line_settings_set_drive(struct gpiod_line_settings *settings, int drive) +{ + settings->drive = drive; + + return 0; +} + static void gpiod_request_config_set_consumer(struct gpiod_request_config *config, const char *consumer) { @@ -392,12 +404,13 @@ static int helper_get_line(enum adapter_gpio_config_index idx) switch (adapter_gpio_config[idx].drive) { case ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL: + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_PUSH_PULL); break; case ADAPTER_GPIO_DRIVE_MODE_OPEN_DRAIN: - flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN; + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_OPEN_DRAIN); break; case ADAPTER_GPIO_DRIVE_MODE_OPEN_SOURCE: - flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE; + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_OPEN_SOURCE); break; } @@ -429,7 +442,7 @@ static int helper_get_line(enum adapter_gpio_config_index idx) flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; req_cfg->request_type = line_settings->direction; - req_cfg->flags = flags; + req_cfg->flags = flags | line_settings->drive; retval = gpiod_line_request(gpiod_line[idx], req_cfg, line_settings->value); if (retval < 0) { --
[PATCH]: c25856ef15 jtag: linuxgpiod: use libgpiod v2 to set gpio state
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8203 -- gerrit commit c25856ef159d16a02a75a359c480cc24dc58e2a9 Author: Antonio Borneo Date: Sun Apr 7 17:45:07 2024 +0200 jtag: linuxgpiod: use libgpiod v2 to set gpio state Define and use dummy functions from v2 for v1: - gpiod_line_settings_new(), - gpiod_line_settings_free(), - gpiod_line_settings_set_direction(), - gpiod_line_settings_set_output_value(). Change-Id: I7d147fa49daf1d008744fab5bf0001c570ea43d6 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index f0ff9b03e3..b9e5c18ab0 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -25,8 +25,28 @@ */ #if HAVE_LIBGPIOD_V1 +#define GPIOD_LINE_DIRECTION_INPUT GPIOD_LINE_REQUEST_DIRECTION_INPUT +#define GPIOD_LINE_DIRECTION_OUTPUT GPIOD_LINE_REQUEST_DIRECTION_OUTPUT + +#define GPIOD_LINE_VALUE_INACTIVE 0 +#define GPIOD_LINE_VALUE_ACTIVE 1 + #define gpiod_request_configgpiod_line_request_config +struct gpiod_line_settings { + int direction; + int value; +}; + +static struct gpiod_line_settings *gpiod_line_settings_new(void) +{ + static struct gpiod_line_settings my; + + my = (struct gpiod_line_settings) { 0 }; + + return +} + static struct gpiod_request_config *gpiod_request_config_new(void) { static struct gpiod_request_config my; @@ -36,10 +56,30 @@ static struct gpiod_request_config *gpiod_request_config_new(void) return } +static void gpiod_line_settings_free(struct gpiod_line_settings *settings) +{ +} + static void gpiod_request_config_free(struct gpiod_request_config *config) { } +static int gpiod_line_settings_set_direction(struct gpiod_line_settings *settings, + int direction) +{ + settings->direction = direction; + + return 0; +} + +static int gpiod_line_settings_set_output_value(struct gpiod_line_settings *settings, + int value) +{ + settings->value = value; + + return 0; +} + static void gpiod_request_config_set_consumer(struct gpiod_request_config *config, const char *consumer) { @@ -309,7 +349,7 @@ static int helper_get_line(enum adapter_gpio_config_index idx) if (!is_gpio_config_valid(idx)) return ERROR_OK; - int dir = GPIOD_LINE_REQUEST_DIRECTION_INPUT, flags = 0, val = 0, retval; + int flags = 0, retval; snprintf(chip_path, sizeof(chip_path), "/dev/gpiochip%u", adapter_gpio_config[idx].chip_num); gpiod_chip[idx] = gpiod_chip_open(chip_path); @@ -325,8 +365,10 @@ static int helper_get_line(enum adapter_gpio_config_index idx) return ERROR_JTAG_INIT_FAILED; } + struct gpiod_line_settings *line_settings = gpiod_line_settings_new(); struct gpiod_request_config *req_cfg = gpiod_request_config_new(); - if (!req_cfg) { + + if (!line_settings || !req_cfg) { LOG_ERROR("Cannot configure LinuxGPIOD line for %s", adapter_gpio_get_name(idx)); retval = ERROR_JTAG_INIT_FAILED; goto err_out; @@ -336,15 +378,15 @@ static int helper_get_line(enum adapter_gpio_config_index idx) switch (adapter_gpio_config[idx].init_state) { case ADAPTER_GPIO_INIT_STATE_INPUT: - dir = GPIOD_LINE_REQUEST_DIRECTION_INPUT; + gpiod_line_settings_set_direction(line_settings, GPIOD_LINE_DIRECTION_INPUT); break; case ADAPTER_GPIO_INIT_STATE_INACTIVE: - dir = GPIOD_LINE_REQUEST_DIRECTION_OUTPUT; - val = 0; + gpiod_line_settings_set_direction(line_settings, GPIOD_LINE_DIRECTION_OUTPUT); + gpiod_line_settings_set_output_value(line_settings, GPIOD_LINE_VALUE_INACTIVE); break; case ADAPTER_GPIO_INIT_STATE_ACTIVE: - dir = GPIOD_LINE_REQUEST_DIRECTION_OUTPUT; - val = 1; + gpiod_line_settings_set_direction(line_settings, GPIOD_LINE_DIRECTION_OUTPUT); + gpiod_line_settings_set_output_value(line_settings, GPIOD_LINE_VALUE_ACTIVE); break; } @@ -386,10 +428,10 @@ static int helper_get_line(enum adapter_gpio_config_index idx) if (adapter_gpio_config[idx].active_low) flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; - req_cfg->request_type = dir; + req_cfg->request_type = line_settings->direction; req_cfg->flags = flags; - retval = gpiod_line_request(gpiod_line[idx], req_cfg, val); + retval = gpiod_line_request(gpiod_line[idx], req_cfg, line_settings->value); if (retval < 0) { LOG_ERROR("Error requesting gpio line %s", adapter_gpio_get_name(idx)); retval =
[PATCH]: 86036f4390 jtag: linuxgpiod: use libgpiod v2 API to set gpio active_low
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8206 -- gerrit commit 86036f439052e58a0f5c24be79cc51956fd2bc0f Author: Antonio Borneo Date: Sun Apr 7 18:32:45 2024 +0200 jtag: linuxgpiod: use libgpiod v2 API to set gpio active_low Define and use dummy functions from v2 for v1: - gpiod_line_settings_set_active_low(). Change-Id: I2c00e1a71950215c47dc07d71af4f319434a266a Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 96d915e291..21983c97ea 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -46,6 +46,7 @@ struct gpiod_line_settings { int value; int drive; int bias; + int active_low; }; static struct gpiod_line_settings *gpiod_line_settings_new(void) @@ -97,6 +98,13 @@ static int gpiod_line_settings_set_drive(struct gpiod_line_settings *settings, i return 0; } +static void gpiod_line_settings_set_active_low(struct gpiod_line_settings *settings, + bool active_low) +{ + if (active_low) + settings->active_low = GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; +} + static void gpiod_request_config_set_consumer(struct gpiod_request_config *config, const char *consumer) { @@ -455,11 +463,10 @@ static int helper_get_line(enum adapter_gpio_config_index idx) break; } - if (adapter_gpio_config[idx].active_low) - flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; + gpiod_line_settings_set_active_low(line_settings, adapter_gpio_config[idx].active_low); req_cfg->request_type = line_settings->direction; - req_cfg->flags = flags | line_settings->drive | line_settings->bias; + req_cfg->flags = flags | line_settings->drive | line_settings->bias | line_settings->active_low; retval = gpiod_line_request(gpiod_line[idx], req_cfg, line_settings->value); if (retval < 0) { --
[PATCH]: 537735347b jtag: linuxgpiod: wrap gpiod_request_config from libgpiod v2
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8202 -- gerrit commit 537735347b061298209e727a7e9688b057533bb4 Author: Antonio Borneo Date: Sun Apr 7 17:18:40 2024 +0200 jtag: linuxgpiod: wrap gpiod_request_config from libgpiod v2 Reorganize the code of helper_get_line() for label err_out. Define and use dummy functions from v2 for v1: - gpiod_request_config_new(), - gpiod_request_config_free(), - gpiod_request_config_set_consumer(). Change-Id: Ide7cd8459941a5a863c425a2b5abf1fb4a075874 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 156e9cb2f5..f0ff9b03e3 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -19,6 +19,35 @@ #include #include "bitbang.h" +/* + * In case of libgpiod v1, use as much as possible API from v2 plus + * the dummy wrappers below. + */ +#if HAVE_LIBGPIOD_V1 + +#define gpiod_request_configgpiod_line_request_config + +static struct gpiod_request_config *gpiod_request_config_new(void) +{ + static struct gpiod_request_config my; + + my = (struct gpiod_request_config) { NULL }; + + return +} + +static void gpiod_request_config_free(struct gpiod_request_config *config) +{ +} + +static void gpiod_request_config_set_consumer(struct gpiod_request_config *config, + const char *consumer) +{ + config->consumer = consumer; +} + +#endif /* HAVE_LIBGPIOD_V1 */ + static struct gpiod_chip *gpiod_chip[ADAPTER_GPIO_IDX_NUM] = {}; static struct gpiod_line *gpiod_line[ADAPTER_GPIO_IDX_NUM] = {}; @@ -296,6 +325,15 @@ static int helper_get_line(enum adapter_gpio_config_index idx) return ERROR_JTAG_INIT_FAILED; } + struct gpiod_request_config *req_cfg = gpiod_request_config_new(); + if (!req_cfg) { + LOG_ERROR("Cannot configure LinuxGPIOD line for %s", adapter_gpio_get_name(idx)); + retval = ERROR_JTAG_INIT_FAILED; + goto err_out; + } + + gpiod_request_config_set_consumer(req_cfg, "OpenOCD"); + switch (adapter_gpio_config[idx].init_state) { case ADAPTER_GPIO_INIT_STATE_INPUT: dir = GPIOD_LINE_REQUEST_DIRECTION_INPUT; @@ -348,19 +386,22 @@ static int helper_get_line(enum adapter_gpio_config_index idx) if (adapter_gpio_config[idx].active_low) flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; - struct gpiod_line_request_config config = { - .consumer = "OpenOCD", - .request_type = dir, - .flags = flags, - }; + req_cfg->request_type = dir; + req_cfg->flags = flags; - retval = gpiod_line_request(gpiod_line[idx], , val); + retval = gpiod_line_request(gpiod_line[idx], req_cfg, val); if (retval < 0) { LOG_ERROR("Error requesting gpio line %s", adapter_gpio_get_name(idx)); - return ERROR_JTAG_INIT_FAILED; + retval = ERROR_JTAG_INIT_FAILED; + goto err_out; } - return ERROR_OK; + retval = ERROR_OK; + +err_out: + gpiod_request_config_free(req_cfg); + + return retval; } static int linuxgpiod_init(void) --
[PATCH]: 708e1d9210 doc: style: report indentation of multi-line condition
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8199 -- gerrit commit 708e1d92101e28f7cbd33f6207231ee47676d01c Author: Antonio Borneo Date: Sun Apr 7 12:41:48 2024 +0200 doc: style: report indentation of multi-line condition To help readability and discriminate the 'then' block from the multi-line condition, suggest to increase the indentation of the condition. Change-Id: I02e3834be3001e7ecf24349ad3cefe94b27b79c8 Signed-off-by: Antonio Borneo diff --git a/doc/manual/style.txt b/doc/manual/style.txt index 1d3ec6748d..a1e6b8f016 100644 --- a/doc/manual/style.txt +++ b/doc/manual/style.txt @@ -97,6 +97,21 @@ OpenOCD project. x = 0; } @endcode +- on if statements where the condition is split among multiple + lines, increase the indentation of the condition to prevent it to match + to the indentation of the then block due to length of 'if (' + being same of the TAB width of 4 characters. Use: + @code + if (CMD_ARGC < 3 + || CMD_ARGC > 8) + return ERROR_COMMAND_SYNTAX_ERROR; + @endcode + instead of: + @code + if (CMD_ARGC < 3 || + CMD_ARGC > 8) + return ERROR_COMMAND_SYNTAX_ERROR; + @endcode Finally, try to avoid lines of code that are longer than 72-80 columns: --
[PATCH]: d0522a97d6 jtag: linuxgpiod: minor alignment to coding style
This is an automated email from Gerrit. "Antonio Borneo " just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8200 -- gerrit commit d0522a97d673f0c1e380bd91c9cc77d507814962 Author: Antonio Borneo Date: Sun Apr 7 12:28:55 2024 +0200 jtag: linuxgpiod: minor alignment to coding style Avoid double TAB in 'then' block by increasing indentation of the multi-line condition. Change-Id: I7f5a4437fe4f74228f1b0d98e5c5921af4fd36b8 Signed-off-by: Antonio Borneo diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index 2f3d644542..1926ed9ae6 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -378,12 +378,12 @@ static int linuxgpiod_init(void) goto out_error; } - if (helper_get_line(ADAPTER_GPIO_IDX_TDO) != ERROR_OK || - helper_get_line(ADAPTER_GPIO_IDX_TDI) != ERROR_OK || - helper_get_line(ADAPTER_GPIO_IDX_TCK) != ERROR_OK || - helper_get_line(ADAPTER_GPIO_IDX_TMS) != ERROR_OK || - helper_get_line(ADAPTER_GPIO_IDX_TRST) != ERROR_OK) - goto out_error; + if (helper_get_line(ADAPTER_GPIO_IDX_TDO) != ERROR_OK + || helper_get_line(ADAPTER_GPIO_IDX_TDI) != ERROR_OK + || helper_get_line(ADAPTER_GPIO_IDX_TCK) != ERROR_OK + || helper_get_line(ADAPTER_GPIO_IDX_TMS) != ERROR_OK + || helper_get_line(ADAPTER_GPIO_IDX_TRST) != ERROR_OK) + goto out_error; } if (transport_is_swd()) { @@ -413,9 +413,9 @@ static int linuxgpiod_init(void) goto out_error; } - if (helper_get_line(ADAPTER_GPIO_IDX_SRST) != ERROR_OK || - helper_get_line(ADAPTER_GPIO_IDX_LED) != ERROR_OK) - goto out_error; + if (helper_get_line(ADAPTER_GPIO_IDX_SRST) != ERROR_OK + || helper_get_line(ADAPTER_GPIO_IDX_LED) != ERROR_OK) + goto out_error; return ERROR_OK; --