Loading drivers/gpu/drm/msm/sde/sde_plane.c +40 −36 Original line number Original line Diff line number Diff line Loading @@ -1359,19 +1359,20 @@ static int _sde_plane_mode_set(struct drm_plane *plane, src.y = DIV_ROUND_UP(src.y, 2); src.y = DIV_ROUND_UP(src.y, 2); src.y &= ~0x1; src.y &= ~0x1; } } } list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) num_of_phy_planes++; num_of_phy_planes++; /* /* * Only need to use one physical plane if plane width is still within * Only need to use one physical plane if plane width * the limitation. * is still within the limitation. */ */ is_across_mixer_boundary = (plane->state->crtc_x < crtc_split_width) && is_across_mixer_boundary = (plane->state->crtc_x < crtc_split_width) && (plane->state->crtc_x + plane->state->crtc_w > (plane->state->crtc_x + plane->state->crtc_w > crtc_split_width); crtc_split_width); if (crtc_split_width >= (src.x + src.w) && !is_across_mixer_boundary) if (crtc_split_width >= (src.x + src.w) && !is_across_mixer_boundary) num_of_phy_planes = 1; num_of_phy_planes = 1; if (num_of_phy_planes > 1) { if (num_of_phy_planes > 1) { Loading @@ -1390,8 +1391,8 @@ static int _sde_plane_mode_set(struct drm_plane *plane, pp->pipe_cfg.dst_rect = dst; pp->pipe_cfg.dst_rect = dst; /* check for color fill */ /* check for color fill */ pp->color_fill = (uint32_t)sde_plane_get_property(pstate, pp->color_fill = (uint32_t)sde_plane_get_property( PLANE_PROP_COLOR_FILL); pstate, PLANE_PROP_COLOR_FILL); if (pp->color_fill & SDE_PLANE_COLOR_FILL_FLAG) { if (pp->color_fill & SDE_PLANE_COLOR_FILL_FLAG) { /* skip remaining processing on color fill */ /* skip remaining processing on color fill */ pstate->dirty = 0x0; pstate->dirty = 0x0; Loading @@ -1402,7 +1403,10 @@ static int _sde_plane_mode_set(struct drm_plane *plane, &pp->pipe_cfg, &pp->pixel_ext, &pp->pipe_cfg, &pp->pixel_ext, pp->scaler3_cfg); pp->scaler3_cfg); } } } } list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) { if (((pstate->dirty & SDE_PLANE_DIRTY_FORMAT) || if (((pstate->dirty & SDE_PLANE_DIRTY_FORMAT) || (src_flags & (src_flags & SDE_SSPP_SECURE_OVERLAY_SESSION)) && SDE_SSPP_SECURE_OVERLAY_SESSION)) && Loading Loading
drivers/gpu/drm/msm/sde/sde_plane.c +40 −36 Original line number Original line Diff line number Diff line Loading @@ -1359,19 +1359,20 @@ static int _sde_plane_mode_set(struct drm_plane *plane, src.y = DIV_ROUND_UP(src.y, 2); src.y = DIV_ROUND_UP(src.y, 2); src.y &= ~0x1; src.y &= ~0x1; } } } list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) num_of_phy_planes++; num_of_phy_planes++; /* /* * Only need to use one physical plane if plane width is still within * Only need to use one physical plane if plane width * the limitation. * is still within the limitation. */ */ is_across_mixer_boundary = (plane->state->crtc_x < crtc_split_width) && is_across_mixer_boundary = (plane->state->crtc_x < crtc_split_width) && (plane->state->crtc_x + plane->state->crtc_w > (plane->state->crtc_x + plane->state->crtc_w > crtc_split_width); crtc_split_width); if (crtc_split_width >= (src.x + src.w) && !is_across_mixer_boundary) if (crtc_split_width >= (src.x + src.w) && !is_across_mixer_boundary) num_of_phy_planes = 1; num_of_phy_planes = 1; if (num_of_phy_planes > 1) { if (num_of_phy_planes > 1) { Loading @@ -1390,8 +1391,8 @@ static int _sde_plane_mode_set(struct drm_plane *plane, pp->pipe_cfg.dst_rect = dst; pp->pipe_cfg.dst_rect = dst; /* check for color fill */ /* check for color fill */ pp->color_fill = (uint32_t)sde_plane_get_property(pstate, pp->color_fill = (uint32_t)sde_plane_get_property( PLANE_PROP_COLOR_FILL); pstate, PLANE_PROP_COLOR_FILL); if (pp->color_fill & SDE_PLANE_COLOR_FILL_FLAG) { if (pp->color_fill & SDE_PLANE_COLOR_FILL_FLAG) { /* skip remaining processing on color fill */ /* skip remaining processing on color fill */ pstate->dirty = 0x0; pstate->dirty = 0x0; Loading @@ -1402,7 +1403,10 @@ static int _sde_plane_mode_set(struct drm_plane *plane, &pp->pipe_cfg, &pp->pixel_ext, &pp->pipe_cfg, &pp->pixel_ext, pp->scaler3_cfg); pp->scaler3_cfg); } } } } list_for_each_entry(pp, &psde->phy_plane_head, phy_plane_list) { if (((pstate->dirty & SDE_PLANE_DIRTY_FORMAT) || if (((pstate->dirty & SDE_PLANE_DIRTY_FORMAT) || (src_flags & (src_flags & SDE_SSPP_SECURE_OVERLAY_SESSION)) && SDE_SSPP_SECURE_OVERLAY_SESSION)) && Loading