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

Commit 2c6f3d2b authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: fix true inline rotation format checks"

parents 8efc3eb3 8365f0b1
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -1346,26 +1346,26 @@ uint32_t sde_populate_formats(
}

int sde_format_validate_fmt(struct msm_kms *kms,
	const struct msm_format *msm_fmt,
	const struct sde_format *sde_fmt,
	const struct sde_format_extended *fmt_list)
{
	const struct msm_format *fmt_tmp;
	const struct sde_format *fmt_tmp;
	bool valid_format = false;
	int ret = 0;

	if (!msm_fmt || !fmt_list) {
	if (!sde_fmt || !fmt_list) {
		SDE_ERROR("invalid fmt:%d list:%d\n",
			!msm_fmt, !fmt_list);
			!sde_fmt, !fmt_list);
		ret = -EINVAL;
		goto exit;
	}

	while (fmt_list->fourcc_format) {
		fmt_tmp = sde_get_msm_format(kms,
				fmt_list->fourcc_format,
		fmt_tmp = sde_get_sde_format_ext(fmt_list->fourcc_format,
					fmt_list->modifier);
		if (fmt_tmp &&
			(fmt_tmp->pixel_format == msm_fmt->pixel_format)) {
		if (fmt_tmp
		  && (fmt_tmp->base.pixel_format == sde_fmt->base.pixel_format)
		  && (fmt_tmp->fetch_mode == sde_fmt->fetch_mode)) {
			valid_format = true;
			break;
		}
@@ -1373,8 +1373,8 @@ int sde_format_validate_fmt(struct msm_kms *kms,
	}

	if (!valid_format) {
		SDE_ERROR("fmt:%d not found within the list!\n",
			msm_fmt->pixel_format);
		SDE_ERROR("fmt:%d mode:%d not found within the list!\n",
			sde_fmt->base.pixel_format, sde_fmt->fetch_mode);
		ret = -EINVAL;
	}
exit:
+4 −4
Original line number Diff line number Diff line
@@ -151,16 +151,16 @@ uint32_t sde_format_get_framebuffer_size(
bool sde_format_is_tp10_ubwc(const struct sde_format *fmt);

/**
 * sde_format_validate_fmt - validates if the format "msm_fmt" is within
 * sde_format_validate_fmt - validates if the format "sde_fmt" is within
 *	the list "fmt_list"
 * @kms: pointer to the kms object
 * @msm_fmt: pointer to the format to look within the list
 * @fmt_list: list where driver will loop to look for the 'msm_fmt' format.
 * @sde_fmt: pointer to the format to look within the list
 * @fmt_list: list where driver will loop to look for the 'sde_fmt' format.
 * @result: returns 0 if the format is found, otherwise will return an
 *	error code.
 */
int sde_format_validate_fmt(struct msm_kms *kms,
	const struct msm_format *msm_fmt,
	const struct sde_format *sde_fmt,
	const struct sde_format_extended *fmt_list);

#endif /*_SDE_FORMATS_H */
+1 −1
Original line number Diff line number Diff line
@@ -1670,7 +1670,7 @@ static int sde_plane_rot_atomic_check(struct drm_plane *plane,

		/* check for valid formats supported by inline rot */
		sde_kms = to_sde_kms(priv->kms);
		ret = sde_format_validate_fmt(&sde_kms->base, msm_fmt,
		ret = sde_format_validate_fmt(&sde_kms->base, fmt,
			psde->pipe_sblk->in_rot_format_list);

	}