From: Kalle Valo <kvalo@qca.qualcomm.com>
To: linux-wireless@vger.kernel.org
Cc: ath6kl-devel@qualcomm.com
Subject: [PATCH 2/7] ath6kl: add tracing points for sdio transfers
Date: Thu, 27 Dec 2012 13:44:30 +0200 [thread overview]
Message-ID: <20121227114430.27069.9849.stgit@localhost6.localdomain6> (raw)
In-Reply-To: <20121227114156.27069.30223.stgit@localhost6.localdomain6>
Add tracing points for sdio transfers, just dump the address, flags and the
buffer.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
---
drivers/net/wireless/ath/ath6kl/sdio.c | 22 ++++++++++++++++-
drivers/net/wireless/ath/ath6kl/trace.c | 5 ++++
drivers/net/wireless/ath/ath6kl/trace.h | 41 +++++++++++++++++++++++++++++++
3 files changed, 67 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index d111980..df2131d 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -28,6 +28,7 @@
#include "target.h"
#include "debug.h"
#include "cfg80211.h"
+#include "trace.h"
struct ath6kl_sdio {
struct sdio_func *func;
@@ -179,6 +180,11 @@ static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
request & HIF_FIXED_ADDRESS ? " (fixed)" : "", buf, len);
ath6kl_dbg_dump(ATH6KL_DBG_SDIO_DUMP, NULL, "sdio ", buf, len);
+ if (request & HIF_WRITE)
+ trace_ath6kl_sdio_wr(addr, request, buf, len);
+ else
+ trace_ath6kl_sdio_rd(addr, request, buf, len);
+
return ret;
}
@@ -260,7 +266,7 @@ static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
struct mmc_data data;
struct hif_scatter_req *scat_req;
u8 opcode, rw;
- int status, len;
+ int status, len, i;
scat_req = req->scat_req;
@@ -309,6 +315,20 @@ static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
sdio_claim_host(ar_sdio->func);
mmc_set_data_timeout(&data, ar_sdio->func->card);
+
+ for (i = 0; i < scat_req->scat_entries; i++) {
+ if (scat_req->req & HIF_WRITE)
+ trace_ath6kl_sdio_wr(scat_req->addr,
+ scat_req->req,
+ scat_req->scat_list[i].buf,
+ scat_req->scat_list[i].len);
+ else
+ trace_ath6kl_sdio_rd(scat_req->addr,
+ scat_req->req,
+ scat_req->scat_list[i].buf,
+ scat_req->scat_list[i].len);
+ }
+
/* synchronous call to process request */
mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req);
diff --git a/drivers/net/wireless/ath/ath6kl/trace.c b/drivers/net/wireless/ath/ath6kl/trace.c
index 4118a29..adc74a0 100644
--- a/drivers/net/wireless/ath/ath6kl/trace.c
+++ b/drivers/net/wireless/ath/ath6kl/trace.c
@@ -14,5 +14,10 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <linux/module.h>
+
#define CREATE_TRACE_POINTS
#include "trace.h"
+
+EXPORT_TRACEPOINT_SYMBOL(ath6kl_sdio_wr);
+EXPORT_TRACEPOINT_SYMBOL(ath6kl_sdio_rd);
diff --git a/drivers/net/wireless/ath/ath6kl/trace.h b/drivers/net/wireless/ath/ath6kl/trace.h
index 0787619..be2e4e2 100644
--- a/drivers/net/wireless/ath/ath6kl/trace.h
+++ b/drivers/net/wireless/ath/ath6kl/trace.h
@@ -75,6 +75,47 @@ TRACE_EVENT(ath6kl_wmi_event,
)
);
+/* FIXME: add sg count */
+DECLARE_EVENT_CLASS(ath6kl_sdio_transaction,
+ TP_PROTO(unsigned int addr, int flags,
+ void *buf, size_t buf_len),
+
+ TP_ARGS(addr, flags, buf, buf_len),
+
+ TP_STRUCT__entry(
+ __field(unsigned int, addr)
+ __field(int, flags)
+ __field(size_t, buf_len)
+ __dynamic_array(u8, buf, buf_len)
+ ),
+
+ TP_fast_assign(
+ __entry->addr = addr;
+ __entry->flags = flags;
+ __entry->buf_len = buf_len;
+ memcpy(__get_dynamic_array(buf), buf, buf_len);
+ ),
+
+ TP_printk(
+ "addr 0x%x flags 0x%x len %d\n",
+ __entry->addr,
+ __entry->flags,
+ __entry->buf_len
+ )
+);
+
+DEFINE_EVENT(ath6kl_sdio_transaction, ath6kl_sdio_wr,
+ TP_PROTO(unsigned int addr, int flags,
+ void *buf, size_t buf_len),
+ TP_ARGS(addr, flags, buf, buf_len)
+);
+
+DEFINE_EVENT(ath6kl_sdio_transaction, ath6kl_sdio_rd,
+ TP_PROTO(unsigned int addr, int flags,
+ void *buf, size_t buf_len),
+ TP_ARGS(addr, flags, buf, buf_len)
+);
+
#endif /* _ ATH6KL_TRACE_H || TRACE_HEADER_MULTI_READ*/
/* we don't want to use include/trace/events */
next prev parent reply other threads:[~2012-12-27 11:52 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-27 11:44 [PATCH 0/7] ath6kl: tracing support Kalle Valo
2012-12-27 11:44 ` [PATCH 1/7] ath6kl: add tracing support and tracing points for wmi packets Kalle Valo
2012-12-27 11:44 ` Kalle Valo [this message]
2012-12-27 12:13 ` [PATCH 2/7] ath6kl: add tracing points for sdio transfers Johannes Berg
2012-12-27 15:32 ` Kalle Valo
2012-12-27 11:44 ` [PATCH 3/7] ath6kl: add tracing point for hif irqs Kalle Valo
2012-12-27 11:44 ` [PATCH 4/7] ath6kl: adding tracing points for htc_mbox Kalle Valo
2012-12-27 11:44 ` [PATCH 5/7] ath6kl: convert ath6kl_info/err/warn macros to real functions Kalle Valo
2012-12-27 12:19 ` Johannes Berg
2012-12-27 15:47 ` Kalle Valo
2012-12-27 15:55 ` Kalle Valo
2012-12-27 11:44 ` [PATCH 6/7] ath6kl: add tracing support to log functions Kalle Valo
2012-12-27 11:44 ` [PATCH 7/7] ath6kl: add tracing support to debug message macros Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121227114430.27069.9849.stgit@localhost6.localdomain6 \
--to=kvalo@qca.qualcomm.com \
--cc=ath6kl-devel@qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox