All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH v5 07/11] drm/i915: Make intel_dp->has_audio reflect hw state only
Date: Tue, 25 Apr 2017 13:55:31 +0200	[thread overview]
Message-ID: <1493121335-18603-8-git-send-email-maarten.lankhorst@linux.intel.com> (raw)
In-Reply-To: <1493121335-18603-1-git-send-email-maarten.lankhorst@linux.intel.com>

Always detect if audio is available during edid detection.
With less magic switching it's easier to convert the dp connector
properties to atomic.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/intel_dp.c | 38 ++++++++++++++++----------------------
 1 file changed, 16 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 8adeea606b08..06575b67f398 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1671,7 +1671,12 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 		pipe_config->has_pch_encoder = true;
 
 	pipe_config->has_drrs = false;
-	pipe_config->has_audio = intel_dp->has_audio && port != PORT_A;
+	if (port == PORT_A)
+		pipe_config->has_audio = false;
+	else if (intel_dp->force_audio == HDMI_AUDIO_AUTO)
+		pipe_config->has_audio = intel_dp->has_audio;
+	else
+		pipe_config->has_audio = intel_dp->force_audio == HDMI_AUDIO_ON;
 
 	if (is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
 		intel_fixed_panel_mode(intel_connector->panel.fixed_mode,
@@ -4598,10 +4603,7 @@ intel_dp_set_edid(struct intel_dp *intel_dp)
 	edid = intel_dp_get_edid(intel_dp);
 	intel_connector->detect_edid = edid;
 
-	if (intel_dp->force_audio != HDMI_AUDIO_AUTO)
-		intel_dp->has_audio = intel_dp->force_audio == HDMI_AUDIO_ON;
-	else
-		intel_dp->has_audio = drm_detect_monitor_audio(edid);
+	intel_dp->has_audio = drm_detect_monitor_audio(edid);
 }
 
 static void
@@ -4809,19 +4811,6 @@ static int intel_dp_get_modes(struct drm_connector *connector)
 	return 0;
 }
 
-static bool
-intel_dp_detect_audio(struct drm_connector *connector)
-{
-	bool has_audio = false;
-	struct edid *edid;
-
-	edid = to_intel_connector(connector)->detect_edid;
-	if (edid)
-		has_audio = drm_detect_monitor_audio(edid);
-
-	return has_audio;
-}
-
 static int
 intel_dp_set_property(struct drm_connector *connector,
 		      struct drm_property *property,
@@ -4839,22 +4828,27 @@ intel_dp_set_property(struct drm_connector *connector,
 
 	if (property == dev_priv->force_audio_property) {
 		int i = val;
-		bool has_audio;
+		bool has_audio, old_has_audio;
+		int old_force_audio = intel_dp->force_audio;
 
 		if (i == intel_dp->force_audio)
 			return 0;
 
+		if (old_force_audio == HDMI_AUDIO_AUTO)
+			old_has_audio = intel_dp->has_audio;
+		else
+			old_has_audio = old_force_audio;
+
 		intel_dp->force_audio = i;
 
 		if (i == HDMI_AUDIO_AUTO)
-			has_audio = intel_dp_detect_audio(connector);
+			has_audio = intel_dp->has_audio;
 		else
 			has_audio = (i == HDMI_AUDIO_ON);
 
-		if (has_audio == intel_dp->has_audio)
+		if (has_audio == old_has_audio)
 			return 0;
 
-		intel_dp->has_audio = has_audio;
 		goto done;
 	}
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2017-04-25 11:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-25 11:55 [PATCH v5 00/11] drm/i915: Convert connector properties to atomic Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 01/11] drm/atomic: Handle aspect ratio and scaling mode in core, v3 Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 02/11] drm/core: Allow attaching custom scaling mode properties Maarten Lankhorst
2017-04-25 15:14   ` Sean Paul
2017-04-25 16:03   ` Ville Syrjälä
2017-04-25 11:55 ` [PATCH v5 03/11] drm/i915: Use per-connector scaling mode property Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 04/11] drm/i915: Add plumbing for digital connector state, v3 Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 05/11] drm/i915: Convert DSI connector properties to atomic Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 06/11] drm/i915: Convert LVDS " Maarten Lankhorst
2017-04-25 11:55 ` Maarten Lankhorst [this message]
2017-04-25 11:55 ` [PATCH v5 08/11] drm/i915: Convert intel_dp properties to atomic, v2 Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 09/11] drm/i915: Convert intel_hdmi connector properties to atomic Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 10/11] drm/i915: Handle force_audio correctly in intel_sdvo Maarten Lankhorst
2017-04-25 11:55 ` [PATCH v5 11/11] drm/i915: Convert intel_sdvo connector properties to atomic Maarten Lankhorst
2017-04-25 12:15 ` ✗ Fi.CI.BAT: warning for drm/i915: Convert connector properties to atomic. (rev6) Patchwork
2017-04-26  6:23 ` Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1493121335-18603-8-git-send-email-maarten.lankhorst@linux.intel.com \
    --to=maarten.lankhorst@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.