Lines Matching full:pdi
518 * PDI routines
548 * WORKAROUND: on all existing Intel controllers, pdi in intel_pdi_get_ch_cap()
550 * supports 8 channels. Performing hardcoding for pdi in intel_pdi_get_ch_cap()
563 struct sdw_cdns_pdi *pdi, in intel_pdi_get_ch_update() argument
570 pdi->ch_count = intel_pdi_get_ch_cap(sdw, pdi->num); in intel_pdi_get_ch_update()
571 ch_count += pdi->ch_count; in intel_pdi_get_ch_update()
572 pdi++; in intel_pdi_get_ch_update()
595 intel_pdi_shim_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) in intel_pdi_shim_configure() argument
602 pdi->intel_alh_id = (link_id * 16) + pdi->num + 3; in intel_pdi_shim_configure()
603 if (pdi->num >= 2) in intel_pdi_shim_configure()
604 pdi->intel_alh_id += 2; in intel_pdi_shim_configure()
610 if (pdi->type != SDW_STREAM_PCM) in intel_pdi_shim_configure()
613 if (pdi->dir == SDW_DATA_DIR_RX) in intel_pdi_shim_configure()
618 u32p_replace_bits(&pdi_conf, pdi->intel_alh_id, SDW_SHIM_PCMSYCM_STREAM); in intel_pdi_shim_configure()
619 u32p_replace_bits(&pdi_conf, pdi->l_ch_num, SDW_SHIM_PCMSYCM_LCHN); in intel_pdi_shim_configure()
620 u32p_replace_bits(&pdi_conf, pdi->h_ch_num, SDW_SHIM_PCMSYCM_HCHN); in intel_pdi_shim_configure()
622 intel_writew(shim, SDW_SHIM_PCMSYCHM(link_id, pdi->num), pdi_conf); in intel_pdi_shim_configure()
626 intel_pdi_alh_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) in intel_pdi_alh_configure() argument
633 pdi->intel_alh_id = (link_id * 16) + pdi->num + 3; in intel_pdi_alh_configure()
634 if (pdi->num >= 2) in intel_pdi_alh_configure()
635 pdi->intel_alh_id += 2; in intel_pdi_alh_configure()
638 conf = intel_readl(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id)); in intel_pdi_alh_configure()
641 u32p_replace_bits(&conf, pdi->ch_count - 1, SDW_ALH_STRMZCFG_CHN); in intel_pdi_alh_configure()
643 intel_writel(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id), conf); in intel_pdi_alh_configure()
678 struct sdw_cdns_pdi *pdi; in intel_hw_params() local
694 pdi = sdw_cdns_alloc_pdi(cdns, &cdns->pcm, ch, dir, dai->id); in intel_hw_params()
696 if (!pdi) { in intel_hw_params()
701 /* do run-time configurations for SHIM, ALH and PDI/PORT */ in intel_hw_params()
702 intel_pdi_shim_configure(sdw, pdi); in intel_hw_params()
703 intel_pdi_alh_configure(sdw, pdi); in intel_hw_params()
704 sdw_cdns_config_stream(cdns, ch, dir, pdi); in intel_hw_params()
706 /* store pdi and hw_params, may be needed in prepare step */ in intel_hw_params()
709 dai_runtime->pdi = pdi; in intel_hw_params()
711 /* Inform DSP about PDI stream number */ in intel_hw_params()
714 pdi->intel_alh_id); in intel_hw_params()
732 pconfig->num = pdi->num; in intel_hw_params()
784 intel_pdi_shim_configure(sdw, dai_runtime->pdi); in intel_prepare()
785 intel_pdi_alh_configure(sdw, dai_runtime->pdi); in intel_prepare()
786 sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi); in intel_prepare()
788 /* Inform DSP about PDI stream number */ in intel_prepare()
792 dai_runtime->pdi->intel_alh_id); in intel_prepare()
822 dai_runtime->pdi = NULL; in intel_hw_free()
991 /* Read the PDI config and initialize cadence PDI */ in intel_register_dai()