From b1c4cbee59f54fa025cd6735e92054f2ef8ed6c4 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Thu, 7 Mar 2019 22:45:19 -0800 Subject: [PATCH] ASoC: SOF: make ROM init timeout platform specific Change the ROM init timeout value to be platform specific and set the recommended values for APL/CNL/SKL platforms. Signed-off-by: Ranjani Sridharan --- sound/soc/sof/intel/apl.c | 1 + sound/soc/sof/intel/cnl.c | 1 + sound/soc/sof/intel/hda-loader.c | 2 +- sound/soc/sof/intel/hda.h | 1 - sound/soc/sof/intel/shim.h | 1 + sound/soc/sof/intel/skl.c | 1 + 6 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c index 692f0e06652f2f..3baedbb48d10e1 100644 --- a/sound/soc/sof/intel/apl.c +++ b/sound/soc/sof/intel/apl.c @@ -108,5 +108,6 @@ const struct sof_intel_dsp_desc apl_chip_info = { .ipc_ack = HDA_DSP_REG_HIPCIE, .ipc_ack_mask = HDA_DSP_REG_HIPCIE_DONE, .ipc_ctl = HDA_DSP_REG_HIPCCTL, + .rom_init_timeout = 150, }; EXPORT_SYMBOL(apl_chip_info); diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c index 5ec0246b9400d4..3db59228db6e1a 100644 --- a/sound/soc/sof/intel/cnl.c +++ b/sound/soc/sof/intel/cnl.c @@ -266,5 +266,6 @@ const struct sof_intel_dsp_desc cnl_chip_info = { .ipc_ack = CNL_DSP_REG_HIPCIDA, .ipc_ack_mask = CNL_DSP_REG_HIPCIDA_DONE, .ipc_ctl = CNL_DSP_REG_HIPCCTL, + .rom_init_timeout = 300, }; EXPORT_SYMBOL(cnl_chip_info); diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c index 9362771ee0d0a9..4f182e6326f2e1 100644 --- a/sound/soc/sof/intel/hda-loader.c +++ b/sound/soc/sof/intel/hda-loader.c @@ -131,7 +131,7 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, const void *fwdata, ret = snd_sof_dsp_register_poll(sdev, HDA_DSP_BAR, HDA_DSP_SRAM_REG_ROM_STATUS, HDA_DSP_ROM_STS_MASK, HDA_DSP_ROM_INIT, - HDA_ROM_INIT_TIMEOUT, + chip->rom_init_timeout, HDA_DSP_REG_POLL_INTERVAL_US); if (!ret) return 0; diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h index ca6e8fc947f4ab..baf1785442bbd2 100644 --- a/sound/soc/sof/intel/hda.h +++ b/sound/soc/sof/intel/hda.h @@ -198,7 +198,6 @@ #define HDA_DSP_RESET_TIMEOUT 50 #define HDA_DSP_BASEFW_TIMEOUT 3000 #define HDA_DSP_INIT_TIMEOUT 500 -#define HDA_ROM_INIT_TIMEOUT 70 #define HDA_DSP_CTRL_RESET_TIMEOUT 100 #define HDA_DSP_WAIT_TIMEOUT 500 /* 500 msec */ #define HDA_DSP_REG_POLL_INTERVAL_US 500 /* 0.5 msec */ diff --git a/sound/soc/sof/intel/shim.h b/sound/soc/sof/intel/shim.h index 63fc9b7499a09b..617da2dda17270 100644 --- a/sound/soc/sof/intel/shim.h +++ b/sound/soc/sof/intel/shim.h @@ -161,6 +161,7 @@ struct sof_intel_dsp_desc { int ipc_ack; int ipc_ack_mask; int ipc_ctl; + int rom_init_timeout; }; extern const struct snd_sof_dsp_ops sof_tng_ops; diff --git a/sound/soc/sof/intel/skl.c b/sound/soc/sof/intel/skl.c index fd3d187f9face5..69816deb3c358c 100644 --- a/sound/soc/sof/intel/skl.c +++ b/sound/soc/sof/intel/skl.c @@ -101,5 +101,6 @@ const struct sof_intel_dsp_desc skl_chip_info = { .ipc_ack = HDA_DSP_REG_HIPCIE, .ipc_ack_mask = HDA_DSP_REG_HIPCIE_DONE, .ipc_ctl = HDA_DSP_REG_HIPCCTL, + .rom_init_timeout = 150, }; EXPORT_SYMBOL(skl_chip_info);