Lines Matching full:cdns
97 struct sdw_cdns cdns; member
102 #define cdns_to_intel(_cdns) container_of(_cdns, struct sdw_intel, cdns)
184 sdw->cdns.link_up = true; in intel_link_power_up()
240 dev_err(sdw->cdns.dev, "Failed to set sync period: %d", ret); in intel_shim_init()
342 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm, true); in intel_pdi_ch_update()
343 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pdm, false); in intel_pdi_ch_update()
423 struct sdw_cdns *cdns = &sdw->cdns; in intel_alloc_port() local
427 for (i = 0; i < cdns->num_ports; i++) { in intel_alloc_port()
428 if (cdns->ports[i].assigned == true) in intel_alloc_port()
431 port = &cdns->ports[i]; in intel_alloc_port()
439 dev_err(cdns->dev, "Unable to find a free port\n"); in intel_alloc_port()
444 ret = sdw_cdns_alloc_stream(cdns, &cdns->pcm, port, ch, dir); in intel_alloc_port()
449 sdw_cdns_config_stream(cdns, port, ch, dir, port->pdi); in intel_alloc_port()
454 ret = sdw_cdns_alloc_stream(cdns, &cdns->pdm, port, ch, dir); in intel_alloc_port()
484 struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); in intel_hw_params() local
485 struct sdw_intel *sdw = cdns_to_intel(cdns); 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()
559 ret = sdw_stream_add_master(&cdns->bus, &sconfig, in intel_hw_params()
562 dev_err(cdns->dev, "add master to stream failed:%d", ret); in intel_hw_params()
580 struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); in intel_hw_free() local
588 ret = sdw_stream_remove_master(&cdns->bus, dma->stream); in intel_hw_free()
628 static int intel_create_dai(struct sdw_cdns *cdns, in intel_create_dai() argument
641 cdns->instance, i); in intel_create_dai()
648 cdns->instance, i); in intel_create_dai()
663 cdns->instance, i); in intel_create_dai()
689 struct sdw_cdns *cdns = &sdw->cdns; in intel_register_dai() local
695 num_dai = cdns->pcm.num_pdi + cdns->pdm.num_pdi; in intel_register_dai()
697 dais = devm_kcalloc(cdns->dev, num_dai, sizeof(*dais), GFP_KERNEL); in intel_register_dai()
702 stream = &cdns->pcm; in intel_register_dai()
704 ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, in intel_register_dai()
709 off += cdns->pcm.num_in; in intel_register_dai()
710 ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, in intel_register_dai()
711 cdns->pcm.num_out, off, stream->num_ch_out, true); in intel_register_dai()
715 off += cdns->pcm.num_out; in intel_register_dai()
716 ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, in intel_register_dai()
717 cdns->pcm.num_bd, off, stream->num_ch_bd, true); in intel_register_dai()
722 stream = &cdns->pdm; in intel_register_dai()
723 off += cdns->pcm.num_bd; in intel_register_dai()
724 ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, in intel_register_dai()
725 cdns->pdm.num_in, off, stream->num_ch_in, false); in intel_register_dai()
729 off += cdns->pdm.num_in; in intel_register_dai()
730 ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, in intel_register_dai()
731 cdns->pdm.num_out, off, stream->num_ch_out, false); in intel_register_dai()
735 off += cdns->pdm.num_bd; in intel_register_dai()
736 ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, in intel_register_dai()
737 cdns->pdm.num_bd, off, stream->num_ch_bd, false); in intel_register_dai()
741 return snd_soc_register_component(cdns->dev, &dai_component, in intel_register_dai()
786 sdw->cdns.dev = &pdev->dev; in intel_probe()
787 sdw->cdns.registers = sdw->res->registers; in intel_probe()
788 sdw->cdns.instance = sdw->instance; in intel_probe()
789 sdw->cdns.msg_count = 0; in intel_probe()
790 sdw->cdns.bus.dev = &pdev->dev; in intel_probe()
791 sdw->cdns.bus.link_id = pdev->id; in intel_probe()
793 sdw_cdns_probe(&sdw->cdns); in intel_probe()
797 sdw->cdns.bus.ops = &sdw_intel_ops; in intel_probe()
800 sdw->cdns.bus.ops = &sdw_intel_ops; in intel_probe()
804 ret = sdw_add_bus_master(&sdw->cdns.bus); in intel_probe()
814 ret = sdw_cdns_init(&sdw->cdns); in intel_probe()
818 ret = sdw_cdns_enable_interrupt(&sdw->cdns); in intel_probe()
822 ret = sdw_cdns_pdi_init(&sdw->cdns, config); in intel_probe()
831 &sdw->cdns); in intel_probe()
833 dev_err(sdw->cdns.dev, "unable to grab IRQ %d, disabling device\n", in intel_probe()
841 dev_err(sdw->cdns.dev, "DAI registration failed: %d", ret); in intel_probe()
842 snd_soc_unregister_component(sdw->cdns.dev); in intel_probe()
851 sdw_delete_bus_master(&sdw->cdns.bus); in intel_probe()
863 snd_soc_unregister_component(sdw->cdns.dev); in intel_remove()
864 sdw_delete_bus_master(&sdw->cdns.bus); in intel_remove()