This is an automated email from Gerrit.

"Tomas Vanek <van...@fbl.cz>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/8151

-- gerrit

commit 3f109df2e3d8356d27bb165c2e2ba0203e041203
Author: Tomas Vanek <van...@fbl.cz>
Date:   Fri Feb 16 17:40:22 2024 +0100

    helper/log: add LOG_CUSTOM_LEVEL() macro
    
    Allow logging at a changeable level.
    
    Add an example of usage in ftdi driver.
    Log SWD commands with not OK response at debug level (3).
    For commands which responded OK use debug io level (4)
    not to flood the log.
    
    Signed-off-by: Tomas Vanek <van...@fbl.cz>
    Change-Id: I67a472b293f7ed9ee84cadb7c081803e9eeb1ad0

diff --git a/src/helper/log.h b/src/helper/log.h
index ee71bf03f0..818716a9df 100644
--- a/src/helper/log.h
+++ b/src/helper/log.h
@@ -114,6 +114,15 @@ extern int debug_level;
                                expr); \
        } while (0)
 
+#define LOG_CUSTOM_LEVEL(level, expr ...) \
+       do { \
+               enum log_levels _level = level; \
+               if (debug_level >= _level) \
+                       log_printf_lf(_level, \
+                               __FILE__, __LINE__, __func__, \
+                               expr); \
+       } while (0)
+
 #define LOG_INFO(expr ...) \
        log_printf_lf(LOG_LVL_INFO, __FILE__, __LINE__, __func__, expr)
 
diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index 2bde93169e..58f83af592 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -1088,7 +1088,8 @@ static int ftdi_swd_run_queue(void)
                /* Devices do not reply to DP_TARGETSEL write cmd, ignore 
received ack */
                bool check_ack = swd_cmd_returns_ack(swd_cmd_queue[i].cmd);
 
-               LOG_DEBUG_IO("%s%s %s %s reg %X = %08"PRIx32,
+               LOG_CUSTOM_LEVEL((check_ack && ack != SWD_ACK_OK) ? 
LOG_LVL_DEBUG : LOG_LVL_DEBUG_IO,
+                               "%s%s %s %s reg %X = %08" PRIx32,
                                check_ack ? "" : "ack ignored ",
                                ack == SWD_ACK_OK ? "OK" : ack == SWD_ACK_WAIT 
? "WAIT" : ack == SWD_ACK_FAULT ? "FAULT" : "JUNK",
                                swd_cmd_queue[i].cmd & SWD_CMD_APNDP ? "AP" : 
"DP",

-- 

Reply via email to