From 2dde7e914b429ffa5bc56faa20fb474ca451412e Mon Sep 17 00:00:00 2001 From: Tomas Vanek Date: Thu, 13 Oct 2022 22:33:12 +0200 Subject: [PATCH] jtag/drivers/bcm2835gpio: refactor delays to inline function No functional change, the delay is unchanged. Change-Id: I5b5e837d741ac01fc573657357c5fe61ad901319 Signed-off-by: Tomas Vanek Reviewed-on: https://review.openocd.org/c/openocd/+/7262 Tested-by: jenkins Reviewed-by: Antonio Borneo --- src/jtag/drivers/bcm2835gpio.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/jtag/drivers/bcm2835gpio.c b/src/jtag/drivers/bcm2835gpio.c index 320baba09..635d9a5ff 100644 --- a/src/jtag/drivers/bcm2835gpio.c +++ b/src/jtag/drivers/bcm2835gpio.c @@ -66,6 +66,12 @@ static inline void bcm2835_gpio_synchronize(void) __sync_synchronize(); } +static inline void bcm2835_delay(void) +{ + for (unsigned int i = 0; i < jtag_delay; i++) + asm volatile (""); +} + static bool is_gpio_config_valid(enum adapter_gpio_config_index idx) { /* Only chip 0 is supported, accept unset value (-1) too */ @@ -178,8 +184,7 @@ static int bcm2835gpio_write(int tck, int tms, int tdi) GPIO_CLR = clear; bcm2835_gpio_synchronize(); - for (unsigned int i = 0; i < jtag_delay; i++) - asm volatile (""); + bcm2835_delay(); return ERROR_OK; } @@ -199,8 +204,7 @@ static int bcm2835gpio_swd_write_fast(int swclk, int swdio) GPIO_CLR = clear; bcm2835_gpio_synchronize(); - for (unsigned int i = 0; i < jtag_delay; i++) - asm volatile (""); + bcm2835_delay(); return ERROR_OK; } @@ -211,8 +215,7 @@ static int bcm2835gpio_swd_write_generic(int swclk, int swdio) set_gpio_value(&adapter_gpio_config[ADAPTER_GPIO_IDX_SWDIO], swdio); set_gpio_value(&adapter_gpio_config[ADAPTER_GPIO_IDX_SWCLK], swclk); /* Write clock last */ - for (unsigned int i = 0; i < jtag_delay; ++i) - asm volatile (""); + bcm2835_delay(); return ERROR_OK; }