Lines Matching refs:sdw

73 	struct sdw_intel *sdw = s_file->private;  in intel_reg_show()  local
74 void __iomem *s = sdw->link_res->shim; in intel_reg_show()
75 void __iomem *a = sdw->link_res->alh; in intel_reg_show()
140 struct sdw_intel *sdw = data; in intel_set_m_datamode() local
141 struct sdw_bus *bus = &sdw->cdns.bus; in intel_set_m_datamode()
158 struct sdw_intel *sdw = data; in intel_set_s_datamode() local
159 struct sdw_bus *bus = &sdw->cdns.bus; in intel_set_s_datamode()
174 static void intel_debugfs_init(struct sdw_intel *sdw) in intel_debugfs_init() argument
176 struct dentry *root = sdw->cdns.bus.debugfs; in intel_debugfs_init()
181 sdw->debugfs = debugfs_create_dir("intel-sdw", root); in intel_debugfs_init()
183 debugfs_create_file("intel-registers", 0400, sdw->debugfs, sdw, in intel_debugfs_init()
186 debugfs_create_file("intel-m-datamode", 0200, sdw->debugfs, sdw, in intel_debugfs_init()
189 debugfs_create_file("intel-s-datamode", 0200, sdw->debugfs, sdw, in intel_debugfs_init()
192 sdw_cdns_debugfs_init(&sdw->cdns, sdw->debugfs); in intel_debugfs_init()
195 static void intel_debugfs_exit(struct sdw_intel *sdw) in intel_debugfs_exit() argument
197 debugfs_remove_recursive(sdw->debugfs); in intel_debugfs_exit()
200 static void intel_debugfs_init(struct sdw_intel *sdw) {} in intel_debugfs_init() argument
201 static void intel_debugfs_exit(struct sdw_intel *sdw) {} in intel_debugfs_exit() argument
208 static void intel_shim_glue_to_master_ip(struct sdw_intel *sdw) in intel_shim_glue_to_master_ip() argument
210 void __iomem *shim = sdw->link_res->shim; in intel_shim_glue_to_master_ip()
211 unsigned int link_id = sdw->instance; in intel_shim_glue_to_master_ip()
238 static void intel_shim_master_ip_to_glue(struct sdw_intel *sdw) in intel_shim_master_ip_to_glue() argument
240 unsigned int link_id = sdw->instance; in intel_shim_master_ip_to_glue()
241 void __iomem *shim = sdw->link_res->shim; in intel_shim_master_ip_to_glue()
259 static void intel_shim_init(struct sdw_intel *sdw) in intel_shim_init() argument
261 void __iomem *shim = sdw->link_res->shim; in intel_shim_init()
262 unsigned int link_id = sdw->instance; in intel_shim_init()
282 intel_shim_glue_to_master_ip(sdw); in intel_shim_init()
292 static int intel_shim_check_wake(struct sdw_intel *sdw) in intel_shim_check_wake() argument
297 shim = sdw->link_res->shim; in intel_shim_check_wake()
300 return wake_sts & BIT(sdw->instance); in intel_shim_check_wake()
303 static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable) in intel_shim_wake() argument
305 void __iomem *shim = sdw->link_res->shim; in intel_shim_wake()
306 unsigned int link_id = sdw->instance; in intel_shim_wake()
309 mutex_lock(sdw->link_res->shim_lock); in intel_shim_wake()
326 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_wake()
329 static bool intel_check_cmdsync_unlocked(struct sdw_intel *sdw) in intel_check_cmdsync_unlocked() argument
331 void __iomem *shim = sdw->link_res->shim; in intel_check_cmdsync_unlocked()
338 static int intel_link_power_up(struct sdw_intel *sdw) in intel_link_power_up() argument
340 unsigned int link_id = sdw->instance; in intel_link_power_up()
341 void __iomem *shim = sdw->link_res->shim; in intel_link_power_up()
342 u32 *shim_mask = sdw->link_res->shim_mask; in intel_link_power_up()
343 struct sdw_bus *bus = &sdw->cdns.bus; in intel_link_power_up()
351 mutex_lock(sdw->link_res->shim_lock); in intel_link_power_up()
369 dev_dbg(sdw->cdns.dev, "powering up all links\n"); in intel_link_power_up()
372 dev_dbg(sdw->cdns.dev, in intel_link_power_up()
387 spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, sdw->link_res->link_mask); in intel_link_power_up()
388 cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask); in intel_link_power_up()
394 dev_err(sdw->cdns.dev, "Failed to power up link: %d\n", ret); in intel_link_power_up()
402 dev_err(sdw->cdns.dev, in intel_link_power_up()
410 sdw->cdns.link_up = true; in intel_link_power_up()
412 intel_shim_init(sdw); in intel_link_power_up()
415 mutex_unlock(sdw->link_res->shim_lock); in intel_link_power_up()
420 static int intel_link_power_down(struct sdw_intel *sdw) in intel_link_power_down() argument
423 unsigned int link_id = sdw->instance; in intel_link_power_down()
424 void __iomem *shim = sdw->link_res->shim; in intel_link_power_down()
425 u32 *shim_mask = sdw->link_res->shim_mask; in intel_link_power_down()
428 mutex_lock(sdw->link_res->shim_lock); in intel_link_power_down()
431 dev_err(sdw->cdns.dev, in intel_link_power_down()
434 sdw->cdns.link_up = false; in intel_link_power_down()
436 intel_shim_master_ip_to_glue(sdw); in intel_link_power_down()
442 dev_dbg(sdw->cdns.dev, "powering down all links\n"); in intel_link_power_down()
448 spa_mask = FIELD_PREP(SDW_SHIM_LCTL_SPA_MASK, ~sdw->link_res->link_mask); in intel_link_power_down()
449 cpa_mask = FIELD_PREP(SDW_SHIM_LCTL_CPA_MASK, sdw->link_res->link_mask); in intel_link_power_down()
455 dev_err(sdw->cdns.dev, "%s: could not power down link\n", __func__); in intel_link_power_down()
464 mutex_unlock(sdw->link_res->shim_lock); in intel_link_power_down()
469 static void intel_shim_sync_arm(struct sdw_intel *sdw) in intel_shim_sync_arm() argument
471 void __iomem *shim = sdw->link_res->shim; in intel_shim_sync_arm()
474 mutex_lock(sdw->link_res->shim_lock); in intel_shim_sync_arm()
478 sync_reg |= (SDW_SHIM_SYNC_CMDSYNC << sdw->instance); in intel_shim_sync_arm()
481 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_sync_arm()
484 static int intel_shim_sync_go_unlocked(struct sdw_intel *sdw) in intel_shim_sync_go_unlocked() argument
486 void __iomem *shim = sdw->link_res->shim; in intel_shim_sync_go_unlocked()
504 static int intel_shim_sync_go(struct sdw_intel *sdw) in intel_shim_sync_go() argument
508 mutex_lock(sdw->link_res->shim_lock); in intel_shim_sync_go()
510 ret = intel_shim_sync_go_unlocked(sdw); in intel_shim_sync_go()
512 mutex_unlock(sdw->link_res->shim_lock); in intel_shim_sync_go()
520 static void intel_pdi_init(struct sdw_intel *sdw, in intel_pdi_init() argument
523 void __iomem *shim = sdw->link_res->shim; in intel_pdi_init()
524 unsigned int link_id = sdw->instance; in intel_pdi_init()
534 dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n", in intel_pdi_init()
539 intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num) in intel_pdi_get_ch_cap() argument
541 void __iomem *shim = sdw->link_res->shim; in intel_pdi_get_ch_cap()
542 unsigned int link_id = sdw->instance; in intel_pdi_get_ch_cap()
562 static int intel_pdi_get_ch_update(struct sdw_intel *sdw, 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()
579 static int intel_pdi_stream_ch_update(struct sdw_intel *sdw, in intel_pdi_stream_ch_update() argument
582 intel_pdi_get_ch_update(sdw, stream->bd, stream->num_bd, in intel_pdi_stream_ch_update()
585 intel_pdi_get_ch_update(sdw, stream->in, stream->num_in, in intel_pdi_stream_ch_update()
588 intel_pdi_get_ch_update(sdw, stream->out, stream->num_out, in intel_pdi_stream_ch_update()
595 intel_pdi_shim_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) in intel_pdi_shim_configure() argument
597 void __iomem *shim = sdw->link_res->shim; in intel_pdi_shim_configure()
598 unsigned int link_id = sdw->instance; 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
628 void __iomem *alh = sdw->link_res->alh; in intel_pdi_alh_configure()
629 unsigned int link_id = sdw->instance; in intel_pdi_alh_configure()
646 static int intel_params_stream(struct sdw_intel *sdw, in intel_params_stream() argument
652 struct sdw_intel_link_res *res = sdw->link_res; in intel_params_stream()
676 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_hw_params() local
702 intel_pdi_shim_configure(sdw, pdi); in intel_hw_params()
703 intel_pdi_alh_configure(sdw, pdi); in intel_hw_params()
712 ret = intel_params_stream(sdw, substream, dai, params, in intel_hw_params()
713 sdw->instance, in intel_hw_params()
749 struct sdw_intel *sdw = cdns_to_intel(cdns); in intel_prepare() local
784 intel_pdi_shim_configure(sdw, dai_runtime->pdi); in intel_prepare()
785 intel_pdi_alh_configure(sdw, dai_runtime->pdi); in intel_prepare()
789 ret = intel_params_stream(sdw, substream, dai, in intel_prepare()
791 sdw->instance, in intel_prepare()
982 static int intel_register_dai(struct sdw_intel *sdw) in intel_register_dai() argument
986 struct sdw_cdns *cdns = &sdw->cdns; in intel_register_dai()
992 intel_pdi_init(sdw, &config); in intel_register_dai()
997 intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm); in intel_register_dai()