Lines Matching +full:playback +full:- +full:codecs

1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
21 #include <sound/soc-dai.h>
22 #include <linux/dma-mapping.h>
26 #include "acp-mach.h"
32 .name = "acp-i2s-sp",
34 .playback = {
35 .stream_name = "I2S SP Playback",
57 .name = "acp-i2s-bt",
59 .playback = {
60 .stream_name = "I2S BT Playback",
82 .name = "acp-pdm-dmic",
99 struct device *dev = &pdev->dev;
103 chip = dev_get_platdata(&pdev->dev);
104 if (!chip || !chip->base) {
105 dev_err(&pdev->dev, "ACP chip data is NULL\n");
106 return -ENODEV;
109 if (chip->acp_rev != ACP_RN_PCI_ID) {
110 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev);
111 return -ENODEV;
114 chip->dev = dev;
115 chip->dai_driver = acp_renoir_dai;
116 chip->num_dai = ARRAY_SIZE(acp_renoir_dai);
120 dev_err(dev, "ACP en-interrupts failed\n");
126 pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS);
127 pm_runtime_use_autosuspend(&pdev->dev);
128 pm_runtime_mark_last_busy(&pdev->dev);
129 pm_runtime_set_active(&pdev->dev);
130 pm_runtime_enable(&pdev->dev);
136 struct device *dev = &pdev->dev;
142 dev_err(dev, "ACP dis-interrupts failed\n");
149 struct acp_chip_info *chip = dev_get_drvdata(dev->parent);
155 spin_lock(&chip->acp_lock);
156 list_for_each_entry(stream, &chip->stream_list, list) {
157 substream = stream->substream;
158 if (substream && substream->runtime) {
159 buf_in_frames = (substream->runtime->buffer_size);
160 buf_size = frames_to_bytes(substream->runtime, buf_in_frames);
163 if (stream->dai_id)
169 spin_unlock(&chip->acp_lock);