Lines Matching refs:skl

39 void skl_dsp_set_astate_cfg(struct skl_dev *skl, u32 cnt, void *data)  in skl_dsp_set_astate_cfg()  argument
47 skl_ipc_set_large_config(&skl->ipc, &msg, data); in skl_dsp_set_astate_cfg()
251 int skl_init_dsp(struct skl_dev *skl) in skl_init_dsp() argument
254 struct hdac_bus *bus = skl_to_bus(skl); in skl_init_dsp()
266 mmio_base = pci_ioremap_bar(skl->pci, 4); in skl_init_dsp()
272 ops = skl_get_dsp_ops(skl->pci->device); in skl_init_dsp()
280 skl->fw_name, loader_ops, in skl_init_dsp()
281 &skl); in skl_init_dsp()
286 skl->dsp_ops = ops; in skl_init_dsp()
287 cores = &skl->cores; in skl_init_dsp()
316 int skl_free_dsp(struct skl_dev *skl) in skl_free_dsp() argument
318 struct hdac_bus *bus = skl_to_bus(skl); in skl_free_dsp()
323 skl->dsp_ops->cleanup(bus->dev, skl); in skl_free_dsp()
325 kfree(skl->cores.state); in skl_free_dsp()
326 kfree(skl->cores.usage_count); in skl_free_dsp()
328 if (skl->dsp->addr.lpe) in skl_free_dsp()
329 iounmap(skl->dsp->addr.lpe); in skl_free_dsp()
341 int skl_suspend_late_dsp(struct skl_dev *skl) in skl_suspend_late_dsp() argument
345 if (!skl) in skl_suspend_late_dsp()
348 dwork = &skl->d0i3.work; in skl_suspend_late_dsp()
351 if (skl->supend_active) in skl_suspend_late_dsp()
360 int skl_suspend_dsp(struct skl_dev *skl) in skl_suspend_dsp() argument
362 struct hdac_bus *bus = skl_to_bus(skl); in skl_suspend_dsp()
369 ret = skl_dsp_sleep(skl->dsp); in skl_suspend_dsp()
380 int skl_resume_dsp(struct skl_dev *skl) in skl_resume_dsp() argument
382 struct hdac_bus *bus = skl_to_bus(skl); in skl_resume_dsp()
394 if (skl->is_first_boot) in skl_resume_dsp()
401 skl->enable_miscbdcge(skl->dev, false); in skl_resume_dsp()
402 skl->clock_power_gating(skl->dev, false); in skl_resume_dsp()
404 ret = skl_dsp_wake(skl->dsp); in skl_resume_dsp()
405 skl->enable_miscbdcge(skl->dev, true); in skl_resume_dsp()
406 skl->clock_power_gating(skl->dev, true); in skl_resume_dsp()
410 if (skl->cfg.astate_cfg != NULL) { in skl_resume_dsp()
411 skl_dsp_set_astate_cfg(skl, skl->cfg.astate_cfg->count, in skl_resume_dsp()
412 skl->cfg.astate_cfg); in skl_resume_dsp()
444 static void skl_set_base_module_format(struct skl_dev *skl, in skl_set_base_module_format() argument
461 dev_dbg(skl->dev, "bit_depth=%x valid_bd=%x ch_config=%x\n", in skl_set_base_module_format()
498 static u32 skl_get_node_id(struct skl_dev *skl, in skl_get_node_id() argument
555 static void skl_setup_cpr_gateway_cfg(struct skl_dev *skl, in skl_setup_cpr_gateway_cfg() argument
563 cpr_mconfig->gtw_cfg.node_id = skl_get_node_id(skl, mconfig); in skl_setup_cpr_gateway_cfg()
570 if (skl->nr_modules) { in skl_setup_cpr_gateway_cfg()
594 dev_warn(skl->dev, "wrong connection type: %d\n", in skl_setup_cpr_gateway_cfg()
620 int skl_dsp_set_dma_control(struct skl_dev *skl, u32 *caps, in skl_dsp_set_dma_control() argument
653 err = skl_ipc_set_large_config(&skl->ipc, &msg, (u32 *)dma_ctrl); in skl_dsp_set_dma_control()
660 static void skl_setup_out_format(struct skl_dev *skl, in skl_setup_out_format() argument
678 dev_dbg(skl->dev, "copier out format chan=%d fre=%d bitdepth=%d\n", in skl_setup_out_format()
687 static void skl_set_src_format(struct skl_dev *skl, in skl_set_src_format() argument
695 skl_set_base_module_format(skl, mconfig, in skl_set_src_format()
706 static void skl_set_updown_mixer_format(struct skl_dev *skl, in skl_set_updown_mixer_format() argument
714 skl_set_base_module_format(skl, mconfig, in skl_set_updown_mixer_format()
727 static void skl_set_copier_format(struct skl_dev *skl, in skl_set_copier_format() argument
734 skl_set_base_module_format(skl, mconfig, base_cfg); in skl_set_copier_format()
736 skl_setup_out_format(skl, mconfig, out_fmt); in skl_set_copier_format()
737 skl_setup_cpr_gateway_cfg(skl, mconfig, cpr_mconfig); in skl_set_copier_format()
745 static void skl_set_algo_format(struct skl_dev *skl, in skl_set_algo_format() argument
751 skl_set_base_module_format(skl, mconfig, base_cfg); in skl_set_algo_format()
769 static void skl_set_base_outfmt_format(struct skl_dev *skl, in skl_set_base_outfmt_format() argument
777 skl_set_base_module_format(skl, mconfig, base_cfg); in skl_set_base_outfmt_format()
778 skl_setup_out_format(skl, mconfig, out_fmt); in skl_set_base_outfmt_format()
781 static u16 skl_get_module_param_size(struct skl_dev *skl, in skl_get_module_param_size() argument
826 static int skl_set_module_format(struct skl_dev *skl, in skl_set_module_format() argument
833 param_size = skl_get_module_param_size(skl, module_config); in skl_set_module_format()
843 skl_set_copier_format(skl, module_config, *param_data); in skl_set_module_format()
847 skl_set_src_format(skl, module_config, *param_data); in skl_set_module_format()
851 skl_set_updown_mixer_format(skl, module_config, *param_data); in skl_set_module_format()
855 skl_set_algo_format(skl, module_config, *param_data); in skl_set_module_format()
861 skl_set_base_outfmt_format(skl, module_config, *param_data); in skl_set_module_format()
865 skl_set_base_module_format(skl, module_config, *param_data); in skl_set_module_format()
870 dev_dbg(skl->dev, "Module type=%d id=%d config size: %d bytes\n", in skl_set_module_format()
972 int skl_init_module(struct skl_dev *skl, in skl_init_module() argument
980 dev_dbg(skl->dev, "%s: module_id = %d instance=%d\n", __func__, in skl_init_module()
984 dev_err(skl->dev, "Pipe not created state= %d pipe_id= %d\n", in skl_init_module()
989 ret = skl_set_module_format(skl, mconfig, in skl_init_module()
992 dev_err(skl->dev, "Failed to set module format ret=%d\n", ret); in skl_init_module()
1003 ret = skl_ipc_init_instance(&skl->ipc, &msg, param_data); in skl_init_module()
1005 dev_err(skl->dev, "Failed to init instance ret=%d\n", ret); in skl_init_module()
1014 static void skl_dump_bind_info(struct skl_dev *skl, struct skl_module_cfg in skl_dump_bind_info() argument
1017 dev_dbg(skl->dev, "%s: src module_id = %d src_instance=%d\n", in skl_dump_bind_info()
1019 dev_dbg(skl->dev, "%s: dst_module=%d dst_instance=%d\n", __func__, in skl_dump_bind_info()
1022 dev_dbg(skl->dev, "src_module state = %d dst module state = %d\n", in skl_dump_bind_info()
1031 int skl_unbind_modules(struct skl_dev *skl, in skl_unbind_modules() argument
1043 skl_dump_bind_info(skl, src_mcfg, dst_mcfg); in skl_unbind_modules()
1072 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_unbind_modules()
1110 int skl_bind_modules(struct skl_dev *skl, in skl_bind_modules() argument
1124 skl_dump_bind_info(skl, src_mcfg, dst_mcfg); in skl_bind_modules()
1156 ret = skl_set_module_params(skl, (void *)&pin_fmt, in skl_bind_modules()
1166 dev_dbg(skl->dev, "src queue = %d dst queue =%d\n", in skl_bind_modules()
1175 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_bind_modules()
1191 static int skl_set_pipe_state(struct skl_dev *skl, struct skl_pipe *pipe, in skl_set_pipe_state() argument
1194 dev_dbg(skl->dev, "%s: pipe_state = %d\n", __func__, state); in skl_set_pipe_state()
1196 return skl_ipc_set_pipeline_state(&skl->ipc, pipe->ppl_id, state); in skl_set_pipe_state()
1205 int skl_create_pipeline(struct skl_dev *skl, struct skl_pipe *pipe) in skl_create_pipeline() argument
1209 dev_dbg(skl->dev, "%s: pipe_id = %d\n", __func__, pipe->ppl_id); in skl_create_pipeline()
1211 ret = skl_ipc_create_pipeline(&skl->ipc, pipe->memory_pages, in skl_create_pipeline()
1215 dev_err(skl->dev, "Failed to create pipeline\n"); in skl_create_pipeline()
1230 int skl_delete_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_delete_pipe() argument
1234 dev_dbg(skl->dev, "%s: pipe = %d\n", __func__, pipe->ppl_id); in skl_delete_pipe()
1242 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_delete_pipe()
1244 dev_err(skl->dev, "Failed to stop pipeline\n"); in skl_delete_pipe()
1252 ret = skl_set_pipe_state(skl, pipe, PPL_RESET); in skl_delete_pipe()
1254 dev_err(skl->dev, "Failed to reset pipe ret=%d\n", ret); in skl_delete_pipe()
1260 ret = skl_ipc_delete_pipeline(&skl->ipc, pipe->ppl_id); in skl_delete_pipe()
1262 dev_err(skl->dev, "Failed to delete pipeline\n"); in skl_delete_pipe()
1276 int skl_run_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_run_pipe() argument
1280 dev_dbg(skl->dev, "%s: pipe = %d\n", __func__, pipe->ppl_id); in skl_run_pipe()
1287 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_run_pipe()
1289 dev_err(skl->dev, "Failed to pause pipe\n"); in skl_run_pipe()
1295 ret = skl_set_pipe_state(skl, pipe, PPL_RUNNING); in skl_run_pipe()
1297 dev_err(skl->dev, "Failed to start pipe\n"); in skl_run_pipe()
1310 int skl_stop_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_stop_pipe() argument
1314 dev_dbg(skl->dev, "In %s pipe=%d\n", __func__, pipe->ppl_id); in skl_stop_pipe()
1320 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_stop_pipe()
1322 dev_dbg(skl->dev, "Failed to stop pipe\n"); in skl_stop_pipe()
1335 int skl_reset_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_reset_pipe() argument
1343 ret = skl_set_pipe_state(skl, pipe, PPL_RESET); in skl_reset_pipe()
1345 dev_dbg(skl->dev, "Failed to reset pipe ret=%d\n", ret); in skl_reset_pipe()
1355 int skl_set_module_params(struct skl_dev *skl, u32 *params, int size, in skl_set_module_params() argument
1365 return skl_ipc_set_large_config(&skl->ipc, &msg, params); in skl_set_module_params()
1368 int skl_get_module_params(struct skl_dev *skl, u32 *params, int size, in skl_get_module_params() argument
1379 return skl_ipc_get_large_config(&skl->ipc, &msg, &params, &bytes); in skl_get_module_params()