[Intel-gfx] [PATCH 2/5] drm/i915: Add has_hdmi_monitor to intel_hdmi

Ville Syrjälä ville.syrjala at linux.intel.com
Mon Jan 14 16:25:01 CET 2013


On Mon, Jan 14, 2013 at 04:09:39PM +0100, Daniel Vetter wrote:
> On Mon, Jan 14, 2013 at 04:15:07PM +0200, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > intel_hdmi.has_hdmi_sink is tied into the force audio property, so it
> > doesn't seem like the correct way to detect HDMI monitors. Instead add
> > a new has_hdmi_monitor member which simply tells whether a HDMI monitor
> > was detected.
> > 
> > Not sure if this is the best way, or if we should just use has_hdmi_sink
> > for the CEA-861 automatic color range property... At least the infoframe
> > stuff already depends on has_hdmi_sink.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Imo it looks simpler if we just reuse the has_hdmi_sink bool. That already
> controls infoframes and similar stuff, so if users would force dvi mode
> this would automatically also disable all broadcast range magic (if that's
> in the default value). Users could still override the broadcast stuff
> explictly.

OK. I can do that.

> I guess it'd have been better if we have a a force-dvi master switch
> outside of the audio property to control all things hdmi. But alas
> ...

Yeah it feels a bit weird that some audio prop controls it all.

> -Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/intel_drv.h  |    1 +
> >  drivers/gpu/drm/i915/intel_hdmi.c |    6 ++++--
> >  2 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> > index 4df47be..aed7478 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -344,6 +344,7 @@ struct intel_hdmi {
> >  	int ddc_bus;
> >  	uint32_t color_range;
> >  	bool has_hdmi_sink;
> > +	bool has_hdmi_monitor;
> >  	bool has_audio;
> >  	enum hdmi_force_audio force_audio;
> >  	void (*write_infoframe)(struct drm_encoder *encoder,
> > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> > index f194d75..e663dec 100644
> > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > @@ -815,6 +815,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
> >  		 return status;
> >  
> >  	intel_hdmi->has_hdmi_sink = false;
> > +	intel_hdmi->has_hdmi_monitor = false;
> >  	intel_hdmi->has_audio = false;
> >  	edid = drm_get_edid(connector,
> >  			    intel_gmbus_get_adapter(dev_priv,
> > @@ -823,9 +824,10 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
> >  	if (edid) {
> >  		if (edid->input & DRM_EDID_INPUT_DIGITAL) {
> >  			status = connector_status_connected;
> > +			intel_hdmi->has_hdmi_monitor =
> > +				drm_detect_hdmi_monitor(edid);
> >  			if (intel_hdmi->force_audio != HDMI_AUDIO_OFF_DVI)
> > -				intel_hdmi->has_hdmi_sink =
> > -						drm_detect_hdmi_monitor(edid);
> > +				intel_hdmi->has_hdmi_sink = intel_hdmi->has_hdmi_monitor;
> >  			intel_hdmi->has_audio = drm_detect_monitor_audio(edid);
> >  		}
> >  		kfree(edid);
> > -- 
> > 1.7.8.6
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list