Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ca64626 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "[drm/sde] fix uninitialized src/dst size in sde plane"

parents 0148dbac d3fd3155
Loading
Loading
Loading
Loading
+40 −36
Original line number Original line Diff line number Diff line
@@ -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) {
@@ -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;
@@ -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)) &&