On Thu, Aug 24, 2023 at 04:46:02PM +0300, Jani Nikula wrote: > Checking edid->input & DRM_EDID_INPUT_DIGITAL is common enough to > deserve a helper that also lets us abstract the raw EDID a bit better. > > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_edid.c | 17 +++++++++++++++-- > include/drm/drm_edid.h | 1 + > 2 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 340da8257b51..1dbb15439468 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -3110,7 +3110,7 @@ drm_monitor_supports_rb(const struct drm_edid *drm_edid) > return ret; > } > > - return ((drm_edid->edid->input & DRM_EDID_INPUT_DIGITAL) != 0); > + return drm_edid_is_digital(drm_edid); > } > > static void > @@ -6519,7 +6519,7 @@ static void update_display_info(struct drm_connector *connector, > if (edid->revision < 3) > goto out; > > - if (!(edid->input & DRM_EDID_INPUT_DIGITAL)) > + if (!drm_edid_is_digital(drm_edid)) > goto out; > > info->color_formats |= DRM_COLOR_FORMAT_RGB444; > @@ -7335,3 +7335,16 @@ static void _drm_update_tile_info(struct drm_connector *connector, > connector->tile_group = NULL; > } > } > + > +/** > + * drm_edid_is_digital - is digital? > + * @drm_edid: The EDID > + * > + * Return true if input is digital. > + */ > +bool drm_edid_is_digital(const struct drm_edid *drm_edid) > +{ > + return drm_edid && drm_edid->edid && > + drm_edid->edid->input & DRM_EDID_INPUT_DIGITAL; > +} > +EXPORT_SYMBOL(drm_edid_is_digital); > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h > index 48e93f909ef6..882d2638708e 100644 > --- a/include/drm/drm_edid.h > +++ b/include/drm/drm_edid.h > @@ -612,6 +612,7 @@ const struct drm_edid *drm_edid_read_switcheroo(struct drm_connector *connector, > int drm_edid_connector_update(struct drm_connector *connector, > const struct drm_edid *edid); > int drm_edid_connector_add_modes(struct drm_connector *connector); > +bool drm_edid_is_digital(const struct drm_edid *drm_edid); > > const u8 *drm_find_edid_extension(const struct drm_edid *drm_edid, > int ext_id, int *ext_index); > -- > 2.39.2 -- Ville Syrjälä Intel