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