On Tue, Dec 20, 2022 at 02:52:01PM +0200, Jani Nikula wrote: > 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. So what's going to happen with the 4:2:0 stuff? Are we just clobbering it if/when someone calls the update_display_info() stuff w/o calling add_modes()? > > 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 -- Ville Syrjälä Intel