Skip to content

Commit ef72470

Browse files
crojewsk-intelbroonie
authored andcommitted
ASoC: Intel: avs: Adjust IPC traces
The firmware status and the firmware error registers are 4-bytes wide. Update trace macros and their usage to reflect that. Signed-off-by: Cezary Rojewski <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 3eede0f commit ef72470

File tree

2 files changed

+35
-28
lines changed

2 files changed

+35
-28
lines changed

sound/soc/intel/avs/ipc.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,11 @@ static void avs_dsp_receive_rx(struct avs_dev *adev, u64 header)
184184
{
185185
struct avs_ipc *ipc = adev->ipc;
186186
union avs_reply_msg msg = AVS_MSG(header);
187-
u64 reg;
187+
u32 sts, lec;
188188

189-
reg = readq(avs_sram_addr(adev, AVS_FW_REGS_WINDOW));
190-
trace_avs_ipc_reply_msg(header, reg);
189+
sts = snd_hdac_adsp_readl(adev, AVS_FW_REG_STATUS(adev));
190+
lec = snd_hdac_adsp_readl(adev, AVS_FW_REG_ERROR(adev));
191+
trace_avs_ipc_reply_msg(header, sts, lec);
191192

192193
ipc->rx.header = header;
193194
/* Abort copying payload if request processing was unsuccessful. */
@@ -209,10 +210,11 @@ static void avs_dsp_process_notification(struct avs_dev *adev, u64 header)
209210
union avs_notify_msg msg = AVS_MSG(header);
210211
size_t data_size = 0;
211212
void *data = NULL;
212-
u64 reg;
213+
u32 sts, lec;
213214

214-
reg = readq(avs_sram_addr(adev, AVS_FW_REGS_WINDOW));
215-
trace_avs_ipc_notify_msg(header, reg);
215+
sts = snd_hdac_adsp_readl(adev, AVS_FW_REG_STATUS(adev));
216+
lec = snd_hdac_adsp_readl(adev, AVS_FW_REG_ERROR(adev));
217+
trace_avs_ipc_notify_msg(header, sts, lec);
216218

217219
/* Ignore spurious notifications until handshake is established. */
218220
if (!adev->ipc->ready && msg.notify_msg_type != AVS_NOTIFY_FW_READY) {
@@ -367,13 +369,16 @@ static void avs_ipc_msg_init(struct avs_ipc *ipc, struct avs_ipc_msg *reply)
367369
static void avs_dsp_send_tx(struct avs_dev *adev, struct avs_ipc_msg *tx, bool read_fwregs)
368370
{
369371
const struct avs_spec *const spec = adev->spec;
370-
u64 reg = ULONG_MAX;
372+
u32 sts = UINT_MAX;
373+
u32 lec = UINT_MAX;
371374

372375
tx->header |= spec->hipc->req_busy_mask;
373-
if (read_fwregs)
374-
reg = readq(avs_sram_addr(adev, AVS_FW_REGS_WINDOW));
376+
if (read_fwregs) {
377+
sts = snd_hdac_adsp_readl(adev, AVS_FW_REG_STATUS(adev));
378+
lec = snd_hdac_adsp_readl(adev, AVS_FW_REG_ERROR(adev));
379+
}
375380

376-
trace_avs_request(tx, reg);
381+
trace_avs_request(tx, sts, lec);
377382

378383
if (tx->size)
379384
memcpy_toio(avs_downlink_addr(adev), tx->data, tx->size);

sound/soc/intel/avs/trace.h

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,60 +37,62 @@ TRACE_EVENT(avs_dsp_core_op,
3737

3838
void trace_avs_msg_payload(const void *data, size_t size);
3939

40-
#define trace_avs_request(msg, fwregs) \
40+
#define trace_avs_request(msg, sts, lec) \
4141
({ \
42-
trace_avs_ipc_request_msg((msg)->header, fwregs); \
42+
trace_avs_ipc_request_msg((msg)->header, sts, lec); \
4343
trace_avs_msg_payload((msg)->data, (msg)->size); \
4444
})
4545

46-
#define trace_avs_reply(msg, fwregs) \
46+
#define trace_avs_reply(msg, sts, lec) \
4747
({ \
48-
trace_avs_ipc_reply_msg((msg)->header, fwregs); \
48+
trace_avs_ipc_reply_msg((msg)->header, sts, lec); \
4949
trace_avs_msg_payload((msg)->data, (msg)->size); \
5050
})
5151

52-
#define trace_avs_notify(msg, fwregs) \
52+
#define trace_avs_notify(msg, sts, lec) \
5353
({ \
54-
trace_avs_ipc_notify_msg((msg)->header, fwregs); \
54+
trace_avs_ipc_notify_msg((msg)->header, sts, lec); \
5555
trace_avs_msg_payload((msg)->data, (msg)->size); \
5656
})
5757
#endif
5858

5959
DECLARE_EVENT_CLASS(avs_ipc_msg_hdr,
6060

61-
TP_PROTO(u64 header, u64 fwregs),
61+
TP_PROTO(u64 header, u32 sts, u32 lec),
6262

63-
TP_ARGS(header, fwregs),
63+
TP_ARGS(header, sts, lec),
6464

6565
TP_STRUCT__entry(
6666
__field(u64, header)
67-
__field(u64, fwregs)
67+
__field(u32, sts)
68+
__field(u32, lec)
6869
),
6970

7071
TP_fast_assign(
7172
__entry->header = header;
72-
__entry->fwregs = fwregs;
73+
__entry->sts = sts;
74+
__entry->lec = lec;
7375
),
7476

7577
TP_printk("primary: 0x%08X, extension: 0x%08X,\n"
76-
"fwstatus: 0x%08X, fwerror: 0x%08X",
78+
"status: 0x%08X, error: 0x%08X",
7779
lower_32_bits(__entry->header), upper_32_bits(__entry->header),
78-
lower_32_bits(__entry->fwregs), upper_32_bits(__entry->fwregs))
80+
__entry->sts, __entry->lec)
7981
);
8082

8183
DEFINE_EVENT(avs_ipc_msg_hdr, avs_ipc_request_msg,
82-
TP_PROTO(u64 header, u64 fwregs),
83-
TP_ARGS(header, fwregs)
84+
TP_PROTO(u64 header, u32 sts, u32 lec),
85+
TP_ARGS(header, sts, lec)
8486
);
8587

8688
DEFINE_EVENT(avs_ipc_msg_hdr, avs_ipc_reply_msg,
87-
TP_PROTO(u64 header, u64 fwregs),
88-
TP_ARGS(header, fwregs)
89+
TP_PROTO(u64 header, u32 sts, u32 lec),
90+
TP_ARGS(header, sts, lec)
8991
);
9092

9193
DEFINE_EVENT(avs_ipc_msg_hdr, avs_ipc_notify_msg,
92-
TP_PROTO(u64 header, u64 fwregs),
93-
TP_ARGS(header, fwregs)
94+
TP_PROTO(u64 header, u32 sts, u32 lec),
95+
TP_ARGS(header, sts, lec)
9496
);
9597

9698
TRACE_EVENT_CONDITION(avs_ipc_msg_payload,

0 commit comments

Comments
 (0)