diff options
author | Zhu Yingjiang <yingjiang.zhu@linux.intel.com> | 2019-07-22 09:13:54 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-07-23 12:21:20 +0100 |
commit | 061edb232505797aee53a955225af23fa30d45b8 (patch) | |
tree | ff8dce58818700597d0d7e94d4c05ea6c02362f5 /sound/soc/sof/intel/hda-ctrl.c | |
parent | fd15f2f5e272145269bcbf834e0e0b560a575891 (diff) | |
download | linux-061edb232505797aee53a955225af23fa30d45b8.tar.gz linux-061edb232505797aee53a955225af23fa30d45b8.tar.bz2 linux-061edb232505797aee53a955225af23fa30d45b8.zip |
ASoC: SOF: Intel: hda: set position buffer in init chip
Set the HDA stream position buffer during init chip. The position buffer
needs to be set in both HDA codec and nocodec cases. Using SOF defined
function and move it to common code.
Signed-off-by: Zhu Yingjiang <yingjiang.zhu@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20190722141402.7194-14-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/intel/hda-ctrl.c')
-rw-r--r-- | sound/soc/sof/intel/hda-ctrl.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sound/soc/sof/intel/hda-ctrl.c b/sound/soc/sof/intel/hda-ctrl.c index ea63f83a509b..015760284969 100644 --- a/sound/soc/sof/intel/hda-ctrl.c +++ b/sound/soc/sof/intel/hda-ctrl.c @@ -245,14 +245,13 @@ int hda_dsp_ctrl_init_chip(struct snd_sof_dev *sdev, bool full_reset) SOF_HDA_INT_CTRL_EN | SOF_HDA_INT_GLOBAL_EN, SOF_HDA_INT_CTRL_EN | SOF_HDA_INT_GLOBAL_EN); -#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) /* program the position buffer */ if (bus->use_posbuf && bus->posbuf.addr) { - snd_hdac_chip_writel(bus, DPLBASE, (u32)bus->posbuf.addr); - snd_hdac_chip_writel(bus, DPUBASE, - upper_32_bits(bus->posbuf.addr)); + snd_sof_dsp_write(sdev, HDA_DSP_HDA_BAR, SOF_HDA_ADSP_DPLBASE, + (u32)bus->posbuf.addr); + snd_sof_dsp_write(sdev, HDA_DSP_HDA_BAR, SOF_HDA_ADSP_DPUBASE, + upper_32_bits(bus->posbuf.addr)); } -#endif bus->chip_init = true; |