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

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

Merge "drm/msm/sde: remove extra entries from interrupt table"

parents b14c620e c2170697
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -316,8 +316,8 @@ static int get_mdp_ver(struct platform_device *pdev)
	static const struct of_device_id match_types[] = { {
		.compatible = "qcom,sde-kms",
		.data	= (void	*)KMS_SDE,
		/* end node */
	} };
	},
	{} };
	struct device *dev = &pdev->dev;
	const struct of_device_id *match;
	match = of_match_node(match_types, dev->of_node);
+17 −7
Original line number Diff line number Diff line
@@ -368,12 +368,6 @@ void sde_crtc_prepare_commit(struct drm_crtc *crtc,
				cstate->is_rt = true;
		}

	if (cstate->num_connectors > 0 && cstate->connectors[0]->encoder)
		cstate->intf_mode = sde_encoder_get_intf_mode(
				cstate->connectors[0]->encoder);
	else
		cstate->intf_mode = INTF_MODE_NONE;

	/* prepare main output fence */
	sde_fence_prepare(&sde_crtc->output_fence);
}
@@ -424,6 +418,22 @@ static void _sde_crtc_complete_flip(struct drm_crtc *crtc,
	spin_unlock_irqrestore(&dev->event_lock, flags);
}

enum sde_intf_mode sde_crtc_get_intf_mode(struct drm_crtc *crtc)
{
	struct drm_encoder *encoder;

	if (!crtc || !crtc->dev) {
		SDE_ERROR("invalid crtc\n");
		return INTF_MODE_NONE;
	}

	drm_for_each_encoder(encoder, crtc->dev)
		if (encoder->crtc == crtc)
			return sde_encoder_get_intf_mode(encoder);

	return INTF_MODE_NONE;
}

static void sde_crtc_vblank_cb(void *data)
{
	struct drm_crtc *crtc = (struct drm_crtc *)data;
@@ -1665,7 +1675,7 @@ static int sde_crtc_debugfs_state_show(struct seq_file *s, void *v)

	seq_printf(s, "num_connectors: %d\n", cstate->num_connectors);
	seq_printf(s, "is_rt: %d\n", cstate->is_rt);
	seq_printf(s, "intf_mode: %d\n", cstate->intf_mode);
	seq_printf(s, "intf_mode: %d\n", sde_crtc_get_intf_mode(crtc));
	seq_printf(s, "bw_ctl: %llu\n", cstate->cur_perf.bw_ctl);
	seq_printf(s, "core_clk_rate: %u\n", cstate->cur_perf.core_clk_rate);
	seq_printf(s, "max_per_pipe_ib: %llu\n",
+2 −8
Original line number Diff line number Diff line
@@ -246,16 +246,10 @@ void sde_crtc_cancel_pending_flip(struct drm_crtc *crtc, struct drm_file *file);
bool sde_crtc_is_rt(struct drm_crtc *crtc);

/**
 * sde_crtc_get_intf_mode - get interface mode of the given crtc
 * sde_crtc_get_intf_mode - get primary interface mode of the given crtc
 * @crtc: Pointert to crtc
 */
static inline enum sde_intf_mode sde_crtc_get_intf_mode(struct drm_crtc *crtc)
{
	struct sde_crtc_state *cstate =
			crtc ? to_sde_crtc_state(crtc->state) : NULL;

	return cstate ? cstate->intf_mode : INTF_MODE_NONE;
}
enum sde_intf_mode sde_crtc_get_intf_mode(struct drm_crtc *crtc);

/**
 * sde_core_perf_crtc_is_wb - check if writeback is primary output of this crtc
+27 −0
Original line number Diff line number Diff line
@@ -28,6 +28,24 @@

#define WBID(wb_enc) ((wb_enc) ? wb_enc->wb_dev->wb_idx : -1)

#define TO_S15D16(_x_)	((_x_) << 7)

/**
 * sde_rgb2yuv_601l - rgb to yuv color space conversion matrix
 *
 */
static struct sde_csc_cfg sde_encoder_phys_wb_rgb2yuv_601l = {
	{
		TO_S15D16(0x0083), TO_S15D16(0x0102), TO_S15D16(0x0032),
		TO_S15D16(0x1fb5), TO_S15D16(0x1f6c), TO_S15D16(0x00e1),
		TO_S15D16(0x00e1), TO_S15D16(0x1f45), TO_S15D16(0x1fdc)
	},
	{ 0x00, 0x00, 0x00 },
	{ 0x0040, 0x0200, 0x0200 },
	{ 0x000, 0x3ff, 0x000, 0x3ff, 0x000, 0x3ff },
	{ 0x040, 0x3ac, 0x040, 0x3c0, 0x040, 0x3c0 },
};

/**
 * sde_encoder_phys_wb_is_master - report wb always as master encoder
 */
@@ -150,6 +168,15 @@ void sde_encoder_phys_setup_cdm(struct sde_encoder_phys *phys_enc,
			cdm_cfg->h_cdwn_type,
			cdm_cfg->v_cdwn_type);

	if (hw_cdm && hw_cdm->ops.setup_csc_data) {
		ret = hw_cdm->ops.setup_csc_data(hw_cdm,
				&sde_encoder_phys_wb_rgb2yuv_601l);
		if (ret < 0) {
			SDE_ERROR("failed to setup CSC %d\n", ret);
			return;
		}
	}

	if (hw_cdm && hw_cdm->ops.setup_cdwn) {
		ret = hw_cdm->ops.setup_cdwn(hw_cdm, cdm_cfg);
		if (ret < 0) {
+153 −26
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@
 * GNU General Public License for more details.
 */

#define pr_fmt(fmt)	"[drm:%s:%d] " fmt, __func__, __LINE__

#include <uapi/drm/drm_fourcc.h>
#include <uapi/media/msm_media_info.h>

@@ -407,6 +409,82 @@ static const struct sde_format sde_format_map[] = {
		SDE_FETCH_LINEAR, 3),
};

/*
 * A5x tile formats tables:
 * These tables hold the A5x tile formats supported.
 */
static const struct sde_format sde_format_map_tile[] = {
	INTERLEAVED_RGB_FMT(ARGB8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
		true, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(ABGR8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4,
		true, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(RGBA8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		true, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(BGRA8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
		true, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(BGRX8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
		false, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(XRGB8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
		false, 4, 0,
		SDE_FETCH_UBWC, 1),

	INTERLEAVED_RGB_FMT(RGBX8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		false, 4, 0,
		SDE_FETCH_UBWC, 1),

	PSEUDO_YUV_FMT(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, SDE_FORMAT_FLAG_YUV,
		SDE_FETCH_UBWC, 2),

	PSEUDO_YUV_FMT(NV21,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C1_B_Cb,
		SDE_CHROMA_420, SDE_FORMAT_FLAG_YUV,
		SDE_FETCH_UBWC, 2),
};

static const struct sde_format sde_format_map_p010_tile[] = {
	PSEUDO_YUV_FMT_LOOSE(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX),
		SDE_FETCH_UBWC, 2),
};

static const struct sde_format sde_format_map_tp10_tile[] = {
	PSEUDO_YUV_FMT(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX),
		SDE_FETCH_UBWC, 2),
};

/*
 * UBWC formats table:
 * This table holds the UBWC formats supported.
@@ -417,37 +495,38 @@ static const struct sde_format sde_format_map_ubwc[] = {
	INTERLEAVED_RGB_FMT(BGR565,
		0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
		false, 2, 0,
		false, 2, SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 2),

	INTERLEAVED_RGB_FMT(ABGR8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		true, 4, 0,
		true, 4, SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 2),

	INTERLEAVED_RGB_FMT(XBGR8888,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		false, 4, 0,
		false, 4, SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 2),

	INTERLEAVED_RGB_FMT(ABGR2101010,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		true, 4, SDE_FORMAT_FLAG_DX,
		true, 4, SDE_FORMAT_FLAG_DX | SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 2),

	INTERLEAVED_RGB_FMT(XBGR2101010,
		COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
		true, 4, SDE_FORMAT_FLAG_DX,
		true, 4, SDE_FORMAT_FLAG_DX | SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 2),

	PSEUDO_YUV_FMT(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, SDE_FORMAT_FLAG_YUV,
		SDE_CHROMA_420, SDE_FORMAT_FLAG_YUV |
				SDE_FORMAT_FLAG_COMPRESSED,
		SDE_FETCH_UBWC, 4),
};

@@ -463,7 +542,8 @@ static const struct sde_format sde_format_map_p010_ubwc[] = {
	PSEUDO_YUV_FMT_LOOSE(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX),
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX |
				SDE_FORMAT_FLAG_COMPRESSED),
		SDE_FETCH_UBWC, 4),
};

@@ -471,7 +551,8 @@ static const struct sde_format sde_format_map_tp10_ubwc[] = {
	PSEUDO_YUV_FMT(NV12,
		0, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
		C1_B_Cb, C2_R_Cr,
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX),
		SDE_CHROMA_420, (SDE_FORMAT_FLAG_YUV | SDE_FORMAT_FLAG_DX |
				SDE_FORMAT_FLAG_COMPRESSED),
		SDE_FETCH_UBWC, 4),
};

@@ -545,6 +626,7 @@ static int _sde_format_get_plane_sizes_ubwc(
{
	int i;
	int color;
	bool meta = SDE_FORMAT_IS_UBWC(fmt);

	memset(layout, 0, sizeof(struct sde_hw_fmt_layout));
	layout->format = fmt;
@@ -564,7 +646,7 @@ static int _sde_format_get_plane_sizes_ubwc(
		uint32_t y_meta_scanlines = 0;
		uint32_t uv_meta_scanlines = 0;

		layout->num_planes = 4;
		layout->num_planes = 2;
		layout->plane_pitch[0] = VENUS_Y_STRIDE(color, width);
		y_sclines = VENUS_Y_SCANLINES(color, height);
		layout->plane_size[0] = MSM_MEDIA_ALIGN(layout->plane_pitch[0] *
@@ -575,6 +657,10 @@ static int _sde_format_get_plane_sizes_ubwc(
		layout->plane_size[1] = MSM_MEDIA_ALIGN(layout->plane_pitch[1] *
			uv_sclines, SDE_UBWC_PLANE_SIZE_ALIGNMENT);

		if (!meta)
			goto done;

		layout->num_planes += 2;
		layout->plane_pitch[2] = VENUS_Y_META_STRIDE(color, width);
		y_meta_scanlines = VENUS_Y_META_SCANLINES(color, height);
		layout->plane_size[2] = MSM_MEDIA_ALIGN(layout->plane_pitch[2] *
@@ -588,19 +674,23 @@ static int _sde_format_get_plane_sizes_ubwc(
	} else {
		uint32_t rgb_scanlines, rgb_meta_scanlines;

		layout->num_planes = 3;
		layout->num_planes = 1;

		layout->plane_pitch[0] = VENUS_RGB_STRIDE(color, width);
		rgb_scanlines = VENUS_RGB_SCANLINES(color, height);
		layout->plane_size[0] = MSM_MEDIA_ALIGN(layout->plane_pitch[0] *
			rgb_scanlines, SDE_UBWC_PLANE_SIZE_ALIGNMENT);

		if (!meta)
			goto done;
		layout->num_planes += 2;
		layout->plane_pitch[2] = VENUS_RGB_META_STRIDE(color, width);
		rgb_meta_scanlines = VENUS_RGB_META_SCANLINES(color, height);
		layout->plane_size[2] = MSM_MEDIA_ALIGN(layout->plane_pitch[2] *
			rgb_meta_scanlines, SDE_UBWC_PLANE_SIZE_ALIGNMENT);
	}

done:
	for (i = 0; i < SDE_MAX_PLANES; i++)
		layout->total_size += layout->plane_size[i];

@@ -667,7 +757,7 @@ static int _sde_format_get_plane_sizes_linear(
	return 0;
}

static int _sde_format_get_plane_sizes(
int sde_format_get_plane_sizes(
		const struct sde_format *fmt,
		const uint32_t w,
		const uint32_t h,
@@ -683,7 +773,7 @@ static int _sde_format_get_plane_sizes(
		return -ERANGE;
	}

	if (SDE_FORMAT_IS_UBWC(fmt))
	if (SDE_FORMAT_IS_UBWC(fmt) || SDE_FORMAT_IS_TILE(fmt))
		return _sde_format_get_plane_sizes_ubwc(fmt, w, h, layout);

	return _sde_format_get_plane_sizes_linear(fmt, w, h, layout);
@@ -695,6 +785,7 @@ static int _sde_format_populate_addrs_ubwc(
		struct sde_hw_fmt_layout *layout)
{
	uint32_t base_addr;
	bool meta;

	if (!fb || !layout) {
		DRM_ERROR("invalid pointers\n");
@@ -707,6 +798,8 @@ static int _sde_format_populate_addrs_ubwc(
		return -EFAULT;
	}

	meta = SDE_FORMAT_IS_UBWC(layout->format);

	/* Per-format logic for verifying active planes */
	if (SDE_FORMAT_IS_YUV(layout->format)) {
		/************************************************/
@@ -736,6 +829,9 @@ static int _sde_format_populate_addrs_ubwc(
		layout->plane_addr[1] = base_addr + layout->plane_size[0]
			+ layout->plane_size[2] + layout->plane_size[3];

		if (!meta)
			goto done;

		/* configure Y metadata plane */
		layout->plane_addr[2] = base_addr;

@@ -763,10 +859,14 @@ static int _sde_format_populate_addrs_ubwc(

		layout->plane_addr[0] = base_addr + layout->plane_size[2];
		layout->plane_addr[1] = 0;

		if (!meta)
			goto done;

		layout->plane_addr[2] = base_addr;
		layout->plane_addr[3] = 0;
	}

done:
	return 0;
}

@@ -820,7 +920,7 @@ int sde_format_populate_layout(
	layout->format = to_sde_format(msm_framebuffer_format(fb));

	/* Populate the plane sizes etc via get_format */
	ret = _sde_format_get_plane_sizes(layout->format, fb->width, fb->height,
	ret = sde_format_get_plane_sizes(layout->format, fb->width, fb->height,
			layout);
	if (ret)
		return ret;
@@ -829,7 +929,8 @@ int sde_format_populate_layout(
		plane_addr[i] = layout->plane_addr[i];

	/* Populate the addresses given the fb */
	if (SDE_FORMAT_IS_UBWC(layout->format))
	if (SDE_FORMAT_IS_UBWC(layout->format) ||
			SDE_FORMAT_IS_TILE(layout->format))
		ret = _sde_format_populate_addrs_ubwc(aspace, fb, layout);
	else
		ret = _sde_format_populate_addrs_linear(aspace, fb, layout);
@@ -923,7 +1024,7 @@ int sde_format_check_modified_format(
	fmt = to_sde_format(msm_fmt);
	num_base_fmt_planes = drm_format_num_planes(fmt->base.pixel_format);

	ret = _sde_format_get_plane_sizes(fmt, cmd->width, cmd->height,
	ret = sde_format_get_plane_sizes(fmt, cmd->width, cmd->height,
			&layout);
	if (ret)
		return ret;
@@ -962,14 +1063,14 @@ const struct sde_format *sde_get_sde_format_ext(
	 * All planes used must specify the same modifier.
	 */
	if (modifiers_len && !modifiers) {
		DRM_ERROR("invalid modifiers array\n");
		SDE_ERROR("invalid modifiers array\n");
		return NULL;
	} else if (modifiers && modifiers_len && modifiers[0]) {
		mod0 = modifiers[0];
		DBG("plane format modifier 0x%llX", mod0);
		SDE_DEBUG("plane format modifier 0x%llX\n", mod0);
		for (i = 1; i < modifiers_len; i++) {
			if (modifiers[i] != mod0) {
				DRM_ERROR("bad fmt mod 0x%llX on plane %d\n",
				SDE_ERROR("bad fmt mod 0x%llX on plane %d\n",
					modifiers[i], i);
				return NULL;
			}
@@ -982,29 +1083,55 @@ const struct sde_format *sde_get_sde_format_ext(
		map_size = ARRAY_SIZE(sde_format_map);
		break;
	case DRM_FORMAT_MOD_QCOM_COMPRESSED:
	case DRM_FORMAT_MOD_QCOM_COMPRESSED | DRM_FORMAT_MOD_QCOM_TILE:
		map = sde_format_map_ubwc;
		map_size = ARRAY_SIZE(sde_format_map_ubwc);
		DBG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED", format);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED\n",
				format);
		break;
	case DRM_FORMAT_MOD_QCOM_DX:
		map = sde_format_map_p010;
		map_size = ARRAY_SIZE(sde_format_map_p010);
		DBG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_DX", format);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_DX\n", format);
		break;
	case (DRM_FORMAT_MOD_QCOM_DX | DRM_FORMAT_MOD_QCOM_COMPRESSED):
	case (DRM_FORMAT_MOD_QCOM_DX | DRM_FORMAT_MOD_QCOM_COMPRESSED |
			DRM_FORMAT_MOD_QCOM_TILE):
		map = sde_format_map_p010_ubwc;
		map_size = ARRAY_SIZE(sde_format_map_p010_ubwc);
		DBG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED/DX", format);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED/DX\n",
				format);
		break;
	case (DRM_FORMAT_MOD_QCOM_DX | DRM_FORMAT_MOD_QCOM_COMPRESSED |
		DRM_FORMAT_MOD_QCOM_TIGHT):
	case (DRM_FORMAT_MOD_QCOM_DX | DRM_FORMAT_MOD_QCOM_COMPRESSED |
		DRM_FORMAT_MOD_QCOM_TIGHT | DRM_FORMAT_MOD_QCOM_TILE):
		map = sde_format_map_tp10_ubwc;
		map_size = ARRAY_SIZE(sde_format_map_tp10_ubwc);
		DBG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED/DX/TIGHT",
		SDE_DEBUG(
			"found fmt 0x%X DRM_FORMAT_MOD_QCOM_COMPRESSED/DX/TIGHT\n",
			format);
		break;
	case DRM_FORMAT_MOD_QCOM_TILE:
		map = sde_format_map_tile;
		map_size = ARRAY_SIZE(sde_format_map_tile);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_TILE\n", format);
		break;
	case (DRM_FORMAT_MOD_QCOM_TILE | DRM_FORMAT_MOD_QCOM_DX):
		map = sde_format_map_p010_tile;
		map_size = ARRAY_SIZE(sde_format_map_p010_tile);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_TILE/DX\n",
				format);
		break;
	case (DRM_FORMAT_MOD_QCOM_TILE | DRM_FORMAT_MOD_QCOM_DX |
			DRM_FORMAT_MOD_QCOM_TIGHT):
		map = sde_format_map_tp10_tile;
		map_size = ARRAY_SIZE(sde_format_map_tp10_tile);
		SDE_DEBUG("found fmt 0x%X DRM_FORMAT_MOD_QCOM_TILE/DX/TIGHT\n",
				format);
		break;
	default:
		DRM_ERROR("unsupported format modifier %llX\n", mod0);
		SDE_ERROR("unsupported format modifier %llX\n", mod0);
		return NULL;
	}

@@ -1016,10 +1143,10 @@ const struct sde_format *sde_get_sde_format_ext(
	}

	if (fmt == NULL)
		DRM_ERROR("unsupported fmt 0x%X modifier 0x%llX\n",
		SDE_ERROR("unsupported fmt 0x%X modifier 0x%llX\n",
				format, mod0);
	else
		DBG("fmt %s mod 0x%llX ubwc %d yuv %d",
		SDE_DEBUG("fmt %s mod 0x%llX ubwc %d yuv %d\n",
				drm_get_format_name(format), mod0,
				SDE_FORMAT_IS_UBWC(fmt),
				SDE_FORMAT_IS_YUV(fmt));
Loading