pcm.c (ee8443050b2bf06d80fdd2c78cc25cae2abdedcd) pcm.c (3dc0d709177828a22dfc9d0072e3ac937ef90d06)
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2//
3// This file is provided under a dual BSD/GPLv2 license. When using or
4// redistributing this file, you may do so under either license.
5//
6// Copyright(c) 2018 Intel Corporation. All rights reserved.
7//
8// Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
9//
10// PCM Layer, interface between ALSA and IPC.
11//
12
13#include <linux/pm_runtime.h>
14#include <sound/pcm_params.h>
15#include <sound/sof.h>
16#include "sof-priv.h"
17#include "sof-audio.h"
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2//
3// This file is provided under a dual BSD/GPLv2 license. When using or
4// redistributing this file, you may do so under either license.
5//
6// Copyright(c) 2018 Intel Corporation. All rights reserved.
7//
8// Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
9//
10// PCM Layer, interface between ALSA and IPC.
11//
12
13#include <linux/pm_runtime.h>
14#include <sound/pcm_params.h>
15#include <sound/sof.h>
16#include "sof-priv.h"
17#include "sof-audio.h"
18#include "ops.h"
19#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_PROBES)
20#include "sof-probes.h"
21#endif
22#include "sof-utils.h"
18#include "sof-utils.h"
19#include "ops.h"
23
24/* Create DMA buffer page table for DSP */
25static int create_page_table(struct snd_soc_component *component,
26 struct snd_pcm_substream *substream,
27 unsigned char *dma_area, size_t size)
28{
29 struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
30 struct snd_sof_pcm *spcm;

--- 889 unchanged lines hidden (view full) ---

920 pd->close = sof_pcm_close;
921 pd->hw_params = sof_pcm_hw_params;
922 pd->prepare = sof_pcm_prepare;
923 pd->hw_free = sof_pcm_hw_free;
924 pd->trigger = sof_pcm_trigger;
925 pd->pointer = sof_pcm_pointer;
926 pd->ack = sof_pcm_ack;
927
20
21/* Create DMA buffer page table for DSP */
22static int create_page_table(struct snd_soc_component *component,
23 struct snd_pcm_substream *substream,
24 unsigned char *dma_area, size_t size)
25{
26 struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
27 struct snd_sof_pcm *spcm;

--- 889 unchanged lines hidden (view full) ---

917 pd->close = sof_pcm_close;
918 pd->hw_params = sof_pcm_hw_params;
919 pd->prepare = sof_pcm_prepare;
920 pd->hw_free = sof_pcm_hw_free;
921 pd->trigger = sof_pcm_trigger;
922 pd->pointer = sof_pcm_pointer;
923 pd->ack = sof_pcm_ack;
924
928#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_PROBES)
929 pd->compress_ops = &sof_probe_compressed_ops;
930#endif
931 pd->pcm_construct = sof_pcm_new;
932 pd->ignore_machine = drv_name;
933 pd->be_hw_params_fixup = sof_pcm_dai_link_fixup;
934 pd->be_pcm_base = SOF_BE_PCM_BASE;
935 pd->use_dai_pcm_id = true;
936 pd->topology_name_prefix = "sof";
937
938 /* increment module refcount when a pcm is opened */
939 pd->module_get_upon_open = 1;
940}
925 pd->pcm_construct = sof_pcm_new;
926 pd->ignore_machine = drv_name;
927 pd->be_hw_params_fixup = sof_pcm_dai_link_fixup;
928 pd->be_pcm_base = SOF_BE_PCM_BASE;
929 pd->use_dai_pcm_id = true;
930 pd->topology_name_prefix = "sof";
931
932 /* increment module refcount when a pcm is opened */
933 pd->module_get_upon_open = 1;
934}