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

Commit 7894acdb authored by Xiaowen Wu's avatar Xiaowen Wu Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm/sde: add panel stacking support



To support transparent panel stacking, application will pass non-panel-
stacking buffer roi to kernel and let kernel to extend to panel-stacking
size.  A special flag is defined on source config for this purpose.

Change-Id: I59eb290f0f7b92744972391d7db743e2da12300b
Signed-off-by: default avatarXiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: default avatarRahul Sharma <rahsha@codeaurora.org>
parent 7079e398
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -1387,6 +1387,13 @@ static int _sde_plane_mode_set(struct drm_plane *plane,
				if (cstate->is_shared) {
				if (cstate->is_shared) {
					dst.x += cstate->shared_roi.x;
					dst.x += cstate->shared_roi.x;
					dst.y += cstate->shared_roi.y;
					dst.y += cstate->shared_roi.y;

					if (sde_plane_get_property(pstate,
						PLANE_PROP_SRC_CONFIG) &
						BIT(SDE_DRM_LINEPADDING)) {
						src.h = cstate->shared_roi.h;
						dst.h = cstate->shared_roi.h;
					}
				}
				}
			}
			}


@@ -1806,7 +1813,8 @@ static void _sde_plane_install_properties(struct drm_plane *plane,
		{SDE_DRM_BLEND_OP_COVERAGE,       "coverage"}
		{SDE_DRM_BLEND_OP_COVERAGE,       "coverage"}
	};
	};
	static const struct drm_prop_enum_list e_src_config[] = {
	static const struct drm_prop_enum_list e_src_config[] = {
		{SDE_DRM_DEINTERLACE, "deinterlace"}
		{SDE_DRM_DEINTERLACE, "deinterlace"},
		{SDE_DRM_LINEPADDING, "linepadding"},
	};
	};
	static const struct drm_prop_enum_list e_fb_translation_mode[] = {
	static const struct drm_prop_enum_list e_fb_translation_mode[] = {
		{SDE_DRM_FB_NON_SEC, "non_sec"},
		{SDE_DRM_FB_NON_SEC, "non_sec"},
+1 −0
Original line number Original line Diff line number Diff line
@@ -60,6 +60,7 @@
 * construct bitmask via (1UL << SDE_DRM_<flag>)
 * construct bitmask via (1UL << SDE_DRM_<flag>)
 */
 */
#define SDE_DRM_DEINTERLACE         0   /* Specifies interlaced input */
#define SDE_DRM_DEINTERLACE         0   /* Specifies interlaced input */
#define SDE_DRM_LINEPADDING         1   /* Specifies line padding input */


/* DRM bitmasks are restricted to 0..63 */
/* DRM bitmasks are restricted to 0..63 */
#define SDE_DRM_BITMASK_COUNT       64
#define SDE_DRM_BITMASK_COUNT       64