Lines Matching full:asrc
6 // Freescale ASRC Memory to Memory (M2M) driver
54 struct fsl_asrc *asrc = pair->asrc; in asrc_read_last_fifo() local
69 size = asrc->get_output_fifo_size(pair); in asrc_read_last_fifo()
74 regmap_read(asrc->regmap, asrc->get_fifo_addr(OUT, index), ®); in asrc_read_last_fifo()
106 struct fsl_asrc *asrc = pair->asrc; in asrc_dmaconfig() local
107 struct device *dev = &asrc->pdev->dev; in asrc_dmaconfig()
137 slave_config.dst_maxburst = asrc->m2m_get_maxburst(IN, pair); in asrc_dmaconfig()
142 slave_config.src_maxburst = asrc->m2m_get_maxburst(OUT, pair); in asrc_dmaconfig()
188 struct fsl_asrc *asrc = pair->asrc; in asrc_m2m_device_run() local
189 struct device *dev = &asrc->pdev->dev; in asrc_m2m_device_run()
199 if (asrc->m2m_set_ratio_mod) { in asrc_m2m_device_run()
201 asrc->m2m_set_ratio_mod(pair, pair->ratio_mod); in asrc_m2m_device_run()
210 fifo_addr = asrc->paddr + asrc->get_fifo_addr(IN, index); in asrc_m2m_device_run()
234 fifo_addr = asrc->paddr + asrc->get_fifo_addr(OUT, index); in asrc_m2m_device_run()
235 out_dma_len = asrc->m2m_calc_out_len(pair, in_buf_len); in asrc_m2m_device_run()
264 asrc->m2m_start(pair); in asrc_m2m_device_run()
290 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_comp_open() local
292 struct device *dev = &asrc->pdev->dev; in fsl_asrc_m2m_comp_open()
296 pair = kzalloc(sizeof(*pair) + asrc->pair_priv_size, GFP_KERNEL); in fsl_asrc_m2m_comp_open()
301 pair->asrc = asrc; in fsl_asrc_m2m_comp_open()
319 dev_err(dev, "Failed to power up asrc\n"); in fsl_asrc_m2m_comp_open()
336 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_comp_release() local
339 struct device *dev = &asrc->pdev->dev; in fsl_asrc_m2m_comp_release()
354 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_comp_set_params() local
360 ret = asrc->m2m_get_cap(&cap); in fsl_asrc_m2m_comp_set_params()
459 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_comp_task_create() local
462 struct device *dev = &asrc->pdev->dev; in fsl_asrc_m2m_comp_task_create()
485 /* Request asrc pair/context */ in fsl_asrc_m2m_comp_task_create()
486 ret = asrc->request_pair(pair->channels, pair); in fsl_asrc_m2m_comp_task_create()
492 ret = asrc->m2m_prepare(pair); in fsl_asrc_m2m_comp_task_create()
499 pair->dma_chan[IN] = asrc->get_dma_channel(pair, IN); in fsl_asrc_m2m_comp_task_create()
506 pair->dma_chan[OUT] = asrc->get_dma_channel(pair, OUT); in fsl_asrc_m2m_comp_task_create()
518 if (asrc->m2m_unprepare) in fsl_asrc_m2m_comp_task_create()
519 asrc->m2m_unprepare(pair); in fsl_asrc_m2m_comp_task_create()
521 asrc->release_pair(pair); in fsl_asrc_m2m_comp_task_create()
544 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_comp_task_free() local
549 if (asrc->m2m_stop) in fsl_asrc_m2m_comp_task_free()
550 asrc->m2m_stop(pair); in fsl_asrc_m2m_comp_task_free()
552 if (asrc->m2m_unprepare) in fsl_asrc_m2m_comp_task_free()
553 asrc->m2m_unprepare(pair); in fsl_asrc_m2m_comp_task_free()
554 asrc->release_pair(pair); in fsl_asrc_m2m_comp_task_free()
578 static int fsl_asrc_m2m_fill_codec_caps(struct fsl_asrc *asrc, in fsl_asrc_m2m_fill_codec_caps() argument
586 ret = asrc->m2m_get_cap(&cap); in fsl_asrc_m2m_fill_codec_caps()
614 struct fsl_asrc *asrc = stream->private_data; in fsl_asrc_m2m_get_codec_caps() local
616 return fsl_asrc_m2m_fill_codec_caps(asrc, codec); in fsl_asrc_m2m_get_codec_caps()
631 int fsl_asrc_m2m_suspend(struct fsl_asrc *asrc) in fsl_asrc_m2m_suspend() argument
637 pair = asrc->pair[i]; in fsl_asrc_m2m_suspend()
651 if (asrc->m2m_pair_suspend) in fsl_asrc_m2m_suspend()
652 asrc->m2m_pair_suspend(pair); in fsl_asrc_m2m_suspend()
659 int fsl_asrc_m2m_resume(struct fsl_asrc *asrc) in fsl_asrc_m2m_resume() argument
665 pair = asrc->pair[i]; in fsl_asrc_m2m_resume()
668 if (asrc->m2m_pair_resume) in fsl_asrc_m2m_resume()
669 asrc->m2m_pair_resume(pair); in fsl_asrc_m2m_resume()
676 int fsl_asrc_m2m_init(struct fsl_asrc *asrc) in fsl_asrc_m2m_init() argument
678 struct device *dev = &asrc->pdev->dev; in fsl_asrc_m2m_init()
688 strscpy(card->driver, "fsl-asrc-m2m", sizeof(card->driver)); in fsl_asrc_m2m_init()
689 strscpy(card->shortname, "ASRC-M2M", sizeof(card->shortname)); in fsl_asrc_m2m_init()
690 strscpy(card->longname, "ASRC-M2M", sizeof(card->shortname)); in fsl_asrc_m2m_init()
692 asrc->card = card; in fsl_asrc_m2m_init()
701 compr->private_data = asrc; in fsl_asrc_m2m_init()
703 ret = snd_compress_new(card, 0, SND_COMPRESS_ACCEL, "ASRC M2M", compr); in fsl_asrc_m2m_init()
718 void fsl_asrc_m2m_exit(struct fsl_asrc *asrc) in fsl_asrc_m2m_exit() argument
720 struct snd_card *card = asrc->card; in fsl_asrc_m2m_exit()
728 MODULE_DESCRIPTION("Freescale ASRC M2M driver");