On Tue, 20 Dec 2022, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > On Fri, Dec 16, 2022 at 06:00:20PM +0200, Jani Nikula wrote: >> By moving update_display_info() out of _drm_edid_connector_update() we >> make the function purely about adding modes. > > I don't think that's quite true. The 4:2:0 stuff still updates > various display_info things from the mode parsing functions. Right. I meant the top level. Will amend the commit message. BR, Jani. > >> Rename accordingly. >> >> Cc: Imre Deak <imre.deak@xxxxxxxxx> >> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >> --- >> drivers/gpu/drm/drm_edid.c | 25 ++++++++++++------------- >> 1 file changed, 12 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c >> index 15f69c362fc3..4ebfd7212bce 100644 >> --- a/drivers/gpu/drm/drm_edid.c >> +++ b/drivers/gpu/drm/drm_edid.c >> @@ -6575,19 +6575,12 @@ static int add_displayid_detailed_modes(struct drm_connector *connector, >> return num_modes; >> } >> >> -static int _drm_edid_connector_update(struct drm_connector *connector, >> - const struct drm_edid *drm_edid) >> +static int _drm_edid_connector_add_modes(struct drm_connector *connector, >> + const struct drm_edid *drm_edid) >> { >> const struct drm_display_info *info = &connector->display_info; >> int num_modes = 0; >> >> - /* >> - * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks. >> - * To avoid multiple parsing of same block, lets parse that map >> - * from sink info, before parsing CEA modes. >> - */ >> - update_display_info(connector, drm_edid); >> - >> if (!drm_edid) >> return 0; >> >> @@ -6692,7 +6685,9 @@ int drm_edid_connector_update(struct drm_connector *connector, >> { >> int count; >> >> - count = _drm_edid_connector_update(connector, drm_edid); >> + update_display_info(connector, drm_edid); >> + >> + count = _drm_edid_connector_add_modes(connector, drm_edid); >> >> _drm_update_tile_info(connector, drm_edid); >> >> @@ -6762,7 +6757,8 @@ EXPORT_SYMBOL(drm_connector_update_edid_property); >> */ >> int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) >> { >> - struct drm_edid drm_edid; >> + struct drm_edid _drm_edid; >> + const struct drm_edid *drm_edid; >> >> if (edid && !drm_edid_is_valid(edid)) { >> drm_warn(connector->dev, "[CONNECTOR:%d:%s] EDID invalid.\n", >> @@ -6770,8 +6766,11 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) >> edid = NULL; >> } >> >> - return _drm_edid_connector_update(connector, >> - drm_edid_legacy_init(&drm_edid, edid)); >> + drm_edid = drm_edid_legacy_init(&_drm_edid, edid); >> + >> + update_display_info(connector, drm_edid); >> + >> + return _drm_edid_connector_add_modes(connector, drm_edid); >> } >> EXPORT_SYMBOL(drm_add_edid_modes); >> >> -- >> 2.34.1 -- Jani Nikula, Intel Open Source Graphics Center