Commit c945b8c1 authored by Jani Nikula's avatar Jani Nikula

drm/edid: build ELD in drm_add_edid_modes()

Call drm_edid_to_eld() from drm_add_edid_modes() to fill in the ELD
automatically. There's no harm in doing this for connectors that do not
support audio.
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Acked-by: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/551b2e1cf19be04c510e7865d7539cfc2f54ea89.1509545641.git.jani.nikula@intel.com
parent 42750d39
...@@ -4612,8 +4612,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector, ...@@ -4612,8 +4612,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
* @edid: EDID data * @edid: EDID data
* *
* Add the specified modes to the connector's mode list. Also fills out the * Add the specified modes to the connector's mode list. Also fills out the
* &drm_display_info structure in @connector with any information which can be * &drm_display_info structure and ELD in @connector with any information which
* derived from the edid. * can be derived from the edid.
* *
* Return: The number of modes added or 0 if we couldn't find any. * Return: The number of modes added or 0 if we couldn't find any.
*/ */
...@@ -4623,9 +4623,11 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) ...@@ -4623,9 +4623,11 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
u32 quirks; u32 quirks;
if (edid == NULL) { if (edid == NULL) {
clear_eld(connector);
return 0; return 0;
} }
if (!drm_edid_is_valid(edid)) { if (!drm_edid_is_valid(edid)) {
clear_eld(connector);
dev_warn(connector->dev->dev, "%s: EDID invalid.\n", dev_warn(connector->dev->dev, "%s: EDID invalid.\n",
connector->name); connector->name);
return 0; return 0;
...@@ -4633,6 +4635,8 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) ...@@ -4633,6 +4635,8 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
quirks = edid_get_quirks(edid); quirks = edid_get_quirks(edid);
drm_edid_to_eld(connector, edid);
/* /*
* CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks. * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
* To avoid multiple parsing of same block, lets parse that map * To avoid multiple parsing of same block, lets parse that map
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment