clear-pkgs-linux-iot-lts2018/0225-ASoC-Intel-CNL-Initial...

71 lines
2.3 KiB
Diff
Raw Permalink Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Panwar, Ashish" <ashish.panwar@intel.com>
Date: Fri, 18 Mar 2016 16:01:07 +0530
Subject: [PATCH] ASoC: Intel: CNL: Initialize trace buffer window for CNL
Initialize address, size of tracing window and write pointers
of each core for CNL platform.
Change-Id: I9febfe5bd1eef76f50f5de170c6c99fc98cdc6d9
Signed-off-by: Panwar, Ashish <ashish.panwar@intel.com>
Reviewed-on:
Reviewed-by: Shah, Hardik T <hardik.t.shah@intel.com>
Tested-by: Shah, Hardik T <hardik.t.shah@intel.com>
---
sound/soc/intel/skylake/cnl-sst.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c
2021-06-16 23:22:13 +08:00
index 7acc3c19ae70..911246d6f5d2 100644
--- a/sound/soc/intel/skylake/cnl-sst.c
+++ b/sound/soc/intel/skylake/cnl-sst.c
@@ -37,6 +37,7 @@
#include "cnl-sst-dsp.h"
#include "skl-sst-dsp.h"
#include "skl-sst-ipc.h"
+#include "skl-fwlog.h"
#define CNL_FW_ROM_INIT 0x1
#define CNL_FW_INIT 0x5
@@ -46,6 +47,14 @@
#define CNL_ADSP_SRAM0_BASE 0x80000
+/* Trace Buffer Window */
+#define CNL_ADSP_SRAM2_BASE 0x0C0000
+#define CNL_ADSP_W2_SIZE 0x2000
+#define CNL_ADSP_WP_DSP0 (CNL_ADSP_SRAM0_BASE+0x30)
+#define CNL_ADSP_WP_DSP1 (CNL_ADSP_SRAM0_BASE+0x34)
+#define CNL_ADSP_WP_DSP2 (CNL_ADSP_SRAM0_BASE+0x38)
+#define CNL_ADSP_WP_DSP3 (CNL_ADSP_SRAM0_BASE+0x3C)
+
/* Firmware status window */
#define CNL_ADSP_FW_STATUS CNL_ADSP_SRAM0_BASE
#define CNL_ADSP_ERROR_CODE (CNL_ADSP_FW_STATUS + 0x4)
2021-06-16 23:22:13 +08:00
@@ -630,6 +639,8 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
{
struct skl_sst *cnl;
struct sst_dsp *sst;
+ u32 dsp_wp[] = {CNL_ADSP_WP_DSP0, CNL_ADSP_WP_DSP1, CNL_ADSP_WP_DSP2,
+ CNL_ADSP_WP_DSP3};
int ret;
ret = skl_sst_ctx_init(dev, irq, fw_name, dsp_ops, dsp, &cnl_dev);
2021-06-16 23:22:13 +08:00
@@ -652,6 +663,13 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
CNL_ADSP_W0_UP_SZ, CNL_ADSP_SRAM1_BASE,
CNL_ADSP_W1_SZ);
+ ret = skl_dsp_init_trace_window(sst, dsp_wp, CNL_ADSP_SRAM2_BASE,
+ CNL_ADSP_W2_SIZE, CNL_DSP_CORES);
+ if (ret) {
+ dev_err(dev, "FW tracing init failed : %x", ret);
+ return ret;
+ }
+
ret = cnl_ipc_init(dev, cnl);
if (ret) {
skl_dsp_free(sst);
--
https://clearlinux.org