Commit f19e1027 authored by Takashi Iwai's avatar Takashi Iwai

Merge tag 'asoc-fix-v6.10-rc7' of...

Merge tag 'asoc-fix-v6.10-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.10

A few fairly small fixes for ASoC, there's a relatively large set of
hardening changes for the cs_dsp firmware file parsing and a couple of
other small device specific fixes.
parents b4695302 680e126e
This diff is collapsed.
...@@ -38,7 +38,9 @@ static bool rt711_readable_register(struct device *dev, unsigned int reg) ...@@ -38,7 +38,9 @@ static bool rt711_readable_register(struct device *dev, unsigned int reg)
case 0x8300 ... 0x83ff: case 0x8300 ... 0x83ff:
case 0x9c00 ... 0x9cff: case 0x9c00 ... 0x9cff:
case 0xb900 ... 0xb9ff: case 0xb900 ... 0xb9ff:
case 0x752008:
case 0x752009: case 0x752009:
case 0x75200b:
case 0x752011: case 0x752011:
case 0x75201a: case 0x75201a:
case 0x752045: case 0x752045:
......
...@@ -617,12 +617,6 @@ static int hda_dai_suspend(struct hdac_bus *bus) ...@@ -617,12 +617,6 @@ static int hda_dai_suspend(struct hdac_bus *bus)
sdai = swidget->private; sdai = swidget->private;
ops = sdai->platform_private; ops = sdai->platform_private;
ret = hda_link_dma_cleanup(hext_stream->link_substream,
hext_stream,
cpu_dai);
if (ret < 0)
return ret;
/* for consistency with TRIGGER_SUSPEND */ /* for consistency with TRIGGER_SUSPEND */
if (ops->post_trigger) { if (ops->post_trigger) {
ret = ops->post_trigger(sdev, cpu_dai, ret = ops->post_trigger(sdev, cpu_dai,
...@@ -631,6 +625,12 @@ static int hda_dai_suspend(struct hdac_bus *bus) ...@@ -631,6 +625,12 @@ static int hda_dai_suspend(struct hdac_bus *bus)
if (ret < 0) if (ret < 0)
return ret; return ret;
} }
ret = hda_link_dma_cleanup(hext_stream->link_substream,
hext_stream,
cpu_dai);
if (ret < 0)
return ret;
} }
} }
......
...@@ -258,6 +258,12 @@ int hda_dsp_pcm_open(struct snd_sof_dev *sdev, ...@@ -258,6 +258,12 @@ int hda_dsp_pcm_open(struct snd_sof_dev *sdev,
snd_pcm_hw_constraint_integer(substream->runtime, snd_pcm_hw_constraint_integer(substream->runtime,
SNDRV_PCM_HW_PARAM_PERIODS); SNDRV_PCM_HW_PARAM_PERIODS);
/* Limit the maximum number of periods to not exceed the BDL entries count */
if (runtime->hw.periods_max > HDA_DSP_MAX_BDL_ENTRIES)
snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIODS,
runtime->hw.periods_min,
HDA_DSP_MAX_BDL_ENTRIES);
/* Only S16 and S32 supported by HDA hardware when used without DSP */ /* Only S16 and S32 supported by HDA hardware when used without DSP */
if (sdev->dspless_mode_selected) if (sdev->dspless_mode_selected)
snd_pcm_hw_constraint_mask64(substream->runtime, SNDRV_PCM_HW_PARAM_FORMAT, snd_pcm_hw_constraint_mask64(substream->runtime, SNDRV_PCM_HW_PARAM_FORMAT,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment