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>
This commit is contained in:
Krishna Chaitanya Devarakonda 2016-11-21 21:52:35 +05:30
parent 2116b44bd3
commit c388e8fc06
3 changed files with 4 additions and 16 deletions

View file

@ -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;
}

View file

@ -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);

View file

@ -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);