From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Panwar, Ashish" 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 Reviewed-on: Reviewed-by: Shah, Hardik T Tested-by: Shah, Hardik T --- 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 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) @@ -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); @@ -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