xref: /openbmc/linux/include/trace/events/mmc.h (revision c13aca79ff3c4af5fd31a5b2743a90eba6e36a26)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
27962fc37SBaolin Wang #undef TRACE_SYSTEM
37962fc37SBaolin Wang #define TRACE_SYSTEM mmc
47962fc37SBaolin Wang 
57962fc37SBaolin Wang #if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ)
67962fc37SBaolin Wang #define _TRACE_MMC_H
77962fc37SBaolin Wang 
87962fc37SBaolin Wang #include <linux/blkdev.h>
97962fc37SBaolin Wang #include <linux/mmc/core.h>
107962fc37SBaolin Wang #include <linux/mmc/host.h>
117962fc37SBaolin Wang #include <linux/tracepoint.h>
127962fc37SBaolin Wang 
137962fc37SBaolin Wang TRACE_EVENT(mmc_request_start,
147962fc37SBaolin Wang 
157962fc37SBaolin Wang 	TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
167962fc37SBaolin Wang 
177962fc37SBaolin Wang 	TP_ARGS(host, mrq),
187962fc37SBaolin Wang 
197962fc37SBaolin Wang 	TP_STRUCT__entry(
207962fc37SBaolin Wang 		__field(u32,			cmd_opcode)
217962fc37SBaolin Wang 		__field(u32,			cmd_arg)
227962fc37SBaolin Wang 		__field(unsigned int,		cmd_flags)
237962fc37SBaolin Wang 		__field(unsigned int,		cmd_retries)
247962fc37SBaolin Wang 		__field(u32,			stop_opcode)
257962fc37SBaolin Wang 		__field(u32,			stop_arg)
267962fc37SBaolin Wang 		__field(unsigned int,		stop_flags)
277962fc37SBaolin Wang 		__field(unsigned int,		stop_retries)
287962fc37SBaolin Wang 		__field(u32,			sbc_opcode)
297962fc37SBaolin Wang 		__field(u32,			sbc_arg)
307962fc37SBaolin Wang 		__field(unsigned int,		sbc_flags)
317962fc37SBaolin Wang 		__field(unsigned int,		sbc_retries)
327962fc37SBaolin Wang 		__field(unsigned int,		blocks)
33d2f82254SAdrian Hunter 		__field(unsigned int,		blk_addr)
347962fc37SBaolin Wang 		__field(unsigned int,		blksz)
357962fc37SBaolin Wang 		__field(unsigned int,		data_flags)
36d2f82254SAdrian Hunter 		__field(int,			tag)
377962fc37SBaolin Wang 		__field(unsigned int,		can_retune)
387962fc37SBaolin Wang 		__field(unsigned int,		doing_retune)
397962fc37SBaolin Wang 		__field(unsigned int,		retune_now)
407962fc37SBaolin Wang 		__field(int,			need_retune)
417962fc37SBaolin Wang 		__field(int,			hold_retune)
427962fc37SBaolin Wang 		__field(unsigned int,		retune_period)
437962fc37SBaolin Wang 		__field(struct mmc_request *,	mrq)
447962fc37SBaolin Wang 		__string(name,			mmc_hostname(host))
457962fc37SBaolin Wang 	),
467962fc37SBaolin Wang 
477962fc37SBaolin Wang 	TP_fast_assign(
48d2f82254SAdrian Hunter 		__entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
49d2f82254SAdrian Hunter 		__entry->cmd_arg = mrq->cmd ? mrq->cmd->arg : 0;
50d2f82254SAdrian Hunter 		__entry->cmd_flags = mrq->cmd ? mrq->cmd->flags : 0;
51d2f82254SAdrian Hunter 		__entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
527962fc37SBaolin Wang 		__entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
537962fc37SBaolin Wang 		__entry->stop_arg = mrq->stop ? mrq->stop->arg : 0;
547962fc37SBaolin Wang 		__entry->stop_flags = mrq->stop ? mrq->stop->flags : 0;
557962fc37SBaolin Wang 		__entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
567962fc37SBaolin Wang 		__entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
577962fc37SBaolin Wang 		__entry->sbc_arg = mrq->sbc ? mrq->sbc->arg : 0;
587962fc37SBaolin Wang 		__entry->sbc_flags = mrq->sbc ? mrq->sbc->flags : 0;
597962fc37SBaolin Wang 		__entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
607962fc37SBaolin Wang 		__entry->blksz = mrq->data ? mrq->data->blksz : 0;
617962fc37SBaolin Wang 		__entry->blocks = mrq->data ? mrq->data->blocks : 0;
62d2f82254SAdrian Hunter 		__entry->blk_addr = mrq->data ? mrq->data->blk_addr : 0;
637962fc37SBaolin Wang 		__entry->data_flags = mrq->data ? mrq->data->flags : 0;
64d2f82254SAdrian Hunter 		__entry->tag = mrq->tag;
657962fc37SBaolin Wang 		__entry->can_retune = host->can_retune;
667962fc37SBaolin Wang 		__entry->doing_retune = host->doing_retune;
677962fc37SBaolin Wang 		__entry->retune_now = host->retune_now;
687962fc37SBaolin Wang 		__entry->need_retune = host->need_retune;
697962fc37SBaolin Wang 		__entry->hold_retune = host->hold_retune;
707962fc37SBaolin Wang 		__entry->retune_period = host->retune_period;
717962fc37SBaolin Wang 		__assign_str(name, mmc_hostname(host));
727962fc37SBaolin Wang 		__entry->mrq = mrq;
737962fc37SBaolin Wang 	),
747962fc37SBaolin Wang 
757962fc37SBaolin Wang 	TP_printk("%s: start struct mmc_request[%p]: "
767962fc37SBaolin Wang 		  "cmd_opcode=%u cmd_arg=0x%x cmd_flags=0x%x cmd_retries=%u "
777962fc37SBaolin Wang 		  "stop_opcode=%u stop_arg=0x%x stop_flags=0x%x stop_retries=%u "
787962fc37SBaolin Wang 		  "sbc_opcode=%u sbc_arg=0x%x sbc_flags=0x%x sbc_retires=%u "
79d2f82254SAdrian Hunter 		  "blocks=%u block_size=%u blk_addr=%u data_flags=0x%x "
80d2f82254SAdrian Hunter 		  "tag=%d can_retune=%u doing_retune=%u retune_now=%u "
817962fc37SBaolin Wang 		  "need_retune=%d hold_retune=%d retune_period=%u",
827962fc37SBaolin Wang 		  __get_str(name), __entry->mrq,
837962fc37SBaolin Wang 		  __entry->cmd_opcode, __entry->cmd_arg,
847962fc37SBaolin Wang 		  __entry->cmd_flags, __entry->cmd_retries,
857962fc37SBaolin Wang 		  __entry->stop_opcode, __entry->stop_arg,
867962fc37SBaolin Wang 		  __entry->stop_flags, __entry->stop_retries,
877962fc37SBaolin Wang 		  __entry->sbc_opcode, __entry->sbc_arg,
887962fc37SBaolin Wang 		  __entry->sbc_flags, __entry->sbc_retries,
89*c658dc58SAdrian Hunter 		  __entry->blocks, __entry->blksz,
90*c658dc58SAdrian Hunter 		  __entry->blk_addr, __entry->data_flags, __entry->tag,
917962fc37SBaolin Wang 		  __entry->can_retune, __entry->doing_retune,
927962fc37SBaolin Wang 		  __entry->retune_now, __entry->need_retune,
937962fc37SBaolin Wang 		  __entry->hold_retune, __entry->retune_period)
947962fc37SBaolin Wang );
957962fc37SBaolin Wang 
967962fc37SBaolin Wang TRACE_EVENT(mmc_request_done,
977962fc37SBaolin Wang 
987962fc37SBaolin Wang 	TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
997962fc37SBaolin Wang 
1007962fc37SBaolin Wang 	TP_ARGS(host, mrq),
1017962fc37SBaolin Wang 
1027962fc37SBaolin Wang 	TP_STRUCT__entry(
1037962fc37SBaolin Wang 		__field(u32,			cmd_opcode)
1047962fc37SBaolin Wang 		__field(int,			cmd_err)
1057962fc37SBaolin Wang 		__array(u32,			cmd_resp,	4)
1067962fc37SBaolin Wang 		__field(unsigned int,		cmd_retries)
1077962fc37SBaolin Wang 		__field(u32,			stop_opcode)
1087962fc37SBaolin Wang 		__field(int,			stop_err)
1097962fc37SBaolin Wang 		__array(u32,			stop_resp,	4)
1107962fc37SBaolin Wang 		__field(unsigned int,		stop_retries)
1117962fc37SBaolin Wang 		__field(u32,			sbc_opcode)
1127962fc37SBaolin Wang 		__field(int,			sbc_err)
1137962fc37SBaolin Wang 		__array(u32,			sbc_resp,	4)
1147962fc37SBaolin Wang 		__field(unsigned int,		sbc_retries)
1157962fc37SBaolin Wang 		__field(unsigned int,		bytes_xfered)
1167962fc37SBaolin Wang 		__field(int,			data_err)
117d2f82254SAdrian Hunter 		__field(int,			tag)
1187962fc37SBaolin Wang 		__field(unsigned int,		can_retune)
1197962fc37SBaolin Wang 		__field(unsigned int,		doing_retune)
1207962fc37SBaolin Wang 		__field(unsigned int,		retune_now)
1217962fc37SBaolin Wang 		__field(int,			need_retune)
1227962fc37SBaolin Wang 		__field(int,			hold_retune)
1237962fc37SBaolin Wang 		__field(unsigned int,		retune_period)
1247962fc37SBaolin Wang 		__field(struct mmc_request *,	mrq)
1257962fc37SBaolin Wang 		__string(name,			mmc_hostname(host))
1267962fc37SBaolin Wang 	),
1277962fc37SBaolin Wang 
1287962fc37SBaolin Wang 	TP_fast_assign(
129d2f82254SAdrian Hunter 		__entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
130d2f82254SAdrian Hunter 		__entry->cmd_err = mrq->cmd ? mrq->cmd->error : 0;
131d2f82254SAdrian Hunter 		__entry->cmd_resp[0] = mrq->cmd ? mrq->cmd->resp[0] : 0;
132d2f82254SAdrian Hunter 		__entry->cmd_resp[1] = mrq->cmd ? mrq->cmd->resp[1] : 0;
133d2f82254SAdrian Hunter 		__entry->cmd_resp[2] = mrq->cmd ? mrq->cmd->resp[2] : 0;
134d2f82254SAdrian Hunter 		__entry->cmd_resp[3] = mrq->cmd ? mrq->cmd->resp[3] : 0;
135d2f82254SAdrian Hunter 		__entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
1367962fc37SBaolin Wang 		__entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
1377962fc37SBaolin Wang 		__entry->stop_err = mrq->stop ? mrq->stop->error : 0;
1387962fc37SBaolin Wang 		__entry->stop_resp[0] = mrq->stop ? mrq->stop->resp[0] : 0;
1397962fc37SBaolin Wang 		__entry->stop_resp[1] = mrq->stop ? mrq->stop->resp[1] : 0;
1407962fc37SBaolin Wang 		__entry->stop_resp[2] = mrq->stop ? mrq->stop->resp[2] : 0;
1417962fc37SBaolin Wang 		__entry->stop_resp[3] = mrq->stop ? mrq->stop->resp[3] : 0;
1427962fc37SBaolin Wang 		__entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
1437962fc37SBaolin Wang 		__entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
1447962fc37SBaolin Wang 		__entry->sbc_err = mrq->sbc ? mrq->sbc->error : 0;
1457962fc37SBaolin Wang 		__entry->sbc_resp[0] = mrq->sbc ? mrq->sbc->resp[0] : 0;
1467962fc37SBaolin Wang 		__entry->sbc_resp[1] = mrq->sbc ? mrq->sbc->resp[1] : 0;
1477962fc37SBaolin Wang 		__entry->sbc_resp[2] = mrq->sbc ? mrq->sbc->resp[2] : 0;
1487962fc37SBaolin Wang 		__entry->sbc_resp[3] = mrq->sbc ? mrq->sbc->resp[3] : 0;
1497962fc37SBaolin Wang 		__entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
1507962fc37SBaolin Wang 		__entry->bytes_xfered = mrq->data ? mrq->data->bytes_xfered : 0;
1517962fc37SBaolin Wang 		__entry->data_err = mrq->data ? mrq->data->error : 0;
152d2f82254SAdrian Hunter 		__entry->tag = mrq->tag;
1537962fc37SBaolin Wang 		__entry->can_retune = host->can_retune;
1547962fc37SBaolin Wang 		__entry->doing_retune = host->doing_retune;
1557962fc37SBaolin Wang 		__entry->retune_now = host->retune_now;
1567962fc37SBaolin Wang 		__entry->need_retune = host->need_retune;
1577962fc37SBaolin Wang 		__entry->hold_retune = host->hold_retune;
1587962fc37SBaolin Wang 		__entry->retune_period = host->retune_period;
1597962fc37SBaolin Wang 		__assign_str(name, mmc_hostname(host));
1607962fc37SBaolin Wang 		__entry->mrq = mrq;
1617962fc37SBaolin Wang 	),
1627962fc37SBaolin Wang 
1637962fc37SBaolin Wang 	TP_printk("%s: end struct mmc_request[%p]: "
1647962fc37SBaolin Wang 		  "cmd_opcode=%u cmd_err=%d cmd_resp=0x%x 0x%x 0x%x 0x%x "
1657962fc37SBaolin Wang 		  "cmd_retries=%u stop_opcode=%u stop_err=%d "
1667962fc37SBaolin Wang 		  "stop_resp=0x%x 0x%x 0x%x 0x%x stop_retries=%u "
1677962fc37SBaolin Wang 		  "sbc_opcode=%u sbc_err=%d sbc_resp=0x%x 0x%x 0x%x 0x%x "
168d2f82254SAdrian Hunter 		  "sbc_retries=%u bytes_xfered=%u data_err=%d tag=%d "
1697962fc37SBaolin Wang 		  "can_retune=%u doing_retune=%u retune_now=%u need_retune=%d "
1707962fc37SBaolin Wang 		  "hold_retune=%d retune_period=%u",
1717962fc37SBaolin Wang 		  __get_str(name), __entry->mrq,
1727962fc37SBaolin Wang 		  __entry->cmd_opcode, __entry->cmd_err,
1737962fc37SBaolin Wang 		  __entry->cmd_resp[0], __entry->cmd_resp[1],
1747962fc37SBaolin Wang 		  __entry->cmd_resp[2], __entry->cmd_resp[3],
1757962fc37SBaolin Wang 		  __entry->cmd_retries,
1767962fc37SBaolin Wang 		  __entry->stop_opcode, __entry->stop_err,
1777962fc37SBaolin Wang 		  __entry->stop_resp[0], __entry->stop_resp[1],
1787962fc37SBaolin Wang 		  __entry->stop_resp[2], __entry->stop_resp[3],
1797962fc37SBaolin Wang 		  __entry->stop_retries,
1807962fc37SBaolin Wang 		  __entry->sbc_opcode, __entry->sbc_err,
1817962fc37SBaolin Wang 		  __entry->sbc_resp[0], __entry->sbc_resp[1],
1827962fc37SBaolin Wang 		  __entry->sbc_resp[2], __entry->sbc_resp[3],
1837962fc37SBaolin Wang 		  __entry->sbc_retries,
184d2f82254SAdrian Hunter 		  __entry->bytes_xfered, __entry->data_err, __entry->tag,
1857962fc37SBaolin Wang 		  __entry->can_retune, __entry->doing_retune,
1867962fc37SBaolin Wang 		  __entry->retune_now, __entry->need_retune,
1877962fc37SBaolin Wang 		  __entry->hold_retune, __entry->retune_period)
1887962fc37SBaolin Wang );
1897962fc37SBaolin Wang 
1907962fc37SBaolin Wang #endif /* _TRACE_MMC_H */
1917962fc37SBaolin Wang 
1927962fc37SBaolin Wang /* This part must be outside protection */
1937962fc37SBaolin Wang #include <trace/define_trace.h>
194