|
24 | 24 | #include "../../sof-of-dev.h" |
25 | 25 | #include "../../sof-audio.h" |
26 | 26 | #include "../adsp_helper.h" |
| 27 | +#include "../mtk-adsp-common.h" |
27 | 28 | #include "mt8195.h" |
28 | 29 | #include "mt8195-clk.h" |
29 | 30 |
|
@@ -361,6 +362,31 @@ static int mt8195_get_bar_index(struct snd_sof_dev *sdev, u32 type) |
361 | 362 | return type; |
362 | 363 | } |
363 | 364 |
|
| 365 | +static void mt8195_adsp_dump(struct snd_sof_dev *sdev, u32 flags) |
| 366 | +{ |
| 367 | + u32 dbg_pc, dbg_data, dbg_bus0, dbg_bus1, dbg_inst; |
| 368 | + u32 dbg_ls0stat, dbg_ls1stat, faultbus, faultinfo, swrest; |
| 369 | + |
| 370 | + /* dump debug registers */ |
| 371 | + dbg_pc = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGPC); |
| 372 | + dbg_data = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGDATA); |
| 373 | + dbg_bus0 = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGBUS0); |
| 374 | + dbg_bus1 = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGBUS1); |
| 375 | + dbg_inst = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGINST); |
| 376 | + dbg_ls0stat = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGLS0STAT); |
| 377 | + dbg_ls1stat = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PDEBUGLS1STAT); |
| 378 | + faultbus = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PFAULTBUS); |
| 379 | + faultinfo = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_PFAULTINFO); |
| 380 | + swrest = snd_sof_dsp_read(sdev, DSP_REG_BAR, DSP_RESET_SW); |
| 381 | + |
| 382 | + dev_info(sdev->dev, "adsp dump : pc %#x, data %#x, bus0 %#x, bus1 %#x, swrest %#x", |
| 383 | + dbg_pc, dbg_data, dbg_bus0, dbg_bus1, swrest); |
| 384 | + dev_info(sdev->dev, "dbg_inst %#x, ls0stat %#x, ls1stat %#x, faultbus %#x, faultinfo %#x", |
| 385 | + dbg_inst, dbg_ls0stat, dbg_ls1stat, faultbus, faultinfo); |
| 386 | + |
| 387 | + mtk_adsp_dump(sdev, flags); |
| 388 | +} |
| 389 | + |
364 | 390 | static struct snd_soc_dai_driver mt8195_dai[] = { |
365 | 391 | { |
366 | 392 | .name = "SOF_DL2", |
@@ -421,6 +447,9 @@ static struct snd_sof_dsp_ops sof_mt8195_ops = { |
421 | 447 | /* Firmware ops */ |
422 | 448 | .dsp_arch_ops = &sof_xtensa_arch_ops, |
423 | 449 |
|
| 450 | + /* Debug information */ |
| 451 | + .dbg_dump = mt8195_adsp_dump, |
| 452 | + |
424 | 453 | /* DAI drivers */ |
425 | 454 | .drv = mt8195_dai, |
426 | 455 | .num_drv = ARRAY_SIZE(mt8195_dai), |
|
0 commit comments