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
829 static int skl_set_module_format(struct skl_dev *skl, in skl_set_module_format() argument
836 param_size = skl_get_module_param_size(skl, module_config); in skl_set_module_format()
846 skl_set_copier_format(skl, module_config, *param_data); in skl_set_module_format()
850 skl_set_src_format(skl, module_config, *param_data); in skl_set_module_format()
854 skl_set_updown_mixer_format(skl, module_config, *param_data); in skl_set_module_format()
858 skl_set_algo_format(skl, module_config, *param_data); in skl_set_module_format()
863 skl_set_base_outfmt_format(skl, module_config, *param_data); in skl_set_module_format()
868 skl_set_base_module_format(skl, module_config, *param_data); in skl_set_module_format()
872 skl_set_base_module_format(skl, module_config, *param_data); in skl_set_module_format()
877 dev_dbg(skl->dev, "Module type=%d id=%d config size: %d bytes\n", in skl_set_module_format()
979 int skl_init_module(struct skl_dev *skl, in skl_init_module() argument
987 dev_dbg(skl->dev, "%s: module_id = %d instance=%d\n", __func__, in skl_init_module()
991 dev_err(skl->dev, "Pipe not created state= %d pipe_id= %d\n", in skl_init_module()
996 ret = skl_set_module_format(skl, mconfig, in skl_init_module()
999 dev_err(skl->dev, "Failed to set module format ret=%d\n", ret); in skl_init_module()
1010 ret = skl_ipc_init_instance(&skl->ipc, &msg, param_data); in skl_init_module()
1012 dev_err(skl->dev, "Failed to init instance ret=%d\n", ret); in skl_init_module()
1021 static void skl_dump_bind_info(struct skl_dev *skl, struct skl_module_cfg in skl_dump_bind_info() argument
1024 dev_dbg(skl->dev, "%s: src module_id = %d src_instance=%d\n", in skl_dump_bind_info()
1026 dev_dbg(skl->dev, "%s: dst_module=%d dst_instance=%d\n", __func__, in skl_dump_bind_info()
1029 dev_dbg(skl->dev, "src_module state = %d dst module state = %d\n", in skl_dump_bind_info()
1038 int skl_unbind_modules(struct skl_dev *skl, in skl_unbind_modules() argument
1050 skl_dump_bind_info(skl, src_mcfg, dst_mcfg); in skl_unbind_modules()
1079 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_unbind_modules()
1117 int skl_bind_modules(struct skl_dev *skl, in skl_bind_modules() argument
1131 skl_dump_bind_info(skl, src_mcfg, dst_mcfg); in skl_bind_modules()
1163 ret = skl_set_module_params(skl, (void *)&pin_fmt, in skl_bind_modules()
1173 dev_dbg(skl->dev, "src queue = %d dst queue =%d\n", in skl_bind_modules()
1182 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_bind_modules()
1198 static int skl_set_pipe_state(struct skl_dev *skl, struct skl_pipe *pipe, in skl_set_pipe_state() argument
1201 dev_dbg(skl->dev, "%s: pipe_state = %d\n", __func__, state); in skl_set_pipe_state()
1203 return skl_ipc_set_pipeline_state(&skl->ipc, pipe->ppl_id, state); in skl_set_pipe_state()
1212 int skl_create_pipeline(struct skl_dev *skl, struct skl_pipe *pipe) in skl_create_pipeline() argument
1216 dev_dbg(skl->dev, "%s: pipe_id = %d\n", __func__, pipe->ppl_id); in skl_create_pipeline()
1218 ret = skl_ipc_create_pipeline(&skl->ipc, pipe->memory_pages, in skl_create_pipeline()
1222 dev_err(skl->dev, "Failed to create pipeline\n"); in skl_create_pipeline()
1237 int skl_delete_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_delete_pipe() argument
1241 dev_dbg(skl->dev, "%s: pipe = %d\n", __func__, pipe->ppl_id); in skl_delete_pipe()
1249 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_delete_pipe()
1251 dev_err(skl->dev, "Failed to stop pipeline\n"); in skl_delete_pipe()
1259 ret = skl_set_pipe_state(skl, pipe, PPL_RESET); in skl_delete_pipe()
1261 dev_err(skl->dev, "Failed to reset pipe ret=%d\n", ret); in skl_delete_pipe()
1267 ret = skl_ipc_delete_pipeline(&skl->ipc, pipe->ppl_id); in skl_delete_pipe()
1269 dev_err(skl->dev, "Failed to delete pipeline\n"); in skl_delete_pipe()
1283 int skl_run_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_run_pipe() argument
1287 dev_dbg(skl->dev, "%s: pipe = %d\n", __func__, pipe->ppl_id); in skl_run_pipe()
1294 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_run_pipe()
1296 dev_err(skl->dev, "Failed to pause pipe\n"); in skl_run_pipe()
1302 ret = skl_set_pipe_state(skl, pipe, PPL_RUNNING); in skl_run_pipe()
1304 dev_err(skl->dev, "Failed to start pipe\n"); in skl_run_pipe()
1317 int skl_stop_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_stop_pipe() argument
1321 dev_dbg(skl->dev, "In %s pipe=%d\n", __func__, pipe->ppl_id); in skl_stop_pipe()
1327 ret = skl_set_pipe_state(skl, pipe, PPL_PAUSED); in skl_stop_pipe()
1329 dev_dbg(skl->dev, "Failed to stop pipe\n"); in skl_stop_pipe()
1342 int skl_reset_pipe(struct skl_dev *skl, struct skl_pipe *pipe) in skl_reset_pipe() argument
1350 ret = skl_set_pipe_state(skl, pipe, PPL_RESET); in skl_reset_pipe()
1352 dev_dbg(skl->dev, "Failed to reset pipe ret=%d\n", ret); in skl_reset_pipe()
1362 int skl_set_module_params(struct skl_dev *skl, u32 *params, int size, in skl_set_module_params() argument
1372 return skl_ipc_set_large_config(&skl->ipc, &msg, params); in skl_set_module_params()
1375 int skl_get_module_params(struct skl_dev *skl, u32 *params, int size, in skl_get_module_params() argument
1386 return skl_ipc_get_large_config(&skl->ipc, &msg, &params, &bytes); in skl_get_module_params()