@@ -445,11 +445,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param)
return ret;
}
- // TODO: engine conflict dispatch
- for (i = 0; i < param->config->num_components; i++)
- mdp_comp_clock_on(&mdp->pdev->dev, path.comps[i].comp);
-
if (param->wait) {
+ for (i = 0; i < param->config->num_components; i++)
+ mdp_comp_clock_on(&mdp->pdev->dev, path.comps[i].comp);
ret = cmdq_pkt_flush(cmd.pkt);
#ifdef MDP_DEBUG
if (ret) {
@@ -495,6 +493,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param)
cb_param->num_comps = param->config->num_components;
cb_param->mdp_ctx = param->mdp_ctx;
+ mdp_comp_clocks_on(&mdp->pdev->dev, cb_param->comps,
+ cb_param->num_comps);
+
ret = cmdq_pkt_flush_async(cmd.pkt,
mdp_handle_cmdq_callback,
(void *)cb_param);