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/+/8499

-- gerrit

commit 920cdd251b1bc7e8dc4857f5ad1e9cd3d13829d0
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Mon Sep 16 10:58:37 2024 +0200

    jtag: bcm2835gpio: fix macro definition
    
    The macros trigger few errors with checkpatch:
    
            ERROR:MACRO_ARG_REUSE: Macro argument reuse 'g' - possible
            side-effects?
    
            ERROR:TRAILING_STATEMENTS: trailing statements should be
            on next line
    
            ERROR:SPACING: spaces preferred around (several cases)
    
            ERROR:SINGLE_STATEMENT_DO_WHILE_MACRO: Single statement
            macros should not use a do {} while (0) loop
    
    plus an empty line triggers
    
            ERROR:BRACES: Blank lines aren't necessary before a close
            brace '}'
    
    Fix them!
    
    Change-Id: I0690b68b511ed7f45a7e0909a0addd2822ba9fe8
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/jtag/drivers/bcm2835gpio.c b/src/jtag/drivers/bcm2835gpio.c
index ff10b0a78c..61f895bb37 100644
--- a/src/jtag/drivers/bcm2835gpio.c
+++ b/src/jtag/drivers/bcm2835gpio.c
@@ -31,16 +31,30 @@ static off_t bcm2835_peri_base = 0x20000000;
 #define BCM2835_GPIO_MODE_OUTPUT 1
 
 /* GPIO setup macros */
-#define MODE_GPIO(g) (*(pio_base+((g)/10))>>(((g)%10)*3) & 7)
-#define INP_GPIO(g) do { *(pio_base+((g)/10)) &= ~(7<<(((g)%10)*3)); } while 
(0)
-#define SET_MODE_GPIO(g, m) do { /* clear the mode bits first, then set as 
necessary */ \
-               INP_GPIO(g);                                            \
-               *(pio_base+((g)/10)) |=  ((m)<<(((g)%10)*3)); } while (0)
+#define MODE_GPIO(_g) ({                                   \
+       typeof(_g) g = (_g);                                   \
+       typeof(_g) _ret;                                       \
+       _ret = (*(pio_base + (g / 10)) >> ((g % 10) * 3) & 7); \
+       _ret;                                                  \
+})
+
+#define INP_GPIO(_g) do {                             \
+       typeof(_g) g = (_g);                              \
+       *(pio_base + (g / 10)) &= ~(7 << ((g % 10) * 3)); \
+} while (0)
+
+#define SET_MODE_GPIO(_g, m) do {                          \
+       typeof(_g) g = (_g);                                   \
+       /* clear the mode bits first, then set as necessary */ \
+       INP_GPIO(g);                                           \
+       *(pio_base + (g / 10)) |= ((m) << ((g % 10) * 3));     \
+} while (0)
+
 #define OUT_GPIO(g) SET_MODE_GPIO(g, BCM2835_GPIO_MODE_OUTPUT)
 
-#define GPIO_SET (*(pio_base+7))  /* sets   bits which are 1, ignores bits 
which are 0 */
-#define GPIO_CLR (*(pio_base+10)) /* clears bits which are 1, ignores bits 
which are 0 */
-#define GPIO_LEV (*(pio_base+13)) /* current level of the pin */
+#define GPIO_SET (*(pio_base + 7))  /* sets   bits which are 1, ignores bits 
which are 0 */
+#define GPIO_CLR (*(pio_base + 10)) /* clears bits which are 1, ignores bits 
which are 0 */
+#define GPIO_LEV (*(pio_base + 13)) /* current level of the pin */
 
 static int dev_mem_fd;
 static volatile uint32_t *pio_base = MAP_FAILED;
@@ -175,7 +189,6 @@ static bb_value_t bcm2835gpio_read(void)
        unsigned int shift = adapter_gpio_config[ADAPTER_GPIO_IDX_TDO].gpio_num;
        uint32_t value = (GPIO_LEV >> shift) & 1;
        return value ^ (adapter_gpio_config[ADAPTER_GPIO_IDX_TDO].active_low ? 
BB_HIGH : BB_LOW);
-
 }
 
 static int bcm2835gpio_write(int tck, int tms, int tdi)

-- 

Reply via email to