diff options
| author | Krishna Chaitanya Devarakonda <kdevarak@codeaurora.org> | 2016-11-21 21:52:35 +0530 |
|---|---|---|
| committer | Krishna Chaitanya Devarakonda <kdevarak@codeaurora.org> | 2017-01-06 20:11:12 +0530 |
| commit | c388e8fc0677fa0d54ca7b55f43c4794291fe1e8 (patch) | |
| tree | 35c7bc57a13775f58bac3158b71e7f2deb31ad30 /drivers/video/fbdev/msm | |
| parent | 2116b44bd37e0245ac3442be3dd094397ce017c9 (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.c | 6 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_layer.c | 10 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_overlay.c | 4 |
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); |
