drm/i915/edp: always add fixed mode to probed modes in ->get_modes()
Unconditionally add fixed mode to probed modes even if EDID is present and has modes. Prepare for cases where the fixed mode is not present in EDID (such as eDP MSO). Cc: Nischal Varide <nischal.varide@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/6979f123f3e4ed948333f1b181202bbced3c3e85.1613054234.git.jani.nikula@intel.com
This commit is contained in:
parent
8733932a72
commit
f886261735
@ -5547,19 +5547,18 @@ static int intel_dp_get_modes(struct drm_connector *connector)
|
||||
{
|
||||
struct intel_connector *intel_connector = to_intel_connector(connector);
|
||||
struct edid *edid;
|
||||
int num_modes = 0;
|
||||
|
||||
edid = intel_connector->detect_edid;
|
||||
if (edid) {
|
||||
int ret = intel_connector_update_modes(connector, edid);
|
||||
num_modes = intel_connector_update_modes(connector, edid);
|
||||
|
||||
if (intel_vrr_is_capable(connector))
|
||||
drm_connector_set_vrr_capable_property(connector,
|
||||
true);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* if eDP has no EDID, fall back to fixed mode */
|
||||
/* Also add fixed mode, which may or may not be present in EDID */
|
||||
if (intel_dp_is_edp(intel_attached_dp(intel_connector)) &&
|
||||
intel_connector->panel.fixed_mode) {
|
||||
struct drm_display_mode *mode;
|
||||
@ -5568,10 +5567,13 @@ static int intel_dp_get_modes(struct drm_connector *connector)
|
||||
intel_connector->panel.fixed_mode);
|
||||
if (mode) {
|
||||
drm_mode_probed_add(connector, mode);
|
||||
return 1;
|
||||
num_modes++;
|
||||
}
|
||||
}
|
||||
|
||||
if (num_modes)
|
||||
return num_modes;
|
||||
|
||||
if (!edid) {
|
||||
struct intel_dp *intel_dp = intel_attached_dp(intel_connector);
|
||||
struct drm_display_mode *mode;
|
||||
@ -5581,11 +5583,11 @@ static int intel_dp_get_modes(struct drm_connector *connector)
|
||||
intel_dp->downstream_ports);
|
||||
if (mode) {
|
||||
drm_mode_probed_add(connector, mode);
|
||||
return 1;
|
||||
num_modes++;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return num_modes;
|
||||
}
|
||||
|
||||
static int
|
||||
|
Loading…
Reference in New Issue
Block a user