Lines Matching refs:sdw

74 	struct sdw_intel *sdw = s_file->private;  in intel_reg_show()  local
75 void __iomem *s = sdw->link_res->shim; in intel_reg_show()
76 void __iomem *a = sdw->link_res->alh; in intel_reg_show()
139 struct sdw_intel *sdw = data; in intel_set_m_datamode() local
140 struct sdw_bus *bus = &sdw->cdns.bus; in intel_set_m_datamode()
157 struct sdw_intel *sdw = data; in intel_set_s_datamode() local
158 struct sdw_bus *bus = &sdw->cdns.bus; in intel_set_s_datamode()
173 static void intel_debugfs_init(struct sdw_intel *sdw) in intel_debugfs_init() argument
175 struct dentry *root = sdw->cdns.bus.debugfs; in intel_debugfs_init()
180 sdw->debugfs = debugfs_create_dir("intel-sdw", root); in intel_debugfs_init()
182 debugfs_create_file("intel-registers", 0400, sdw->debugfs, sdw, in intel_debugfs_init()
185 debugfs_create_file("intel-m-datamode", 0200, sdw->debugfs, sdw, in intel_debugfs_init()
188 debugfs_create_file("intel-s-datamode", 0200, sdw->debugfs, sdw, in intel_debugfs_init()
191 sdw_cdns_debugfs_init(&sdw->cdns, sdw->debugfs); in intel_debugfs_init()
194 static void intel_debugfs_exit(struct sdw_intel *sdw) in intel_debugfs_exit() argument
196 debugfs_remove_recursive(sdw->debugfs); in intel_debugfs_exit()
199 static void intel_debugfs_init(struct sdw_intel *sdw) {} in intel_debugfs_init() argument
200 static void intel_debugfs_exit(struct sdw_intel *sdw) {} in intel_debugfs_exit() argument
207 static void intel_shim_glue_to_master_ip(struct sdw_intel *sdw) in intel_shim_glue_to_master_ip() argument
209 void __iomem *shim = sdw->link_res->shim; in intel_shim_glue_to_master_ip()
210 unsigned int link_id = sdw->instance; in intel_shim_glue_to_master_ip()
237 static void intel_shim_master_ip_to_glue(struct sdw_intel *sdw) in intel_shim_master_ip_to_glue() argument
239 unsigned int link_id = sdw->instance; in intel_shim_master_ip_to_glue()
240 void __iomem *shim = sdw->link_res->shim; in intel_shim_master_ip_to_glue()
258 static void intel_shim_init(struct sdw_intel *sdw) in intel_shim_init() argument
260 void __iomem *shim = sdw->link_res->shim; in intel_shim_init()
261 unsigned int link_id = sdw->instance; in intel_shim_init()
281 intel_shim_glue_to_master_ip(sdw); in intel_shim_init()
291 static int intel_shim_check_wake(struct sdw_intel *sdw) in intel_shim_check_wake() argument
296 shim = sdw->link_res->shim; in intel_shim_check_wake()
299 return wake_sts & BIT(sdw->instance); in intel_shim_check_wake()
302 static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable) in intel_shim_wake() argument
304 void __iomem *shim = sdw->link_res->shim; in intel_shim_wake()
305 unsigned int link_id = sdw->instance; in intel_shim_wake()
308 mutex_lock(sdw->link_res->shim_lock); in intel_shim_wake()
325 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_wake()
328 static bool intel_check_cmdsync_unlocked(struct sdw_intel *sdw) in intel_check_cmdsync_unlocked() argument
330 void __iomem *shim = sdw->link_res->shim; in intel_check_cmdsync_unlocked()
337 static int intel_link_power_up(struct sdw_intel *sdw) in intel_link_power_up() argument
339 unsigned int link_id = sdw->instance; in intel_link_power_up()
340 void __iomem *shim = sdw->link_res->shim; in intel_link_power_up()
341 u32 *shim_mask = sdw->link_res->shim_mask; in intel_link_power_up()
342 struct sdw_bus *bus = &sdw->cdns.bus; in intel_link_power_up()
352 mutex_lock(sdw->link_res->shim_lock); in intel_link_power_up()
373 dev_err(sdw->cdns.dev, "%s: invalid clock configuration, mclk %d lcap_mlcs %d\n", in intel_link_power_up()
393 dev_dbg(sdw->cdns.dev, "powering up all links\n"); in intel_link_power_up()
396 dev_dbg(sdw->cdns.dev, in intel_link_power_up()
411 spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, sdw->link_res->link_mask); in intel_link_power_up()
412 cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask); in intel_link_power_up()
418 dev_err(sdw->cdns.dev, "Failed to power up link: %d\n", ret); in intel_link_power_up()
426 dev_err(sdw->cdns.dev, in intel_link_power_up()
441 sdw->cdns.link_up = true; in intel_link_power_up()
443 intel_shim_init(sdw); in intel_link_power_up()
446 mutex_unlock(sdw->link_res->shim_lock); in intel_link_power_up()
451 static int intel_link_power_down(struct sdw_intel *sdw) in intel_link_power_down() argument
454 unsigned int link_id = sdw->instance; in intel_link_power_down()
455 void __iomem *shim = sdw->link_res->shim; in intel_link_power_down()
456 u32 *shim_mask = sdw->link_res->shim_mask; in intel_link_power_down()
459 mutex_lock(sdw->link_res->shim_lock); in intel_link_power_down()
462 dev_err(sdw->cdns.dev, in intel_link_power_down()
465 sdw->cdns.link_up = false; in intel_link_power_down()
467 intel_shim_master_ip_to_glue(sdw); in intel_link_power_down()
473 dev_dbg(sdw->cdns.dev, "powering down all links\n"); in intel_link_power_down()
479 spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, ~sdw->link_res->link_mask); in intel_link_power_down()
480 cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask); in intel_link_power_down()
486 dev_err(sdw->cdns.dev, "%s: could not power down link\n", __func__); in intel_link_power_down()
495 mutex_unlock(sdw->link_res->shim_lock); in intel_link_power_down()
500 static void intel_shim_sync_arm(struct sdw_intel *sdw) in intel_shim_sync_arm() argument
502 void __iomem *shim = sdw->link_res->shim; in intel_shim_sync_arm()
505 mutex_lock(sdw->link_res->shim_lock); in intel_shim_sync_arm()
509 sync_reg |= (SDW_SHIM_SYNC_CMDSYNC << sdw->instance); in intel_shim_sync_arm()
512 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_sync_arm()
515 static int intel_shim_sync_go_unlocked(struct sdw_intel *sdw) in intel_shim_sync_go_unlocked() argument
517 void __iomem *shim = sdw->link_res->shim; in intel_shim_sync_go_unlocked()
535 static int intel_shim_sync_go(struct sdw_intel *sdw) in intel_shim_sync_go() argument
539 mutex_lock(sdw->link_res->shim_lock); in intel_shim_sync_go()
541 ret = intel_shim_sync_go_unlocked(sdw); in intel_shim_sync_go()
543 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_sync_go()
551 static void intel_pdi_init(struct sdw_intel *sdw, in intel_pdi_init() argument
554 void __iomem *shim = sdw->link_res->shim; in intel_pdi_init()
555 unsigned int link_id = sdw->instance; in intel_pdi_init()
565 dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n", in intel_pdi_init()
570 intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num) in intel_pdi_get_ch_cap() argument
572 void __iomem *shim = sdw->link_res->shim; in intel_pdi_get_ch_cap()
573 unsigned int link_id = sdw->instance; in intel_pdi_get_ch_cap()
593 static int intel_pdi_get_ch_update(struct sdw_intel *sdw, in intel_pdi_get_ch_update() argument
601 pdi->ch_count = intel_pdi_get_ch_cap(sdw, pdi->num); in intel_pdi_get_ch_update()
610 static int intel_pdi_stream_ch_update(struct sdw_intel *sdw, in intel_pdi_stream_ch_update() argument
613 intel_pdi_get_ch_update(sdw, stream->bd, stream->num_bd, in intel_pdi_stream_ch_update()
616 intel_pdi_get_ch_update(sdw, stream->in, stream->num_in, in intel_pdi_stream_ch_update()
619 intel_pdi_get_ch_update(sdw, stream->out, stream->num_out, in intel_pdi_stream_ch_update()
626 intel_pdi_shim_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) in intel_pdi_shim_configure() argument
628 void __iomem *shim = sdw->link_res->shim; in intel_pdi_shim_configure()
629 unsigned int link_id = sdw->instance; in intel_pdi_shim_configure()
657 intel_pdi_alh_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) in intel_pdi_alh_configure() argument
659 void __iomem *alh = sdw->link_res->alh; in intel_pdi_alh_configure()
660 unsigned int link_id = sdw->instance; in intel_pdi_alh_configure()
677 static int intel_params_stream(struct sdw_intel *sdw, in intel_params_stream() argument
683 struct sdw_intel_link_res *res = sdw->link_res; in intel_params_stream()
702 static int intel_free_stream(struct sdw_intel *sdw, in intel_free_stream() argument
707 struct sdw_intel_link_res *res = sdw->link_res; in intel_free_stream()
725 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_hw_params() local
748 intel_pdi_shim_configure(sdw, pdi); in intel_hw_params()
749 intel_pdi_alh_configure(sdw, pdi); in intel_hw_params()
758 ret = intel_params_stream(sdw, substream, dai, params, in intel_hw_params()
759 sdw->instance, in intel_hw_params()
792 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_prepare() local
827 intel_pdi_shim_configure(sdw, dai_runtime->pdi); in intel_prepare()
828 intel_pdi_alh_configure(sdw, dai_runtime->pdi); in intel_prepare()
832 ret = intel_params_stream(sdw, substream, dai, in intel_prepare()
834 sdw->instance, in intel_prepare()
845 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_hw_free() local
866 ret = intel_free_stream(sdw, substream, dai, sdw->instance); in intel_hw_free()
1032 static int intel_register_dai(struct sdw_intel *sdw) in intel_register_dai() argument
1036 struct sdw_cdns *cdns = &sdw->cdns; in intel_register_dai()
1042 intel_pdi_init(sdw, &config); in intel_register_dai()
1047 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm); in intel_register_dai()