qcacmn: Add generic logging API adhering to converged framework

As part of cleaning up direct printk calls in WIN driver, a new
generic wrapper API QDF_PRINT_INFO() is added that is based on
the converged QDF debug framework.

All printks in the WIN driver will be replaced by calls to QDF_PRINT_INFO()
which will in-turn compile converged QDF trace API. Generic shared print
control index and module ID are defined for this purpose.

Change-Id: I818fbce9e46526ccdb4824d988b76c43e43eb3a4
CRs-Fixed: 1106829
Cette révision appartient à :
Sathish Kumar
2017-01-04 12:02:24 +05:30
révisé par qcabuildsw
Parent 01abf4d3d1
révision 59113a4840
5 fichiers modifiés avec 60 ajouts et 9 suppressions

Voir le fichier

@@ -35,7 +35,8 @@ linux/src/qdf_mem.o \
linux/src/qdf_module.o \
linux/src/qdf_nbuf.o \
linux/src/qdf_perf.o \
linux/src/qdf_threads.o
linux/src/qdf_threads.o \
linux/src/qdf_trace.o
#linux/src/qdf_net.o \
#linux/src/qdf_net_event.o \
#linux/src/qdf_net_ioctl.o

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
* Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -85,6 +85,34 @@ typedef enum {
#define QDF_DEBUG_ERROR 0x20
#define QDF_DEBUG_CFG 0x40
/*
* Shared print control index
* for converged debug framework
*/
#define QDF_PRINT_IDX_SHARED -1
/**
* QDF_PRINT_INFO() - Generic wrapper API for logging
* @idx: Index of print control object
* @module: Module identifier. A member of QDF_MODULE_ID enumeration that
* identifies the module issuing the trace message
* @level: Trace level. A member of QDF_TRACE_LEVEL enumeration indicating
* the severity of the condition causing the trace message to be
* issued.
* @str_format: Format string that contains the message to be logged.
* @...:.
*
*
* This wrapper will be used for any generic logging messages. Wrapper will
* compile a call to converged QDF trace message API.
*
* Return: Nothing
*
*/
void QDF_PRINT_INFO(unsigned int idx, QDF_MODULE_ID module,
QDF_TRACE_LEVEL level,
char *str_format, ...);
#ifdef CONFIG_MCL
/* By default Data Path module will have all log levels enabled, except debug
* log level. Debug level will be left up to the framework or user space modules
@@ -103,8 +131,6 @@ typedef enum {
#define INVALID_QDF_TRACE_ADDR 0xffffffff
#define DEFAULT_QDF_TRACE_DUMP_COUNT 0
#include <i_qdf_trace.h>
#define DUMP_DP_TRACE 0
#define ENABLE_DP_TRACE_LIVE_MODE 1
#define CLEAR_DP_TRACE_BUFFER 2

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
* Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -245,12 +245,12 @@ typedef void (*qdf_timer_func_t)(void *);
* @QDF_MODULE_ID_TARGET_IF: Scheduler target interface queue module ID
* @QDF_MODULE_ID_SCHEDULER: Scheduler's module ID
* @QDF_MODULE_ID_MGMT_TXRX: MGMT_TXRX module ID
* @QDF_MODULE_ID_ANY: Generic module ID
* @QDF_MODULE_ID_MAX: Max place holder module ID
*
* These are generic IDs that identify the various modules in the software
* system
* 0 is unused for historical purposes
* 3 & 4 are unused for historical purposes
* 0 & 4 are unused for historical purposes
*/
typedef enum {
QDF_MODULE_ID_TLSHIM = 1,
@@ -281,6 +281,7 @@ typedef enum {
QDF_MODULE_ID_TARGET_IF = 27,
QDF_MODULE_ID_SCHEDULER = 28,
QDF_MODULE_ID_MGMT_TXRX = 29,
QDF_MODULE_ID_ANY = 30,
QDF_MODULE_ID_MAX
} QDF_MODULE_ID;

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
* Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
* Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -33,6 +33,10 @@
/* Include Files */
#include <qdf_trace.h>
#include <linux/export.h>
#ifdef CONFIG_MCL
#include <wlan_logging_sock_svc.h>
#include "qdf_time.h"
#include "qdf_mc_timer.h"
@@ -1718,3 +1722,22 @@ void qdf_dp_trace_dump_all(uint32_t count)
}
EXPORT_SYMBOL(qdf_dp_trace_dump_all);
#endif
#endif /* CONFIG_MCL */
void QDF_PRINT_INFO(unsigned int idx, QDF_MODULE_ID module,
QDF_TRACE_LEVEL level,
char *str_format, ...)
{
va_list args;
/* Generic wrapper API will compile qdf_vprint in order to
* log the message. Once QDF converged debug framework is in
* place, this will be changed to adapt to the framework, compiling
* call to converged tracing API
*/
va_start(args, str_format);
qdf_vprint(str_format, args);
va_end(args);
}
EXPORT_SYMBOL(QDF_PRINT_INFO);