Re: [PATCH 08/13] drm/i915/sdvo: stop caching has_hdmi_audio in struct intel_sdvo

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

 



LGTM.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx>

On 4/21/2023 5:17 PM, Jani Nikula wrote:
Use the information stored in display info.

Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
---
  drivers/gpu/drm/i915/display/intel_sdvo.c | 20 +++++++-------------
  1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 0bbfab95ca37..0f0c1733cd0d 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -117,8 +117,6 @@ struct intel_sdvo {
enum port port; - bool has_hdmi_audio;
-
  	/* DDC bus used by this SDVO encoder */
  	u8 ddc_bus;
@@ -1328,7 +1326,9 @@ static bool intel_sdvo_has_audio(struct intel_encoder *encoder,
  				 const struct intel_crtc_state *crtc_state,
  				 const struct drm_connector_state *conn_state)
  {
-	struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
+	struct drm_connector *connector = conn_state->connector;
+	struct intel_sdvo_connector *intel_sdvo_connector =
+		to_intel_sdvo_connector(connector);
  	const struct intel_digital_connector_state *intel_conn_state =
  		to_intel_digital_connector_state(conn_state);
@@ -1336,7 +1336,8 @@ static bool intel_sdvo_has_audio(struct intel_encoder *encoder,
  		return false;
if (intel_conn_state->force_audio == HDMI_AUDIO_AUTO)
-		return intel_sdvo->has_hdmi_audio;
+		return intel_sdvo_connector->is_hdmi &&
+			connector->display_info.has_audio;
  	else
  		return intel_conn_state->force_audio == HDMI_AUDIO_ON;
  }
@@ -2056,8 +2057,6 @@ static enum drm_connector_status
  intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
  {
  	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
-	struct intel_sdvo_connector *intel_sdvo_connector =
-		to_intel_sdvo_connector(connector);
  	enum drm_connector_status status;
  	struct edid *edid;
@@ -2094,12 +2093,9 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
  	status = connector_status_unknown;
  	if (edid != NULL) {
  		/* DDC bus is shared, match EDID to connector type */
-		if (edid->input & DRM_EDID_INPUT_DIGITAL) {
+		if (edid->input & DRM_EDID_INPUT_DIGITAL)
  			status = connector_status_connected;
-			if (intel_sdvo_connector->is_hdmi) {
-				intel_sdvo->has_hdmi_audio = drm_detect_monitor_audio(edid);
-			}
-		} else
+		else
  			status = connector_status_disconnected;
  		kfree(edid);
  	}
@@ -2148,8 +2144,6 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
intel_sdvo->attached_output = response; - intel_sdvo->has_hdmi_audio = false;
-
  	if ((intel_sdvo_connector->output_flag & response) == 0)
  		ret = connector_status_disconnected;
  	else if (IS_TMDS(intel_sdvo_connector))



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux