Linux wireless drivers development
 help / color / mirror / Atom feed
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 */


  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