ASoC: SOF: compress: Move sof_compr_copy functionality

Since we're preparing to add support for compress capture,
we need to move the content of sof_compr_copy into a
separate function which handles the playback direction just
like the initial sof_compr_copy.

Reviewed-by: Paul Olaru <paul.olaru@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Link: https://lore.kernel.org/r/20220822101502.17644-2-laurentiu.mihalcea@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Laurentiu Mihalcea 2022-08-22 13:15:01 +03:00 committed by Mark Brown
parent ced579dcaa
commit 272ff8828f
No known key found for this signature in database
GPG key ID: 24D68B725D5487D0

View file

@ -297,18 +297,13 @@ static int sof_compr_trigger(struct snd_soc_component *component,
&reply, sizeof(reply));
}
static int sof_compr_copy(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
char __user *buf, size_t count)
static int sof_compr_copy_playback(struct snd_compr_runtime *rtd,
char __user *buf, size_t count)
{
struct snd_compr_runtime *rtd = cstream->runtime;
unsigned int offset, n;
void *ptr;
unsigned int offset, n;
int ret;
if (count > rtd->buffer_size)
count = rtd->buffer_size;
div_u64_rem(rtd->total_bytes_available, rtd->buffer_size, &offset);
ptr = rtd->dma_area + offset;
n = rtd->buffer_size - offset;
@ -323,6 +318,18 @@ static int sof_compr_copy(struct snd_soc_component *component,
return count - ret;
}
static int sof_compr_copy(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
char __user *buf, size_t count)
{
struct snd_compr_runtime *rtd = cstream->runtime;
if (count > rtd->buffer_size)
count = rtd->buffer_size;
return sof_compr_copy_playback(rtd, buf, count);
}
static int sof_compr_pointer(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_compr_tstamp *tstamp)