2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-23 04:54:01 +08:00

ath: Add support for tracing

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Sujith Manoharan 2014-09-27 13:27:45 +05:30 committed by John W. Linville
parent f6cd071891
commit e6664dff06
6 changed files with 107 additions and 0 deletions

View File

@ -25,6 +25,14 @@ config ATH_DEBUG
Say Y, if you want to debug atheros wireless drivers. Say Y, if you want to debug atheros wireless drivers.
Right now only ath9k makes use of this. Right now only ath9k makes use of this.
config ATH_TRACEPOINTS
bool "Atheros wireless tracing"
depends on ATH_DEBUG
depends on EVENT_TRACING
---help---
This option enables tracepoints for atheros wireless drivers.
Currently, ath9k makes use of this facility.
config ATH_REG_DYNAMIC_USER_REG_HINTS config ATH_REG_DYNAMIC_USER_REG_HINTS
bool "Atheros dynamic user regulatory hints" bool "Atheros dynamic user regulatory hints"
depends on CFG80211_CERTIFICATION_ONUS depends on CFG80211_CERTIFICATION_ONUS

View File

@ -17,4 +17,8 @@ ath-objs := main.o \
dfs_pri_detector.o dfs_pri_detector.o
ath-$(CONFIG_ATH_DEBUG) += debug.o ath-$(CONFIG_ATH_DEBUG) += debug.o
ath-$(CONFIG_ATH_TRACEPOINTS) += trace.o
ccflags-y += -D__CHECK_ENDIAN__ ccflags-y += -D__CHECK_ENDIAN__
CFLAGS_trace.o := -I$(src)

View File

@ -268,6 +268,7 @@ enum ATH_DEBUG {
}; };
#define ATH_DBG_DEFAULT (ATH_DBG_FATAL) #define ATH_DBG_DEFAULT (ATH_DBG_FATAL)
#define ATH_DBG_MAX_LEN 512
#ifdef CONFIG_ATH_DEBUG #ifdef CONFIG_ATH_DEBUG

View File

@ -20,6 +20,7 @@
#include <linux/module.h> #include <linux/module.h>
#include "ath.h" #include "ath.h"
#include "trace.h"
MODULE_AUTHOR("Atheros Communications"); MODULE_AUTHOR("Atheros Communications");
MODULE_DESCRIPTION("Shared library for Atheros wireless LAN cards."); MODULE_DESCRIPTION("Shared library for Atheros wireless LAN cards.");
@ -84,6 +85,8 @@ void ath_printk(const char *level, const struct ath_common* common,
else else
printk("%sath: %pV", level, &vaf); printk("%sath: %pV", level, &vaf);
trace_ath_log(common->hw->wiphy, &vaf);
va_end(args); va_end(args);
} }
EXPORT_SYMBOL(ath_printk); EXPORT_SYMBOL(ath_printk);

View File

@ -0,0 +1,20 @@
/*
* Copyright (c) 2014 Qualcomm Atheros, Inc.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <linux/module.h>
#define CREATE_TRACE_POINTS
#include "trace.h"

View File

@ -0,0 +1,71 @@
/*
* Copyright (c) 2014 Qualcomm Atheros, Inc.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#if !defined(_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_H
#include <linux/tracepoint.h>
#include "ath.h"
#undef TRACE_SYSTEM
#define TRACE_SYSTEM ath
#if !defined(CONFIG_ATH_TRACEPOINTS)
#undef TRACE_EVENT
#define TRACE_EVENT(name, proto, ...) static inline void trace_ ## name(proto) {}
#endif /* CONFIG_ATH_TRACEPOINTS */
TRACE_EVENT(ath_log,
TP_PROTO(struct wiphy *wiphy,
struct va_format *vaf),
TP_ARGS(wiphy, vaf),
TP_STRUCT__entry(
__string(device, wiphy_name(wiphy))
__string(driver, KBUILD_MODNAME)
__dynamic_array(char, msg, ATH_DBG_MAX_LEN)
),
TP_fast_assign(
__assign_str(device, wiphy_name(wiphy));
__assign_str(driver, KBUILD_MODNAME);
WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
ATH_DBG_MAX_LEN,
vaf->fmt,
*vaf->va) >= ATH_DBG_MAX_LEN);
),
TP_printk(
"%s %s %s",
__get_str(driver),
__get_str(device),
__get_str(msg)
)
);
#endif /* _TRACE_H || TRACE_HEADER_MULTI_READ */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE trace
/* This part must be outside protection */
#include <trace/define_trace.h>