summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorKrishna Chaitanya Devarakonda <kdevarak@codeaurora.org>2016-11-21 21:52:35 +0530
committerKrishna Chaitanya Devarakonda <kdevarak@codeaurora.org>2017-01-06 20:11:12 +0530
commitc388e8fc0677fa0d54ca7b55f43c4794291fe1e8 (patch)
tree35c7bc57a13775f58bac3158b71e7f2deb31ad30 /drivers/video/fbdev/msm
parent2116b44bd37e0245ac3442be3dd094397ce017c9 (diff)
msm: mdss: Fix panel orientation handling for split displays
For split display panels, when panel has 180 flip or HFLIP, the source layers needs to be swapped instead of the mixers. SDM will take care of the source swap and rectangle recalculations. This change is to remove the mixer swap, and to expose the panel flip property through sysfs, so that SDM can flip the source layers to maintain pipe priority. Change-Id: I47a7dd38dc1e45dd3f7edbd189c9403900b74eea Signed-off-by: Krishna Chaitanya Devarakonda <kdevarak@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.c6
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_layer.c10
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c4
3 files changed, 4 insertions, 16 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
index 082986b0ade7..f20248e13cf8 100644
--- a/drivers/video/fbdev/msm/mdss_fb.c
+++ b/drivers/video/fbdev/msm/mdss_fb.c
@@ -594,7 +594,8 @@ static ssize_t mdss_fb_get_panel_info(struct device *dev,
"white_chromaticity_x=%d\nwhite_chromaticity_y=%d\n"
"red_chromaticity_x=%d\nred_chromaticity_y=%d\n"
"green_chromaticity_x=%d\ngreen_chromaticity_y=%d\n"
- "blue_chromaticity_x=%d\nblue_chromaticity_y=%d\n",
+ "blue_chromaticity_x=%d\nblue_chromaticity_y=%d\n"
+ "panel_orientation=%d\n",
pinfo->partial_update_enabled,
pinfo->roi_alignment.xstart_pix_align,
pinfo->roi_alignment.width_pix_align,
@@ -618,7 +619,8 @@ static ssize_t mdss_fb_get_panel_info(struct device *dev,
pinfo->hdr_properties.display_primaries[4],
pinfo->hdr_properties.display_primaries[5],
pinfo->hdr_properties.display_primaries[6],
- pinfo->hdr_properties.display_primaries[7]);
+ pinfo->hdr_properties.display_primaries[7],
+ pinfo->panel_orientation);
return ret;
}
diff --git a/drivers/video/fbdev/msm/mdss_mdp_layer.c b/drivers/video/fbdev/msm/mdss_mdp_layer.c
index c53c8d293539..5a7f8e7e95b4 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_layer.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_layer.c
@@ -1013,9 +1013,6 @@ static int __configure_pipe_params(struct msm_fb_data_type *mfd,
pipe->comp_ratio = layer->buffer.comp_ratio;
- if (mfd->panel_orientation)
- layer->flags ^= mfd->panel_orientation;
-
pipe->mixer_left = mixer;
pipe->mfd = mfd;
pipe->play_cnt = 0;
@@ -1161,13 +1158,6 @@ static int __configure_pipe_params(struct msm_fb_data_type *mfd,
pipe->multirect.mode = vinfo->multirect.mode;
pipe->mixer_stage = layer->z_order;
- if (mfd->panel_orientation & MDP_FLIP_LR)
- pipe->dst.x = pipe->mixer_left->width - pipe->dst.x -
- pipe->dst.w;
- if (mfd->panel_orientation & MDP_FLIP_UD)
- pipe->dst.y = pipe->mixer_left->height - pipe->dst.y -
- pipe->dst.h;
-
memcpy(&pipe->layer, layer, sizeof(struct mdp_input_layer));
mdss_mdp_overlay_set_chroma_sample(pipe);
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 8f48956680fc..c6fc10833d7f 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -6157,10 +6157,6 @@ int mdss_mdp_overlay_init(struct msm_fb_data_type *mfd)
mfd->panel_orientation = mfd->panel_info->panel_orientation;
- if ((mfd->panel_info->panel_orientation & MDP_FLIP_LR) &&
- (mfd->split_mode == MDP_DUAL_LM_DUAL_DISPLAY))
- mdp5_data->mixer_swap = true;
-
rc = sysfs_create_group(&dev->kobj, &mdp_overlay_sysfs_group);
if (rc) {
pr_err("vsync sysfs group creation failed, ret=%d\n", rc);