disp: msm: add support for splitlink in sde drm

Change adds support for splitlink and disables
dsc merge or 3dmerge which is not needed for splitlink.

Change-Id: I77a794d3ea6f53988f493a7af792add81abb22f0
Signed-off-by: Vara Reddy <varar@codeaurora.org>
此提交包含在:
Vara Reddy
2021-02-10 12:23:47 -08:00
父節點 1b3ad8486d
當前提交 02a4648999
共有 5 個檔案被更改,包括 32 行新增10 行删除

查看文件

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
*/
#include <linux/kthread.h>
@@ -38,6 +38,7 @@ bool sde_encoder_is_dsc_merge(struct drm_encoder *drm_enc)
enum sde_rm_topology_name topology;
struct sde_encoder_virt *sde_enc;
struct drm_connector *drm_conn;
struct sde_encoder_phys *phys_enc;
if (!drm_enc)
return false;
@@ -50,6 +51,10 @@ bool sde_encoder_is_dsc_merge(struct drm_encoder *drm_enc)
if (!drm_conn)
return false;
phys_enc = sde_enc->phys_encs[0];
if (phys_enc->hw_intf->cfg.split_link_en)
return false;
topology = sde_connector_get_topology_name(drm_conn);
if (topology == SDE_RM_TOPOLOGY_DUALPIPE_DSCMERGE)
return true;
@@ -427,10 +432,12 @@ static int _dce_dsc_setup_helper(struct sde_encoder_virt *sde_enc,
num_dsc = def->num_comp_enc;
num_intf = def->num_intf;
mode_3d = (num_lm > num_dsc) ? BLEND_3D_H_ROW_INT : BLEND_3D_NONE;
merge_3d = (mode_3d != BLEND_3D_NONE) ? true : false;
merge_3d = ((mode_3d != BLEND_3D_NONE) && !(enc_master->hw_intf->cfg.split_link_en)) ?
true : false;
dsc->half_panel_pu = _dce_check_half_panel_update(num_lm, sde_enc);
dsc_merge = ((num_dsc > num_intf) && !dsc->half_panel_pu) ?
dsc_merge = ((num_dsc > num_intf) && !dsc->half_panel_pu &&
!(enc_master->hw_intf->cfg.split_link_en)) ?
true : false;
disable_merge_3d = (merge_3d && dsc->half_panel_pu) ?
false : true;