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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>
---
 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



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux