disp: msm: dp: ensure failsafe mode in connector mode list

The driver currently inserts a failsafe mode when EDID read fails
for SST. But for cases where the edid read succeeds but all the
modes are getting filtered out because of resource availability,
the driver does not add the failsafe mode. But the usermode
expects the failsafe mode to be always present in the mode list
as per DP specification. Also, the driver currently does not
add the failsafe mode, if the edid read fails on an MST monitor.

This change covers all these missing cases and makes sure the
failsafe mode is always in the connector's mode list if it is
in connected state.

Change-Id: I92eeaa00ad7b26a18b3689aa1c2ada4244aba3bc
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
This commit is contained in:
Rajkumar Subbiah
2023-06-05 17:51:17 -04:00
والد af85165fe6
کامیت ff99320123
5فایلهای تغییر یافته به همراه85 افزوده شده و 44 حذف شده

مشاهده پرونده

@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
*/
@@ -168,6 +169,19 @@ int dp_connector_update_pps(struct drm_connector *connector,
int dp_connector_install_properties(void *display,
struct drm_connector *conn);
/**
* init_failsafe_mode - add failsafe edid mode
* @dp_mode: Pointer to mode
*/
void init_failsafe_mode(struct dp_display_mode *dp_mode);
/**
* dp_connector_add_custom_mode - add edid mode to connector
* @conn: Pointer to connector
* @dp_mode: Pointer to mode
*/
int dp_connector_add_custom_mode(struct drm_connector *conn, struct dp_display_mode *dp_mode);
#else
static inline int dp_connector_config_hdr(struct drm_connector *connector,
void *display, struct sde_connector_state *c_state)