disp: msm: add support for seamless dsc switch

This change adds logic to determine dsc switch based on
the connector property "CONNECTOR_PROP_DSC_MODE" and
performs seamless DSC switch if there is any change in
DSC configuration. The connector property is populated
in msm_sub_mode based on which suitable mode is selected.

Change-Id: Ifc4931f16dfb814781bc1d72b103e09103e6bfee
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
このコミットが含まれているのは:
Yashwanth
2021-04-26 13:37:48 +05:30
committed by Gerrit - the friendly Code Review server
コミット 7e03fb61fd
17個のファイルの変更156行の追加36行の削除

ファイルの表示

@@ -377,6 +377,7 @@ end:
int dp_connector_get_mode_info(struct drm_connector *connector,
const struct drm_display_mode *drm_mode,
struct msm_sub_mode *sub_mode,
struct msm_mode_info *mode_info,
void *display, const struct msm_resource_caps_info *avail_res)
{

ファイルの表示

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
*/
#ifndef _DP_DRM_H_
@@ -103,12 +103,14 @@ enum drm_mode_status dp_connector_mode_valid(struct drm_connector *connector,
* @connector: Pointer to drm connector structure
* @drm_mode: Display mode set for the display
* @mode_info: Out parameter. Information of the mode
* @sub_mode: Additional mode info to drm display mode
* @display: Pointer to private display structure
* @avail_res: Pointer with curr available resources
* Returns: zero on success
*/
int dp_connector_get_mode_info(struct drm_connector *connector,
const struct drm_display_mode *drm_mode,
struct msm_sub_mode *sub_mode,
struct msm_mode_info *mode_info,
void *display, const struct msm_resource_caps_info *avail_res);
@@ -216,6 +218,7 @@ static inline enum drm_mode_status dp_connector_mode_valid(
static inline int dp_connector_get_mode_info(struct drm_connector *connector,
const struct drm_display_mode *drm_mode,
struct msm_sub_mode *sub_mode,
struct msm_mode_info *mode_info,
void *display, const struct msm_resource_caps_info *avail_res)
{

ファイルの表示

@@ -1116,6 +1116,7 @@ int dp_mst_connector_get_info(struct drm_connector *connector,
int dp_mst_connector_get_mode_info(struct drm_connector *connector,
const struct drm_display_mode *drm_mode,
struct msm_sub_mode *sub_mode,
struct msm_mode_info *mode_info,
void *display,
const struct msm_resource_caps_info *avail_res)
@@ -1125,7 +1126,7 @@ int dp_mst_connector_get_mode_info(struct drm_connector *connector,
DP_MST_DEBUG("enter:\n");
SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
rc = dp_connector_get_mode_info(connector, drm_mode, mode_info,
rc = dp_connector_get_mode_info(connector, drm_mode, NULL, mode_info,
display, avail_res);
DP_MST_DEBUG("mst connector:%d get mode info. rc:%d\n",