Lines Matching refs: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()
332 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm, true); in intel_pdi_ch_update()
333 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pdm, false); in intel_pdi_ch_update()
407 struct sdw_cdns *cdns = &sdw->cdns; in intel_alloc_port() local
411 for (i = 0; i < cdns->num_ports; i++) { in intel_alloc_port()
412 if (cdns->ports[i].assigned == true) in intel_alloc_port()
415 port = &cdns->ports[i]; in intel_alloc_port()
423 dev_err(cdns->dev, "Unable to find a free port\n"); in intel_alloc_port()
428 ret = sdw_cdns_alloc_stream(cdns, &cdns->pcm, port, ch, dir); in intel_alloc_port()
433 sdw_cdns_config_stream(cdns, port, ch, dir, port->pdi); in intel_alloc_port()
438 ret = sdw_cdns_alloc_stream(cdns, &cdns->pdm, port, ch, dir); in intel_alloc_port()
468 struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); in intel_hw_params() local
469 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_hw_params()
488 dma->nr_ports = sdw_cdns_get_stream(cdns, &cdns->pdm, ch, dir); in intel_hw_params()
491 dma->nr_ports = sdw_cdns_get_stream(cdns, &cdns->pcm, ch, dir); in intel_hw_params()
543 ret = sdw_stream_add_master(&cdns->bus, &sconfig, in intel_hw_params()
546 dev_err(cdns->dev, "add master to stream failed:%d", ret); in intel_hw_params()
564 struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); in intel_hw_free() local
572 ret = sdw_stream_remove_master(&cdns->bus, dma->stream); in intel_hw_free()
612 static int intel_create_dai(struct sdw_cdns *cdns, in intel_create_dai() argument
625 cdns->instance, i); in intel_create_dai()
632 cdns->instance, i); in intel_create_dai()
647 cdns->instance, i); in intel_create_dai()
673 struct sdw_cdns *cdns = &sdw->cdns; in intel_register_dai() local
679 num_dai = cdns->pcm.num_pdi + cdns->pdm.num_pdi; in intel_register_dai()
681 dais = devm_kcalloc(cdns->dev, num_dai, sizeof(*dais), GFP_KERNEL); in intel_register_dai()
686 stream = &cdns->pcm; in intel_register_dai()
688 ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, in intel_register_dai()
693 off += cdns->pcm.num_in; in intel_register_dai()
694 ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, in intel_register_dai()
695 cdns->pcm.num_out, off, stream->num_ch_out, true); in intel_register_dai()
699 off += cdns->pcm.num_out; in intel_register_dai()
700 ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, in intel_register_dai()
701 cdns->pcm.num_bd, off, stream->num_ch_bd, true); in intel_register_dai()
706 stream = &cdns->pdm; in intel_register_dai()
707 off += cdns->pcm.num_bd; in intel_register_dai()
708 ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, in intel_register_dai()
709 cdns->pdm.num_in, off, stream->num_ch_in, false); in intel_register_dai()
713 off += cdns->pdm.num_in; in intel_register_dai()
714 ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, in intel_register_dai()
715 cdns->pdm.num_out, off, stream->num_ch_out, false); in intel_register_dai()
719 off += cdns->pdm.num_bd; in intel_register_dai()
720 ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, in intel_register_dai()
721 cdns->pdm.num_bd, off, stream->num_ch_bd, false); in intel_register_dai()
725 return snd_soc_register_component(cdns->dev, &dai_component, in intel_register_dai()
770 sdw->cdns.dev = &pdev->dev; in intel_probe()
771 sdw->cdns.registers = sdw->res->registers; in intel_probe()
772 sdw->cdns.instance = sdw->instance; in intel_probe()
773 sdw->cdns.msg_count = 0; in intel_probe()
774 sdw->cdns.bus.dev = &pdev->dev; in intel_probe()
775 sdw->cdns.bus.link_id = pdev->id; in intel_probe()
777 sdw_cdns_probe(&sdw->cdns); in intel_probe()
781 sdw->cdns.bus.ops = &sdw_intel_ops; in intel_probe()
784 sdw->cdns.bus.ops = &sdw_intel_ops; in intel_probe()
788 ret = sdw_add_bus_master(&sdw->cdns.bus); in intel_probe()
798 ret = sdw_cdns_init(&sdw->cdns); in intel_probe()
802 ret = sdw_cdns_enable_interrupt(&sdw->cdns); in intel_probe()
806 ret = sdw_cdns_pdi_init(&sdw->cdns, config); in intel_probe()
815 &sdw->cdns); in intel_probe()
817 dev_err(sdw->cdns.dev, "unable to grab IRQ %d, disabling device\n", in intel_probe()
825 dev_err(sdw->cdns.dev, "DAI registration failed: %d", ret); in intel_probe()
826 snd_soc_unregister_component(sdw->cdns.dev); in intel_probe()
835 sdw_delete_bus_master(&sdw->cdns.bus); in intel_probe()
847 snd_soc_unregister_component(sdw->cdns.dev); in intel_remove()
848 sdw_delete_bus_master(&sdw->cdns.bus); in intel_remove()