Loading drivers/video/msm/mdss/mdss_mdp_intf_writeback.c +17 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,9 @@ struct mdss_mdp_writeback_ctx { spinlock_t wb_lock; struct list_head vsync_handlers; ktime_t start_time; ktime_t end_time; }; static struct mdss_mdp_writeback_ctx wb_ctx_list[MDSS_MDP_MAX_WRITEBACK] = { Loading Loading @@ -439,6 +442,7 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) { struct mdss_mdp_writeback_ctx *ctx; int rc = 0; u64 rot_time; ctx = (struct mdss_mdp_writeback_ctx *) ctl->priv_data; if (!ctx) { Loading @@ -460,6 +464,7 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) WARN(1, "writeback kickoff timed out (%d) ctl=%d\n", rc, ctl->num); } else { ctx->end_time = ktime_get(); mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_DONE); rc = 0; } Loading @@ -468,6 +473,14 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) ctx->comp_cnt--; if (!rc) { rot_time = (u64)ktime_to_us(ctx->end_time) - (u64)ktime_to_us(ctx->start_time); pr_debug("ctx%d type:%d xin_id:%d intf_num:%d took %llu microsecs\n", ctx->wb_num, ctx->type, ctx->xin_id, ctx->intf_num, rot_time); } return rc; } Loading Loading @@ -529,9 +542,13 @@ static int mdss_mdp_writeback_display(struct mdss_mdp_ctl *ctl, void *arg) mdss_mdp_irq_enable(ctx->intr_type, ctx->intf_num); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); ctx->start_time = ktime_get(); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_START, 1); wmb(); pr_debug("ctx%d type:%d xin_id:%d intf_num:%d start\n", ctx->wb_num, ctx->type, ctx->xin_id, ctx->intf_num); ctx->comp_cnt++; return 0; Loading Loading
drivers/video/msm/mdss/mdss_mdp_intf_writeback.c +17 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,9 @@ struct mdss_mdp_writeback_ctx { spinlock_t wb_lock; struct list_head vsync_handlers; ktime_t start_time; ktime_t end_time; }; static struct mdss_mdp_writeback_ctx wb_ctx_list[MDSS_MDP_MAX_WRITEBACK] = { Loading Loading @@ -439,6 +442,7 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) { struct mdss_mdp_writeback_ctx *ctx; int rc = 0; u64 rot_time; ctx = (struct mdss_mdp_writeback_ctx *) ctl->priv_data; if (!ctx) { Loading @@ -460,6 +464,7 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) WARN(1, "writeback kickoff timed out (%d) ctl=%d\n", rc, ctl->num); } else { ctx->end_time = ktime_get(); mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_DONE); rc = 0; } Loading @@ -468,6 +473,14 @@ static int mdss_mdp_wb_wait4comp(struct mdss_mdp_ctl *ctl, void *arg) ctx->comp_cnt--; if (!rc) { rot_time = (u64)ktime_to_us(ctx->end_time) - (u64)ktime_to_us(ctx->start_time); pr_debug("ctx%d type:%d xin_id:%d intf_num:%d took %llu microsecs\n", ctx->wb_num, ctx->type, ctx->xin_id, ctx->intf_num, rot_time); } return rc; } Loading Loading @@ -529,9 +542,13 @@ static int mdss_mdp_writeback_display(struct mdss_mdp_ctl *ctl, void *arg) mdss_mdp_irq_enable(ctx->intr_type, ctx->intf_num); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); ctx->start_time = ktime_get(); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_START, 1); wmb(); pr_debug("ctx%d type:%d xin_id:%d intf_num:%d start\n", ctx->wb_num, ctx->type, ctx->xin_id, ctx->intf_num); ctx->comp_cnt++; return 0; Loading