fusee: Improve integration with the new logging system

fusee: Implement log level configuration from BCT.ini
This commit is contained in:
hexkyz
2018-09-28 21:12:59 +01:00
parent 2e6983d214
commit ca0e41e8a0
16 changed files with 98 additions and 139 deletions

View File

@@ -32,39 +32,12 @@
#include "../max7762x.h"
#include "../lib/log.h"
static SdmmcLogLevel g_sdmmc_log_level = SDMMC_LOG_NONE;
void sdmmc_set_log_level(SdmmcLogLevel log_level)
static void sdmmc_print(sdmmc_t *sdmmc, ScreenLogLevel screen_log_level, char *fmt, va_list list)
{
g_sdmmc_log_level = log_level;
}
static void sdmmc_print(sdmmc_t *sdmmc, SdmmcLogLevel log_level, char *fmt, va_list list)
{
if (log_level > g_sdmmc_log_level)
if (screen_log_level > log_get_log_level())
return;
char sdmmc_fmt[] = "%s: ";
ScreenLogLevel screen_log_level = SCREEN_LOG_LEVEL_ERROR;
switch (log_level) {
case SDMMC_LOG_ERROR:
screen_log_level = SCREEN_LOG_LEVEL_ERROR;
break;
case SDMMC_LOG_WARN:
screen_log_level = SCREEN_LOG_LEVEL_WARNING;
break;
case SDMMC_LOG_INFO:
screen_log_level = SCREEN_LOG_LEVEL_DEBUG;
break;
case SDMMC_LOG_DEBUG:
screen_log_level = SCREEN_LOG_LEVEL_DEBUG;
break;
default:
break;
}
print(screen_log_level, sdmmc_fmt, sdmmc->name);
print(screen_log_level, "%s: ", sdmmc->name);
vprint(screen_log_level, fmt, list);
print(screen_log_level | SCREEN_LOG_LEVEL_NO_PREFIX, "\n");
}
@@ -74,7 +47,7 @@ void sdmmc_error(sdmmc_t *sdmmc, char *fmt, ...)
va_list list;
va_start(list, fmt);
sdmmc_print(sdmmc, SDMMC_LOG_ERROR, fmt, list);
sdmmc_print(sdmmc, SCREEN_LOG_LEVEL_ERROR, fmt, list);
va_end(list);
}
@@ -83,7 +56,7 @@ void sdmmc_warn(sdmmc_t *sdmmc, char *fmt, ...)
va_list list;
va_start(list, fmt);
sdmmc_print(sdmmc, SDMMC_LOG_WARN, fmt, list);
sdmmc_print(sdmmc, SCREEN_LOG_LEVEL_WARNING, fmt, list);
va_end(list);
}
@@ -92,7 +65,7 @@ void sdmmc_info(sdmmc_t *sdmmc, char *fmt, ...)
va_list list;
va_start(list, fmt);
sdmmc_print(sdmmc, SDMMC_LOG_INFO, fmt, list);
sdmmc_print(sdmmc, SCREEN_LOG_LEVEL_INFO, fmt, list);
va_end(list);
}
@@ -101,7 +74,7 @@ void sdmmc_debug(sdmmc_t *sdmmc, char *fmt, ...)
va_list list;
va_start(list, fmt);
sdmmc_print(sdmmc, SDMMC_LOG_DEBUG, fmt, list);
sdmmc_print(sdmmc, SCREEN_LOG_LEVEL_DEBUG, fmt, list);
va_end(list);
}

View File

@@ -181,15 +181,6 @@
#define SDMMC_RSP_SPI_R5 (SDMMC_RSP_SPI_S1|SDMMC_RSP_SPI_S2)
#define SDMMC_RSP_SPI_R7 (SDMMC_RSP_SPI_S1|SDMMC_RSP_SPI_B4)
/* Internal logging */
typedef enum {
SDMMC_LOG_NONE = 0,
SDMMC_LOG_ERROR = 1,
SDMMC_LOG_WARN = 2,
SDMMC_LOG_INFO = 3,
SDMMC_LOG_DEBUG = 4
} SdmmcLogLevel;
/* SDMMC controllers */
typedef enum {
SDMMC_1 = 0,
@@ -306,7 +297,6 @@ int sdmmc_execute_tuning(sdmmc_t *sdmmc, SdmmcBusSpeed bus_speed, uint32_t opcod
int sdmmc_send_cmd(sdmmc_t *sdmmc, sdmmc_command_t *cmd, sdmmc_request_t *req, uint32_t *num_blocks_out);
int sdmmc_load_response(sdmmc_t *sdmmc, uint32_t flags, uint32_t *resp);
int sdmmc_abort(sdmmc_t *sdmmc, uint32_t opcode);
void sdmmc_set_log_level(SdmmcLogLevel log_level);
void sdmmc_error(sdmmc_t *sdmmc, char *fmt, ...);
void sdmmc_warn(sdmmc_t *sdmmc, char *fmt, ...);
void sdmmc_info(sdmmc_t *sdmmc, char *fmt, ...);