162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#undef TRACE_SYSTEM
362306a36Sopenharmony_ci#define TRACE_SYSTEM hda_controller
462306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE hda_controller_trace
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#if !defined(_TRACE_HDA_CONTROLLER_H) || defined(TRACE_HEADER_MULTI_READ)
762306a36Sopenharmony_ci#define _TRACE_HDA_CONTROLLER_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/tracepoint.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistruct azx;
1262306a36Sopenharmony_cistruct azx_dev;
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciTRACE_EVENT(azx_pcm_trigger,
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *dev, int cmd),
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	TP_ARGS(chip, dev, cmd),
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	TP_STRUCT__entry(
2162306a36Sopenharmony_ci		__field( int, card )
2262306a36Sopenharmony_ci		__field( int, idx )
2362306a36Sopenharmony_ci		__field( int, cmd )
2462306a36Sopenharmony_ci	),
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	TP_fast_assign(
2762306a36Sopenharmony_ci		__entry->card = (chip)->card->number;
2862306a36Sopenharmony_ci		__entry->idx = (dev)->core.index;
2962306a36Sopenharmony_ci		__entry->cmd = cmd;
3062306a36Sopenharmony_ci	),
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	TP_printk("[%d:%d] cmd=%d", __entry->card, __entry->idx, __entry->cmd)
3362306a36Sopenharmony_ci);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciTRACE_EVENT(azx_get_position,
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci    TP_PROTO(struct azx *chip, struct azx_dev *dev, unsigned int pos, unsigned int delay),
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	    TP_ARGS(chip, dev, pos, delay),
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	TP_STRUCT__entry(
4262306a36Sopenharmony_ci		__field( int, card )
4362306a36Sopenharmony_ci		__field( int, idx )
4462306a36Sopenharmony_ci		__field( unsigned int, pos )
4562306a36Sopenharmony_ci		__field( unsigned int, delay )
4662306a36Sopenharmony_ci	),
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	TP_fast_assign(
4962306a36Sopenharmony_ci		__entry->card = (chip)->card->number;
5062306a36Sopenharmony_ci		__entry->idx = (dev)->core.index;
5162306a36Sopenharmony_ci		__entry->pos = pos;
5262306a36Sopenharmony_ci		__entry->delay = delay;
5362306a36Sopenharmony_ci	),
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	TP_printk("[%d:%d] pos=%u, delay=%u", __entry->card, __entry->idx, __entry->pos, __entry->delay)
5662306a36Sopenharmony_ci);
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(azx_pcm,
5962306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	TP_ARGS(chip, azx_dev),
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	TP_STRUCT__entry(
6462306a36Sopenharmony_ci		__field( unsigned char, stream_tag )
6562306a36Sopenharmony_ci	),
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	TP_fast_assign(
6862306a36Sopenharmony_ci		__entry->stream_tag = (azx_dev)->core.stream_tag;
6962306a36Sopenharmony_ci	),
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	TP_printk("stream_tag: %d", __entry->stream_tag)
7262306a36Sopenharmony_ci);
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciDEFINE_EVENT(azx_pcm, azx_pcm_open,
7562306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
7662306a36Sopenharmony_ci	TP_ARGS(chip, azx_dev)
7762306a36Sopenharmony_ci);
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciDEFINE_EVENT(azx_pcm, azx_pcm_close,
8062306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
8162306a36Sopenharmony_ci	TP_ARGS(chip, azx_dev)
8262306a36Sopenharmony_ci);
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciDEFINE_EVENT(azx_pcm, azx_pcm_hw_params,
8562306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
8662306a36Sopenharmony_ci	TP_ARGS(chip, azx_dev)
8762306a36Sopenharmony_ci);
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciDEFINE_EVENT(azx_pcm, azx_pcm_prepare,
9062306a36Sopenharmony_ci	TP_PROTO(struct azx *chip, struct azx_dev *azx_dev),
9162306a36Sopenharmony_ci	TP_ARGS(chip, azx_dev)
9262306a36Sopenharmony_ci);
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci#endif /* _TRACE_HDA_CONTROLLER_H */
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci/* This part must be outside protection */
9762306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH
9862306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH .
9962306a36Sopenharmony_ci#include <trace/define_trace.h>
100