I believe the original intent was for this member to point to the
beginning of fw *data*, but here it is actually set to the beginning of
the entire fw including header.
fw_data is later directly written to PMEM, and all the other *MEM areas.
When we later try to start the DSP firmware, it will try and "run" the
fw header and probably lock up.
Fix this by taking into account the size of the fw header when saving
the pointer. This makes reading out the PMEM area from debugfs work
without any issues
Signed-off-by: Patrik Dahlström <risca(a)dalakolonin.se>
---
sound/soc/ti/aess/omap-aess-fw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/ti/aess/omap-aess-fw.c b/sound/soc/ti/aess/omap-aess-fw.c
index 8daff9fb1488..48cd6d7e3d33 100644
--- a/sound/soc/ti/aess/omap-aess-fw.c
+++ b/sound/soc/ti/aess/omap-aess-fw.c
@@ -658,7 +658,7 @@ static int aess_load_fw(struct snd_soc_component *component,
dev_info(aess->dev, "AESS Firmware version %x\n", aess->fw_hdr.version);
/* store AESS firmware for later context restore */
- aess->fw_data = fw_data;
+ aess->fw_data = fw_data + sizeof(struct fw_header);
return 0;
}
--
2.43.0