Loading drivers/video/msm/mdss/mdss_mdp.c +1 −5 Original line number Diff line number Diff line Loading @@ -2908,11 +2908,7 @@ int mdss_mdp_footswitch_ctrl_idle_pc(int on, struct device *dev) return rc; } mdss_hw_init(mdata); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("iommu dettach failed ret=%d\n", rc); return rc; } mdss_iommu_ctrl(0); mdata->idle_pc = false; } else { mdata->idle_pc = true; Loading drivers/video/msm/mdss/mdss_mdp_intf_cmd.c +4 −12 Original line number Diff line number Diff line Loading @@ -200,28 +200,20 @@ static inline void mdss_mdp_cmd_clk_on(struct mdss_mdp_cmd_ctx *ctx) if (cancel_delayed_work_sync(&ctx->pc_work)) pr_debug("deleted pending power collapse work\n"); rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) pr_err("IOMMU attach failed\n"); if (ctx->idle_pc) { mdss_mdp_footswitch_ctrl_idle_pc(1, &ctx->ctl->mfd->pdev->dev); mdss_mdp_ctl_restore(ctx->ctl); rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU attach failed\n"); mutex_unlock(&ctx->clk_mtx); return; } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); if (mdss_mdp_cmd_tearcheck_setup(ctx->ctl)) pr_warn("tearcheck setup failed\n"); ctx->idle_pc = false; } else { rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU attach failed\n"); mutex_unlock(&ctx->clk_mtx); return; } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); } Loading drivers/video/msm/mdss/mdss_mdp_overlay.c +22 −26 Original line number Diff line number Diff line Loading @@ -962,15 +962,15 @@ int mdss_mdp_overlay_get_buf(struct msm_fb_data_type *mfd, int num_planes, u32 flags) { int i, rc, ret; int i, rc; if ((num_planes <= 0) || (num_planes > MAX_PLANES)) return -EINVAL; ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("Iommu attach failed"); return ret; goto end; } memset(data, 0, sizeof(*data)); Loading @@ -987,13 +987,9 @@ int mdss_mdp_overlay_get_buf(struct msm_fb_data_type *mfd, } } ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("Iommu dettach failed"); return ret; } mdss_iommu_ctrl(0); data->num_planes = i; end: return rc; } Loading @@ -1010,12 +1006,7 @@ int mdss_mdp_overlay_free_buf(struct mdss_mdp_data *data) for (i = 0; i < data->num_planes && data->p[i].len; i++) mdss_mdp_put_img(&data->p[i]); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("Iommu dettach failed"); return rc; } mdss_iommu_ctrl(0); data->num_planes = 0; return 0; } Loading Loading @@ -1169,7 +1160,7 @@ void mdss_mdp_handoff_cleanup_pipes(struct msm_fb_data_type *mfd, */ int mdss_mdp_overlay_start(struct msm_fb_data_type *mfd) { int rc, ret; int rc; struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd); struct mdss_mdp_ctl *ctl = mdp5_data->ctl; Loading Loading @@ -1204,17 +1195,13 @@ int mdss_mdp_overlay_start(struct msm_fb_data_type *mfd) */ if (!is_mdss_iommu_attached()) { if (!mfd->panel_info->cont_splash_enabled) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("iommu attach failed ret=%d\n", ret); return ret; rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("iommu attach failed rc=%d\n", rc); return rc; } mdss_hw_init(mdss_res); ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("iommu dettach failed ret=%d\n", ret); return ret; } mdss_iommu_ctrl(0); } } Loading Loading @@ -1836,6 +1823,13 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); goto pan_display_error; } bpp = fbi->var.bits_per_pixel / 8; offset = fbi->var.xoffset * bpp + fbi->var.yoffset * fbi->fix.line_length; Loading Loading @@ -1904,10 +1898,12 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) (fbi->var.activate & FB_ACTIVATE_FORCE)) mfd->mdp.kickoff_fnc(mfd, NULL); mdss_iommu_ctrl(0); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); return; pan_display_error: mdss_iommu_ctrl(0); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); mutex_unlock(&mdp5_data->ov_lock); } Loading drivers/video/msm/mdss/mdss_mdp_splash_logo.c +1 −4 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ static void mdss_mdp_splash_unmap_splash_mem(struct msm_fb_data_type *mfd) { struct iommu_domain *domain; struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd); int ret; if (mfd->splash_info.iommu_dynamic_attached) { domain = msm_get_iommu_domain(mdss_get_iommu_domain( Loading @@ -167,9 +166,7 @@ static void mdss_mdp_splash_unmap_splash_mem(struct msm_fb_data_type *mfd) iommu_unmap(domain, mdp5_data->splash_mem_addr, mdp5_data->splash_mem_size); ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) pr_err("mdss iommu dettach failed\n"); mdss_iommu_ctrl(0); mfd->splash_info.iommu_dynamic_attached = false; } Loading drivers/video/msm/mdss/mdss_mdp_wb.c +12 −22 Original line number Diff line number Diff line Loading @@ -413,7 +413,7 @@ static struct mdss_mdp_wb_data *get_user_node(struct msm_fb_data_type *mfd, struct mdss_mdp_wb *wb = mfd_to_wb(mfd); struct mdss_mdp_wb_data *node; struct mdss_mdp_img_data *buf; int ret, rc; int ret; if (!list_empty(&wb->register_queue)) { list_for_each_entry(node, &wb->register_queue, registered_entry) Loading @@ -437,21 +437,20 @@ static struct mdss_mdp_wb_data *get_user_node(struct msm_fb_data_type *mfd, buf = &node->buf_data.p[0]; if (wb->is_secure) buf->flags |= MDP_SECURE_OVERLAY_SESSION; rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); goto register_fail; } ret = mdss_mdp_get_img(data, buf); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU dettach failed\n"); goto register_fail; } if (IS_ERR_VALUE(ret)) { pr_err("error getting buffer info\n"); mdss_iommu_ctrl(0); goto register_fail; } mdss_iommu_ctrl(0); memcpy(&node->buf_info, data, sizeof(*data)); ret = mdss_mdp_wb_register_node(wb, node); Loading Loading @@ -728,7 +727,6 @@ int mdss_mdp_wb_ioctl_handler(struct msm_fb_data_type *mfd, u32 cmd, { struct msmfb_data data; int ret = -ENOSYS, hint = 0; int rc; switch (cmd) { case MSMFB_WRITEBACK_INIT: Loading Loading @@ -759,17 +757,13 @@ int mdss_mdp_wb_ioctl_handler(struct msm_fb_data_type *mfd, u32 cmd, } break; case MSMFB_WRITEBACK_TERMINATE: rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); return rc; return ret; } ret = mdss_mdp_wb_terminate(mfd); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU dettach failed\n"); return rc; } mdss_iommu_ctrl(0); break; case MSMFB_WRITEBACK_SET_MIRRORING_HINT: if (!copy_from_user(&hint, arg, sizeof(hint))) { Loading Loading @@ -899,11 +893,7 @@ int msm_fb_writeback_iommu_ref(struct fb_info *info, int enable) return ret; } } else { ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU dettach failed\n"); return ret; } mdss_iommu_ctrl(0); } return 0; Loading Loading
drivers/video/msm/mdss/mdss_mdp.c +1 −5 Original line number Diff line number Diff line Loading @@ -2908,11 +2908,7 @@ int mdss_mdp_footswitch_ctrl_idle_pc(int on, struct device *dev) return rc; } mdss_hw_init(mdata); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("iommu dettach failed ret=%d\n", rc); return rc; } mdss_iommu_ctrl(0); mdata->idle_pc = false; } else { mdata->idle_pc = true; Loading
drivers/video/msm/mdss/mdss_mdp_intf_cmd.c +4 −12 Original line number Diff line number Diff line Loading @@ -200,28 +200,20 @@ static inline void mdss_mdp_cmd_clk_on(struct mdss_mdp_cmd_ctx *ctx) if (cancel_delayed_work_sync(&ctx->pc_work)) pr_debug("deleted pending power collapse work\n"); rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) pr_err("IOMMU attach failed\n"); if (ctx->idle_pc) { mdss_mdp_footswitch_ctrl_idle_pc(1, &ctx->ctl->mfd->pdev->dev); mdss_mdp_ctl_restore(ctx->ctl); rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU attach failed\n"); mutex_unlock(&ctx->clk_mtx); return; } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); if (mdss_mdp_cmd_tearcheck_setup(ctx->ctl)) pr_warn("tearcheck setup failed\n"); ctx->idle_pc = false; } else { rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU attach failed\n"); mutex_unlock(&ctx->clk_mtx); return; } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); } Loading
drivers/video/msm/mdss/mdss_mdp_overlay.c +22 −26 Original line number Diff line number Diff line Loading @@ -962,15 +962,15 @@ int mdss_mdp_overlay_get_buf(struct msm_fb_data_type *mfd, int num_planes, u32 flags) { int i, rc, ret; int i, rc; if ((num_planes <= 0) || (num_planes > MAX_PLANES)) return -EINVAL; ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("Iommu attach failed"); return ret; goto end; } memset(data, 0, sizeof(*data)); Loading @@ -987,13 +987,9 @@ int mdss_mdp_overlay_get_buf(struct msm_fb_data_type *mfd, } } ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("Iommu dettach failed"); return ret; } mdss_iommu_ctrl(0); data->num_planes = i; end: return rc; } Loading @@ -1010,12 +1006,7 @@ int mdss_mdp_overlay_free_buf(struct mdss_mdp_data *data) for (i = 0; i < data->num_planes && data->p[i].len; i++) mdss_mdp_put_img(&data->p[i]); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("Iommu dettach failed"); return rc; } mdss_iommu_ctrl(0); data->num_planes = 0; return 0; } Loading Loading @@ -1169,7 +1160,7 @@ void mdss_mdp_handoff_cleanup_pipes(struct msm_fb_data_type *mfd, */ int mdss_mdp_overlay_start(struct msm_fb_data_type *mfd) { int rc, ret; int rc; struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd); struct mdss_mdp_ctl *ctl = mdp5_data->ctl; Loading Loading @@ -1204,17 +1195,13 @@ int mdss_mdp_overlay_start(struct msm_fb_data_type *mfd) */ if (!is_mdss_iommu_attached()) { if (!mfd->panel_info->cont_splash_enabled) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("iommu attach failed ret=%d\n", ret); return ret; rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { pr_err("iommu attach failed rc=%d\n", rc); return rc; } mdss_hw_init(mdss_res); ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("iommu dettach failed ret=%d\n", ret); return ret; } mdss_iommu_ctrl(0); } } Loading Loading @@ -1836,6 +1823,13 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); goto pan_display_error; } bpp = fbi->var.bits_per_pixel / 8; offset = fbi->var.xoffset * bpp + fbi->var.yoffset * fbi->fix.line_length; Loading Loading @@ -1904,10 +1898,12 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd) (fbi->var.activate & FB_ACTIVATE_FORCE)) mfd->mdp.kickoff_fnc(mfd, NULL); mdss_iommu_ctrl(0); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); return; pan_display_error: mdss_iommu_ctrl(0); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); mutex_unlock(&mdp5_data->ov_lock); } Loading
drivers/video/msm/mdss/mdss_mdp_splash_logo.c +1 −4 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ static void mdss_mdp_splash_unmap_splash_mem(struct msm_fb_data_type *mfd) { struct iommu_domain *domain; struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd); int ret; if (mfd->splash_info.iommu_dynamic_attached) { domain = msm_get_iommu_domain(mdss_get_iommu_domain( Loading @@ -167,9 +166,7 @@ static void mdss_mdp_splash_unmap_splash_mem(struct msm_fb_data_type *mfd) iommu_unmap(domain, mdp5_data->splash_mem_addr, mdp5_data->splash_mem_size); ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) pr_err("mdss iommu dettach failed\n"); mdss_iommu_ctrl(0); mfd->splash_info.iommu_dynamic_attached = false; } Loading
drivers/video/msm/mdss/mdss_mdp_wb.c +12 −22 Original line number Diff line number Diff line Loading @@ -413,7 +413,7 @@ static struct mdss_mdp_wb_data *get_user_node(struct msm_fb_data_type *mfd, struct mdss_mdp_wb *wb = mfd_to_wb(mfd); struct mdss_mdp_wb_data *node; struct mdss_mdp_img_data *buf; int ret, rc; int ret; if (!list_empty(&wb->register_queue)) { list_for_each_entry(node, &wb->register_queue, registered_entry) Loading @@ -437,21 +437,20 @@ static struct mdss_mdp_wb_data *get_user_node(struct msm_fb_data_type *mfd, buf = &node->buf_data.p[0]; if (wb->is_secure) buf->flags |= MDP_SECURE_OVERLAY_SESSION; rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); goto register_fail; } ret = mdss_mdp_get_img(data, buf); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU dettach failed\n"); goto register_fail; } if (IS_ERR_VALUE(ret)) { pr_err("error getting buffer info\n"); mdss_iommu_ctrl(0); goto register_fail; } mdss_iommu_ctrl(0); memcpy(&node->buf_info, data, sizeof(*data)); ret = mdss_mdp_wb_register_node(wb, node); Loading Loading @@ -728,7 +727,6 @@ int mdss_mdp_wb_ioctl_handler(struct msm_fb_data_type *mfd, u32 cmd, { struct msmfb_data data; int ret = -ENOSYS, hint = 0; int rc; switch (cmd) { case MSMFB_WRITEBACK_INIT: Loading Loading @@ -759,17 +757,13 @@ int mdss_mdp_wb_ioctl_handler(struct msm_fb_data_type *mfd, u32 cmd, } break; case MSMFB_WRITEBACK_TERMINATE: rc = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(rc)) { ret = mdss_iommu_ctrl(1); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU attach failed\n"); return rc; return ret; } ret = mdss_mdp_wb_terminate(mfd); rc = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(rc)) { pr_err("IOMMU dettach failed\n"); return rc; } mdss_iommu_ctrl(0); break; case MSMFB_WRITEBACK_SET_MIRRORING_HINT: if (!copy_from_user(&hint, arg, sizeof(hint))) { Loading Loading @@ -899,11 +893,7 @@ int msm_fb_writeback_iommu_ref(struct fb_info *info, int enable) return ret; } } else { ret = mdss_iommu_ctrl(0); if (IS_ERR_VALUE(ret)) { pr_err("IOMMU dettach failed\n"); return ret; } mdss_iommu_ctrl(0); } return 0; Loading