rt5514_dsp 76 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = rt5514_dsp 77 sound/soc/codecs/rt5514-spi.c container_of(work, struct rt5514_dsp, copy_work.work); rt5514_dsp 83 sound/soc/codecs/rt5514-spi.c mutex_lock(&rt5514_dsp->dma_lock); rt5514_dsp 84 sound/soc/codecs/rt5514-spi.c if (!rt5514_dsp->substream) { rt5514_dsp 85 sound/soc/codecs/rt5514-spi.c dev_err(rt5514_dsp->dev, "No pcm substream\n"); rt5514_dsp 89 sound/soc/codecs/rt5514-spi.c runtime = rt5514_dsp->substream->runtime; rt5514_dsp 90 sound/soc/codecs/rt5514-spi.c period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); rt5514_dsp 92 sound/soc/codecs/rt5514-spi.c schedule_delayed_work(&rt5514_dsp->copy_work, 5); rt5514_dsp 96 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp 97 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * rt5514_dsp 100 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { rt5514_dsp 106 sound/soc/codecs/rt5514-spi.c if (cur_wp >= rt5514_dsp->buf_rp) rt5514_dsp 107 sound/soc/codecs/rt5514-spi.c remain_data = (cur_wp - rt5514_dsp->buf_rp); rt5514_dsp 110 sound/soc/codecs/rt5514-spi.c (rt5514_dsp->buf_limit - rt5514_dsp->buf_rp) + rt5514_dsp 111 sound/soc/codecs/rt5514-spi.c (cur_wp - rt5514_dsp->buf_base); rt5514_dsp 114 sound/soc/codecs/rt5514-spi.c schedule_delayed_work(&rt5514_dsp->copy_work, 5); rt5514_dsp 119 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->buf_rp + period_bytes <= rt5514_dsp->buf_limit) { rt5514_dsp 120 sound/soc/codecs/rt5514-spi.c rt5514_spi_burst_read(rt5514_dsp->buf_rp, rt5514_dsp 121 sound/soc/codecs/rt5514-spi.c runtime->dma_area + rt5514_dsp->dma_offset, rt5514_dsp 124 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->buf_rp + period_bytes == rt5514_dsp->buf_limit) rt5514_dsp 125 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp = rt5514_dsp->buf_base; rt5514_dsp 127 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp += period_bytes; rt5514_dsp 129 sound/soc/codecs/rt5514-spi.c truncated_bytes = rt5514_dsp->buf_limit - rt5514_dsp->buf_rp; rt5514_dsp 130 sound/soc/codecs/rt5514-spi.c rt5514_spi_burst_read(rt5514_dsp->buf_rp, rt5514_dsp 131 sound/soc/codecs/rt5514-spi.c runtime->dma_area + rt5514_dsp->dma_offset, rt5514_dsp 134 sound/soc/codecs/rt5514-spi.c rt5514_spi_burst_read(rt5514_dsp->buf_base, rt5514_dsp 135 sound/soc/codecs/rt5514-spi.c runtime->dma_area + rt5514_dsp->dma_offset + rt5514_dsp 138 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp = rt5514_dsp->buf_base + period_bytes - rt5514_dsp 142 sound/soc/codecs/rt5514-spi.c rt5514_dsp->get_size += period_bytes; rt5514_dsp 143 sound/soc/codecs/rt5514-spi.c rt5514_dsp->dma_offset += period_bytes; rt5514_dsp 144 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->dma_offset >= runtime->dma_bytes) rt5514_dsp 145 sound/soc/codecs/rt5514-spi.c rt5514_dsp->dma_offset = 0; rt5514_dsp 147 sound/soc/codecs/rt5514-spi.c snd_pcm_period_elapsed(rt5514_dsp->substream); rt5514_dsp 149 sound/soc/codecs/rt5514-spi.c schedule_delayed_work(&rt5514_dsp->copy_work, 5); rt5514_dsp 152 sound/soc/codecs/rt5514-spi.c mutex_unlock(&rt5514_dsp->dma_lock); rt5514_dsp 155 sound/soc/codecs/rt5514-spi.c static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) rt5514_dsp 159 sound/soc/codecs/rt5514-spi.c if (!rt5514_dsp->substream) rt5514_dsp 162 sound/soc/codecs/rt5514-spi.c rt5514_dsp->get_size = 0; rt5514_dsp 171 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_base = buf[0] | buf[1] << 8 | buf[2] << 16 | rt5514_dsp 176 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_limit = buf[0] | buf[1] << 8 | buf[2] << 16 | rt5514_dsp 181 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp = buf[0] | buf[1] << 8 | buf[2] << 16 | rt5514_dsp 184 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->buf_rp % 8) rt5514_dsp 185 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp = (rt5514_dsp->buf_rp / 8) * 8; rt5514_dsp 187 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; rt5514_dsp 189 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && rt5514_dsp 190 sound/soc/codecs/rt5514-spi.c rt5514_dsp->buf_rp && rt5514_dsp->buf_size) rt5514_dsp 191 sound/soc/codecs/rt5514-spi.c schedule_delayed_work(&rt5514_dsp->copy_work, 0); rt5514_dsp 196 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = data; rt5514_dsp 198 sound/soc/codecs/rt5514-spi.c rt5514_schedule_copy(rt5514_dsp); rt5514_dsp 216 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = rt5514_dsp 221 sound/soc/codecs/rt5514-spi.c mutex_lock(&rt5514_dsp->dma_lock); rt5514_dsp 224 sound/soc/codecs/rt5514-spi.c rt5514_dsp->substream = substream; rt5514_dsp 225 sound/soc/codecs/rt5514-spi.c rt5514_dsp->dma_offset = 0; rt5514_dsp 230 sound/soc/codecs/rt5514-spi.c rt5514_schedule_copy(rt5514_dsp); rt5514_dsp 232 sound/soc/codecs/rt5514-spi.c mutex_unlock(&rt5514_dsp->dma_lock); rt5514_dsp 241 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = rt5514_dsp 244 sound/soc/codecs/rt5514-spi.c mutex_lock(&rt5514_dsp->dma_lock); rt5514_dsp 245 sound/soc/codecs/rt5514-spi.c rt5514_dsp->substream = NULL; rt5514_dsp 246 sound/soc/codecs/rt5514-spi.c mutex_unlock(&rt5514_dsp->dma_lock); rt5514_dsp 248 sound/soc/codecs/rt5514-spi.c cancel_delayed_work_sync(&rt5514_dsp->copy_work); rt5514_dsp 259 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = rt5514_dsp 262 sound/soc/codecs/rt5514-spi.c return bytes_to_frames(runtime, rt5514_dsp->dma_offset); rt5514_dsp 275 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp; rt5514_dsp 278 sound/soc/codecs/rt5514-spi.c rt5514_dsp = devm_kzalloc(component->dev, sizeof(*rt5514_dsp), rt5514_dsp 280 sound/soc/codecs/rt5514-spi.c if (!rt5514_dsp) rt5514_dsp 283 sound/soc/codecs/rt5514-spi.c rt5514_dsp->dev = &rt5514_spi->dev; rt5514_dsp 284 sound/soc/codecs/rt5514-spi.c mutex_init(&rt5514_dsp->dma_lock); rt5514_dsp 285 sound/soc/codecs/rt5514-spi.c INIT_DELAYED_WORK(&rt5514_dsp->copy_work, rt5514_spi_copy_work); rt5514_dsp 286 sound/soc/codecs/rt5514-spi.c snd_soc_component_set_drvdata(component, rt5514_dsp); rt5514_dsp 292 sound/soc/codecs/rt5514-spi.c rt5514_dsp); rt5514_dsp 298 sound/soc/codecs/rt5514-spi.c device_init_wakeup(rt5514_dsp->dev, true); rt5514_dsp 473 sound/soc/codecs/rt5514-spi.c struct rt5514_dsp *rt5514_dsp = dev_get_drvdata(dev); rt5514_dsp 480 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp) { rt5514_dsp 481 sound/soc/codecs/rt5514-spi.c if (rt5514_dsp->substream) { rt5514_dsp 485 sound/soc/codecs/rt5514-spi.c rt5514_schedule_copy(rt5514_dsp); rt5514_dsp 281 sound/soc/rockchip/rk3399_gru_sound.c SND_SOC_DAILINK_DEFS(rt5514_dsp, rt5514_dsp 334 sound/soc/rockchip/rk3399_gru_sound.c SND_SOC_DAILINK_REG(rt5514_dsp),