diff options
author | Mark Brown <broonie@kernel.org> | 2019-06-03 18:38:15 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-06-03 18:38:15 +0100 |
commit | a529819d8876fd469f58e630ed015c4a4620ee75 (patch) | |
tree | 99666fbde477efd814c9328bd685a9d6ea208393 /sound/soc/sof/intel/hda.c | |
parent | 663580695611b9c3837cdf596de2194234f0fbd5 (diff) | |
parent | 14104eb6a351a5bad21fdd2cf05ca46ad5e5beab (diff) |
Merge branch 'asoc-5.2' into asoc-5.3
Diffstat (limited to 'sound/soc/sof/intel/hda.c')
-rw-r--r-- | sound/soc/sof/intel/hda.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 92c546e93400..bb5f02f4e49a 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -108,17 +108,21 @@ static void hda_dsp_get_registers(struct snd_sof_dev *sdev, struct sof_ipc_panic_info *panic_info, u32 *stack, size_t stack_words) { + u32 offset = sdev->dsp_oops_offset; + /* first read registers */ - sof_block_read(sdev, sdev->mmio_bar, sdev->dsp_oops_offset, xoops, - sizeof(*xoops)); + sof_mailbox_read(sdev, offset, xoops, sizeof(*xoops)); + + /* note: variable AR register array is not read */ /* then get panic info */ - sof_block_read(sdev, sdev->mmio_bar, sdev->dsp_oops_offset + - sizeof(*xoops), panic_info, sizeof(*panic_info)); + offset += xoops->arch_hdr.totalsize; + sof_block_read(sdev, sdev->mmio_bar, offset, + panic_info, sizeof(*panic_info)); /* then get the stack */ - sof_block_read(sdev, sdev->mmio_bar, sdev->dsp_oops_offset + - sizeof(*xoops) + sizeof(*panic_info), stack, + offset += sizeof(*panic_info); + sof_block_read(sdev, sdev->mmio_bar, offset, stack, stack_words * sizeof(u32)); } |