Lines Matching full:mdp

145 static int mdp_path_ctx_init(struct mdp_dev *mdp, struct mdp_path *path)  in mdp_path_ctx_init()  argument
147 const int p_id = mdp->mdp_data->mdp_plat_id; in mdp_path_ctx_init()
161 ret = mdp_comp_ctx_config(mdp, &path->comps[index], in mdp_path_ctx_init()
236 static int mdp_path_config(struct mdp_dev *mdp, struct mdp_cmdq_cmd *cmd, in mdp_path_config() argument
239 const int p_id = mdp->mdp_data->mdp_plat_id; in mdp_path_config()
330 struct mdp_dev *mdp; in mdp_auto_release_work() local
334 mdp = cmd->mdp; in mdp_auto_release_work()
336 id = mdp->mdp_data->pipe_info[MDP_PIPE_RDMA0].mutex_id; in mdp_auto_release_work()
337 mtk_mutex_unprepare(mdp->mdp_mutex[id]); in mdp_auto_release_work()
338 mdp_comp_clocks_off(&mdp->pdev->dev, cmd->comps, in mdp_auto_release_work()
341 atomic_dec(&mdp->job_count); in mdp_auto_release_work()
342 wake_up(&mdp->callback_wq); in mdp_auto_release_work()
355 struct mdp_dev *mdp; in mdp_handle_cmdq_callback() local
366 mdp = cmd->mdp; in mdp_handle_cmdq_callback()
367 dev = &mdp->pdev->dev; in mdp_handle_cmdq_callback()
381 if (!queue_work(mdp->clock_wq, &cmd->auto_release_work)) { in mdp_handle_cmdq_callback()
383 id = mdp->mdp_data->pipe_info[MDP_PIPE_RDMA0].mutex_id; in mdp_handle_cmdq_callback()
384 mtk_mutex_unprepare(mdp->mdp_mutex[id]); in mdp_handle_cmdq_callback()
385 mdp_comp_clocks_off(&mdp->pdev->dev, cmd->comps, in mdp_handle_cmdq_callback()
388 atomic_dec(&mdp->job_count); in mdp_handle_cmdq_callback()
389 wake_up(&mdp->callback_wq); in mdp_handle_cmdq_callback()
399 int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param) in mdp_cmdq_send() argument
404 struct device *dev = &mdp->pdev->dev; in mdp_cmdq_send()
405 const int p_id = mdp->mdp_data->mdp_plat_id; in mdp_cmdq_send()
409 atomic_inc(&mdp->job_count); in mdp_cmdq_send()
410 if (atomic_read(&mdp->suspended)) { in mdp_cmdq_send()
411 atomic_dec(&mdp->job_count); in mdp_cmdq_send()
421 ret = mdp_cmdq_pkt_create(mdp->cmdq_clt, &cmd->pkt, SZ_16K); in mdp_cmdq_send()
443 i = mdp->mdp_data->pipe_info[MDP_PIPE_RDMA0].mutex_id; in mdp_cmdq_send()
444 ret = mtk_mutex_prepare(mdp->mdp_mutex[i]); in mdp_cmdq_send()
450 path->mdp_dev = mdp; in mdp_cmdq_send()
463 ret = mdp_path_ctx_init(mdp, path); in mdp_cmdq_send()
469 ret = mdp_path_config(mdp, cmd, path); in mdp_cmdq_send()
480 mdp->cmdq_clt->client.rx_callback = mdp_handle_cmdq_callback; in mdp_cmdq_send()
481 cmd->mdp = mdp; in mdp_cmdq_send()
488 ret = mdp_comp_clocks_on(&mdp->pdev->dev, cmd->comps, cmd->num_comps); in mdp_cmdq_send()
492 dma_sync_single_for_device(mdp->cmdq_clt->chan->mbox->dev, in mdp_cmdq_send()
495 ret = mbox_send_message(mdp->cmdq_clt->chan, &cmd->pkt); in mdp_cmdq_send()
500 mbox_client_txdone(mdp->cmdq_clt->chan, 0); in mdp_cmdq_send()
506 mdp_comp_clocks_off(&mdp->pdev->dev, cmd->comps, in mdp_cmdq_send()
509 i = mdp->mdp_data->pipe_info[MDP_PIPE_RDMA0].mutex_id; in mdp_cmdq_send()
510 mtk_mutex_unprepare(mdp->mdp_mutex[i]); in mdp_cmdq_send()
519 atomic_dec(&mdp->job_count); in mdp_cmdq_send()