Lines Matching refs:dma

466 static void intel_port_cleanup(struct sdw_cdns_dma_data *dma)  in intel_port_cleanup()  argument
470 for (i = 0; i < dma->nr_ports; i++) { in intel_port_cleanup()
471 if (dma->port[i]) { in intel_port_cleanup()
472 dma->port[i]->pdi->assigned = false; in intel_port_cleanup()
473 dma->port[i]->pdi = NULL; in intel_port_cleanup()
474 dma->port[i]->assigned = false; in intel_port_cleanup()
475 dma->port[i] = NULL; in intel_port_cleanup()
486 struct sdw_cdns_dma_data *dma; in intel_hw_params() local
492 dma = snd_soc_dai_get_dma_data(dai, substream); in intel_hw_params()
493 if (!dma) in intel_hw_params()
502 if (dma->stream_type == SDW_STREAM_PDM) { in intel_hw_params()
504 dma->nr_ports = sdw_cdns_get_stream(cdns, &cdns->pdm, ch, dir); in intel_hw_params()
507 dma->nr_ports = sdw_cdns_get_stream(cdns, &cdns->pcm, ch, dir); in intel_hw_params()
510 if (!dma->nr_ports) { in intel_hw_params()
515 dma->port = kcalloc(dma->nr_ports, sizeof(*dma->port), GFP_KERNEL); in intel_hw_params()
516 if (!dma->port) in intel_hw_params()
519 for (i = 0; i < dma->nr_ports; i++) { in intel_hw_params()
520 dma->port[i] = intel_alloc_port(sdw, ch, dir, pcm); in intel_hw_params()
521 if (!dma->port[i]) { in intel_hw_params()
528 for (i = 0; i < dma->nr_ports; i++) { in intel_hw_params()
530 dma->port[i]->pdi->intel_alh_id); in intel_hw_params()
538 sconfig.type = dma->stream_type; in intel_hw_params()
540 if (dma->stream_type == SDW_STREAM_PDM) { in intel_hw_params()
548 pconfig = kcalloc(dma->nr_ports, sizeof(*pconfig), GFP_KERNEL); in intel_hw_params()
554 for (i = 0; i < dma->nr_ports; i++) { in intel_hw_params()
555 pconfig[i].num = dma->port[i]->num; in intel_hw_params()
560 pconfig, dma->nr_ports, dma->stream); in intel_hw_params()
572 intel_port_cleanup(dma); in intel_hw_params()
573 kfree(dma->port); in intel_hw_params()
581 struct sdw_cdns_dma_data *dma; in intel_hw_free() local
584 dma = snd_soc_dai_get_dma_data(dai, substream); in intel_hw_free()
585 if (!dma) in intel_hw_free()
588 ret = sdw_stream_remove_master(&cdns->bus, dma->stream); in intel_hw_free()
591 dma->stream->name, ret); in intel_hw_free()
593 intel_port_cleanup(dma); in intel_hw_free()
594 kfree(dma->port); in intel_hw_free()