summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorMayank Chopra <makchopra@codeaurora.org>2013-07-24 12:31:01 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:19:36 -0700
commit7bf5af98fba413f81cd2428d829a0c2117c716e3 (patch)
treee1715a3d9c85cf316125ea9851ee2a7adbf7a957 /include/uapi
parentb187f83cf20fd20b41675620108c66bf842d075f (diff)
msm: mdss: Add plane alpha support
Clean up the blending rule to follow blend_op set from hwc. Use modulate alpha for plane alpha when it is not 0xff. Change-Id: Iad7217563bcae5e89fe8e50954494f6afdcb8e79 Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/msm_mdp.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h
index 168bf154fde4..0ea775cff219 100644
--- a/include/uapi/linux/msm_mdp.h
+++ b/include/uapi/linux/msm_mdp.h
@@ -395,6 +395,33 @@ struct mdp_overlay_pp_params {
struct mdp_hist_lut_data hist_lut_cfg;
};
+/**
+ * enum mdss_mdp_blend_op - Different blend operations set by userspace
+ *
+ * @BLEND_OP_NOT_DEFINED: No blend operation defined for the layer.
+ * @BLEND_OP_OPAQUE: Apply a constant blend operation. The layer
+ * would appear opaque in case fg plane alpha is
+ * 0xff.
+ * @BLEND_OP_PREMULTIPLIED: Apply source over blend rule. Layer already has
+ * alpha pre-multiplication done. If fg plane alpha
+ * is less than 0xff, apply modulation as well. This
+ * operation is intended on layers having alpha
+ * channel.
+ * @BLEND_OP_COVERAGE: Apply source over blend rule. Layer is not alpha
+ * pre-multiplied. Apply pre-multiplication. If fg
+ * plane alpha is less than 0xff, apply modulation as
+ * well.
+ * @BLEND_OP_MAX: Used to track maximum blend operation possible by
+ * mdp.
+ */
+enum mdss_mdp_blend_op {
+ BLEND_OP_NOT_DEFINED = 0,
+ BLEND_OP_OPAQUE,
+ BLEND_OP_PREMULTIPLIED,
+ BLEND_OP_COVERAGE,
+ BLEND_OP_MAX,
+};
+
struct mdp_overlay {
struct msmfb_img src;
struct mdp_rect src_rect;
@@ -402,6 +429,7 @@ struct mdp_overlay {
uint32_t z_order; /* stage number */
uint32_t is_fg; /* control alpha & transp */
uint32_t alpha;
+ uint32_t blend_op;
uint32_t transp_mask;
uint32_t flags;
uint32_t id;