int mdp4_overlay_dtv_set(struct msm_fb_data_type *mfd, struct mdp4_overlay_pipe *pipe) { int cndx = 0; struct vsycn_ctrl *vctrl; vctrl = &vsync_ctrl_db[cndx]; if (vctrl->base_pipe != NULL) return 0; if (pipe != NULL && pipe->mixer_stage == MDP4_MIXER_STAGE_BASE && pipe->pipe_type == OVERLAY_TYPE_RGB) vctrl->base_pipe = pipe; /* keep it */ else if (!hdmi_prim_display && mdp4_overlay_borderfill_supported()) mdp4_overlay_dtv_alloc_pipe(mfd, OVERLAY_TYPE_BF, vctrl); else mdp4_overlay_dtv_alloc_pipe(mfd, OVERLAY_TYPE_RGB, vctrl); if (vctrl->base_pipe == NULL) return -ENODEV; mdp4_init_writeback_buf(mfd, MDP4_MIXER1); vctrl->base_pipe->ov_blt_addr = 0; vctrl->base_pipe->dma_blt_addr = 0; return mdp4_dtv_start(mfd); }
int mdp4_overlay_dtv_set(struct msm_fb_data_type *mfd, struct mdp4_overlay_pipe *pipe) { if (dtv_pipe != NULL) return 0; if (pipe != NULL && pipe->mixer_stage == MDP4_MIXER_STAGE_BASE && pipe->pipe_type == OVERLAY_TYPE_RGB) dtv_pipe = pipe; /* keep it */ else if (!hdmi_prim_display && mdp4_overlay_borderfill_supported()) mdp4_overlay_dtv_alloc_pipe(mfd, OVERLAY_TYPE_BF); else mdp4_overlay_dtv_alloc_pipe(mfd, OVERLAY_TYPE_RGB); if (dtv_pipe == NULL) return -ENODEV; return mdp4_dtv_start(mfd); }