[PATCH 01/60] drm/edid: Add flag to drm_display_info to identify HDMI sinks

Daniel Vetter daniel at ffwll.ch
Wed Jul 10 15:41:39 UTC 2019


On Tue, Jul 09, 2019 at 03:20:58PM +0200, Andrzej Hajda wrote:
> On 07.07.2019 20:07, Laurent Pinchart wrote:
> > The drm_display_info structure contains many fields related to HDMI
> > sinks, but none that identifies if a sink compliant with CEA-861 (EDID)
> > shall be treated as an HDMI sink or a DVI sink. Add such a flag, and
> > populate it according to section 8.3.3 ("DVI/HDMI Device
> > Discrimination") of the HDMI v1.3 specification.
> >
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> 
> It looks like it can replace drm_detect_hdmi_monitor usage in most cases.

Yeah I think kerneldoc should at least between these too, i.e. from
info.is_hdmi to drm_detect_hdmi_monitor() and back.

Plus ideally a refactor task in todo.rst, this is ideal getting started
fodder I think. And I like if we standardize as much as possible on
drm_display_info.

With that: Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> 
> Reviewed-by: Andrzej Hajda <a.hajda at samsung.com>
> 
>  --
> Regards
> Andrzej
> 
> 
> 
> > ---
> >  drivers/gpu/drm/drm_edid.c  | 3 +++
> >  include/drm/drm_connector.h | 5 +++++
> >  2 files changed, 8 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> > index 82a4ceed3fcf..d2e7a5334c3f 100644
> > --- a/drivers/gpu/drm/drm_edid.c
> > +++ b/drivers/gpu/drm/drm_edid.c
> > @@ -4559,6 +4559,8 @@ drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db)
> >  	struct drm_display_info *info = &connector->display_info;
> >  	u8 len = cea_db_payload_len(db);
> >  
> > +	info->is_hdmi = true;
> > +
> >  	if (len >= 6)
> >  		info->dvi_dual = db[6] & 1;
> >  	if (len >= 7)
> > @@ -4627,6 +4629,7 @@ drm_reset_display_info(struct drm_connector *connector)
> >  	info->cea_rev = 0;
> >  	info->max_tmds_clock = 0;
> >  	info->dvi_dual = false;
> > +	info->is_hdmi = false;
> >  	info->has_hdmi_infoframe = false;
> >  	info->rgb_quant_range_selectable = false;
> >  	memset(&info->hdmi, 0, sizeof(info->hdmi));
> > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> > index ca745d9feaf5..e80ca0d149e5 100644
> > --- a/include/drm/drm_connector.h
> > +++ b/include/drm/drm_connector.h
> > @@ -426,6 +426,11 @@ struct drm_display_info {
> >  	 */
> >  	bool dvi_dual;
> >  
> > +	/**
> > +	 * @is_hdmi: True if the sink is an HDMI device.
> > +	 */
> > +	bool is_hdmi;
> > +
> >  	/**
> >  	 * @has_hdmi_infoframe: Does the sink support the HDMI infoframe?
> >  	 */
> 
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list