aboutsummaryrefslogtreecommitdiff
path: root/sound/soc/sh/rcar/core.c
diff options
context:
space:
mode:
authorGravatar Mark Brown <broonie@kernel.org> 2019-09-15 10:31:44 +0100
committerGravatar Mark Brown <broonie@kernel.org> 2019-09-15 10:31:44 +0100
commita54f8485727e6e85b5dfe1d9708b80d13fe8bf5f (patch)
tree9d38878259b080ffa01e1e398094906ee4e988fe /sound/soc/sh/rcar/core.c
parentMerge branch 'asoc-5.3' into asoc-linus (diff)
parentASoC: sdm845: remove unneeded semicolon (diff)
downloadlinux-a54f8485727e6e85b5dfe1d9708b80d13fe8bf5f.tar.gz
linux-a54f8485727e6e85b5dfe1d9708b80d13fe8bf5f.tar.bz2
linux-a54f8485727e6e85b5dfe1d9708b80d13fe8bf5f.zip
Merge branch 'asoc-5.4' into asoc-next
Diffstat (limited to 'sound/soc/sh/rcar/core.c')
-rw-r--r--sound/soc/sh/rcar/core.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index 56e8dae9a15c..bda5b958d0dc 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1421,6 +1421,20 @@ static int rsnd_hw_params(struct snd_pcm_substream *substream,
params_buffer_bytes(hw_params));
}
+static int rsnd_hw_free(struct snd_pcm_substream *substream)
+{
+ struct snd_soc_dai *dai = rsnd_substream_to_dai(substream);
+ struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai);
+ struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream);
+ int ret;
+
+ ret = rsnd_dai_call(hw_free, io, substream);
+ if (ret)
+ return ret;
+
+ return snd_pcm_lib_free_pages(substream);
+}
+
static snd_pcm_uframes_t rsnd_pointer(struct snd_pcm_substream *substream)
{
struct snd_soc_dai *dai = rsnd_substream_to_dai(substream);
@@ -1436,7 +1450,7 @@ static snd_pcm_uframes_t rsnd_pointer(struct snd_pcm_substream *substream)
static const struct snd_pcm_ops rsnd_pcm_ops = {
.ioctl = snd_pcm_lib_ioctl,
.hw_params = rsnd_hw_params,
- .hw_free = snd_pcm_lib_free_pages,
+ .hw_free = rsnd_hw_free,
.pointer = rsnd_pointer,
};