Loading drivers/video/msm/mdss/mdss_mdp.h +2 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,8 @@ struct mdss_mdp_pipe { u8 blend_op; u8 overfetch_disable; u32 transp; u32 bg_color; u8 has_buf; struct msm_fb_data_type *mfd; struct mdss_mdp_mixer *mixer; Loading drivers/video/msm/mdss/mdss_mdp_overlay.c +8 −2 Original line number Diff line number Diff line Loading @@ -511,6 +511,7 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd, } else { pipe->overfetch_disable = 0; } pipe->bg_color = req->bg_color; req->id = pipe->ndx; pipe->req_data = *req; Loading Loading @@ -604,6 +605,7 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd, } pipe->params_changed++; pipe->has_buf = 0; req->vert_deci = pipe->vert_deci; Loading Loading @@ -1030,8 +1032,9 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd, } else if (pipe->front_buf.num_planes) { buf = &pipe->front_buf; } else { pr_warn("pipe queue w/o buffer\n"); continue; pr_debug("no buf detected pnum=%d use solid fill\n", pipe->num); buf = NULL; } ret = mdss_mdp_pipe_queue_data(pipe, buf); Loading Loading @@ -1253,6 +1256,7 @@ static int mdss_mdp_overlay_queue(struct msm_fb_data_type *mfd, if (IS_ERR_VALUE(ret)) { pr_err("src_data pmem error\n"); } pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); return ret; Loading Loading @@ -1495,6 +1499,7 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) buf->p[0].addr += offset; buf->p[0].len = fbi->fix.smem_len - offset; buf->num_planes = 1; pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); if (fbi->var.xres > MAX_MIXER_WIDTH || mfd->split_display) { Loading @@ -1509,6 +1514,7 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) goto pan_display_error; } pipe->back_buf = *buf; pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); } mutex_unlock(&mdp5_data->ov_lock); Loading drivers/video/msm/mdss/mdss_mdp_pipe.c +4 −1 Original line number Diff line number Diff line Loading @@ -968,6 +968,8 @@ static int mdss_mdp_pipe_solidfill_setup(struct mdss_mdp_pipe *pipe) secure = (pipe->flags & MDP_SECURE_OVERLAY_SESSION ? 0xF : 0x0); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_FORMAT, format); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_CONSTANT_COLOR, pipe->bg_color); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_ADDR_SW_STATUS, secure); return 0; Loading Loading @@ -1006,7 +1008,8 @@ int mdss_mdp_pipe_queue_data(struct mdss_mdp_pipe *pipe, (pipe->mixer->type == MDSS_MDP_MIXER_TYPE_WRITEBACK) && (ctl->mdata->mixer_switched)) || ctl->roi_changed; if (src_data == NULL) { if (src_data == NULL || !pipe->has_buf) { pipe->params_changed = 0; mdss_mdp_pipe_solidfill_setup(pipe); goto update_nobuf; } Loading include/uapi/linux/msm_mdp.h +4 −1 Original line number Diff line number Diff line Loading @@ -536,6 +536,8 @@ struct mdp_scale_data { * @flags: This is used to customize operation of overlay. See MDP flags * for more information. * @user_data: DEPRECATED* Used to store user application specific information. * @bg_color: Solid color used to fill the overlay surface when no source * buffer is provided. * @horz_deci: Horizontal decimation value, this indicates the amount of pixels * dropped for each pixel that is fetched from a line. The value * given should be power of two of decimation amount. Loading Loading @@ -566,7 +568,8 @@ struct mdp_overlay { uint32_t transp_mask; uint32_t flags; uint32_t id; uint32_t user_data[7]; uint32_t user_data[6]; uint32_t bg_color; uint8_t horz_deci; uint8_t vert_deci; struct mdp_overlay_pp_params overlay_pp_cfg; Loading Loading
drivers/video/msm/mdss/mdss_mdp.h +2 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,8 @@ struct mdss_mdp_pipe { u8 blend_op; u8 overfetch_disable; u32 transp; u32 bg_color; u8 has_buf; struct msm_fb_data_type *mfd; struct mdss_mdp_mixer *mixer; Loading
drivers/video/msm/mdss/mdss_mdp_overlay.c +8 −2 Original line number Diff line number Diff line Loading @@ -511,6 +511,7 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd, } else { pipe->overfetch_disable = 0; } pipe->bg_color = req->bg_color; req->id = pipe->ndx; pipe->req_data = *req; Loading Loading @@ -604,6 +605,7 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd, } pipe->params_changed++; pipe->has_buf = 0; req->vert_deci = pipe->vert_deci; Loading Loading @@ -1030,8 +1032,9 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd, } else if (pipe->front_buf.num_planes) { buf = &pipe->front_buf; } else { pr_warn("pipe queue w/o buffer\n"); continue; pr_debug("no buf detected pnum=%d use solid fill\n", pipe->num); buf = NULL; } ret = mdss_mdp_pipe_queue_data(pipe, buf); Loading Loading @@ -1253,6 +1256,7 @@ static int mdss_mdp_overlay_queue(struct msm_fb_data_type *mfd, if (IS_ERR_VALUE(ret)) { pr_err("src_data pmem error\n"); } pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); return ret; Loading Loading @@ -1495,6 +1499,7 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) buf->p[0].addr += offset; buf->p[0].len = fbi->fix.smem_len - offset; buf->num_planes = 1; pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); if (fbi->var.xres > MAX_MIXER_WIDTH || mfd->split_display) { Loading @@ -1509,6 +1514,7 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) goto pan_display_error; } pipe->back_buf = *buf; pipe->has_buf = 1; mdss_mdp_pipe_unmap(pipe); } mutex_unlock(&mdp5_data->ov_lock); Loading
drivers/video/msm/mdss/mdss_mdp_pipe.c +4 −1 Original line number Diff line number Diff line Loading @@ -968,6 +968,8 @@ static int mdss_mdp_pipe_solidfill_setup(struct mdss_mdp_pipe *pipe) secure = (pipe->flags & MDP_SECURE_OVERLAY_SESSION ? 0xF : 0x0); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_FORMAT, format); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_CONSTANT_COLOR, pipe->bg_color); mdss_mdp_pipe_write(pipe, MDSS_MDP_REG_SSPP_SRC_ADDR_SW_STATUS, secure); return 0; Loading Loading @@ -1006,7 +1008,8 @@ int mdss_mdp_pipe_queue_data(struct mdss_mdp_pipe *pipe, (pipe->mixer->type == MDSS_MDP_MIXER_TYPE_WRITEBACK) && (ctl->mdata->mixer_switched)) || ctl->roi_changed; if (src_data == NULL) { if (src_data == NULL || !pipe->has_buf) { pipe->params_changed = 0; mdss_mdp_pipe_solidfill_setup(pipe); goto update_nobuf; } Loading
include/uapi/linux/msm_mdp.h +4 −1 Original line number Diff line number Diff line Loading @@ -536,6 +536,8 @@ struct mdp_scale_data { * @flags: This is used to customize operation of overlay. See MDP flags * for more information. * @user_data: DEPRECATED* Used to store user application specific information. * @bg_color: Solid color used to fill the overlay surface when no source * buffer is provided. * @horz_deci: Horizontal decimation value, this indicates the amount of pixels * dropped for each pixel that is fetched from a line. The value * given should be power of two of decimation amount. Loading Loading @@ -566,7 +568,8 @@ struct mdp_overlay { uint32_t transp_mask; uint32_t flags; uint32_t id; uint32_t user_data[7]; uint32_t user_data[6]; uint32_t bg_color; uint8_t horz_deci; uint8_t vert_deci; struct mdp_overlay_pp_params overlay_pp_cfg; Loading