@@ -115,7 +115,6 @@ struct intel_sdvo {
115115
116116 enum port port ;
117117
118- bool has_hdmi_monitor ;
119118 bool has_hdmi_audio ;
120119
121120 /* DDC bus used by this SDVO encoder */
@@ -1278,10 +1277,13 @@ static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
12781277 pipe_config -> clock_set = true;
12791278}
12801279
1281- static bool intel_has_hdmi_sink (struct intel_sdvo * sdvo ,
1280+ static bool intel_has_hdmi_sink (struct intel_sdvo_connector * intel_sdvo_connector ,
12821281 const struct drm_connector_state * conn_state )
12831282{
1284- return sdvo -> has_hdmi_monitor &&
1283+ struct drm_connector * connector = conn_state -> connector ;
1284+
1285+ return intel_sdvo_connector -> is_hdmi &&
1286+ connector -> display_info .is_hdmi &&
12851287 READ_ONCE (to_intel_digital_connector_state (conn_state )-> force_audio ) != HDMI_AUDIO_OFF_DVI ;
12861288}
12871289
@@ -1360,7 +1362,7 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,
13601362 pipe_config -> pixel_multiplier =
13611363 intel_sdvo_get_pixel_multiplier (adjusted_mode );
13621364
1363- pipe_config -> has_hdmi_sink = intel_has_hdmi_sink (intel_sdvo , conn_state );
1365+ pipe_config -> has_hdmi_sink = intel_has_hdmi_sink (intel_sdvo_connector , conn_state );
13641366
13651367 if (pipe_config -> has_hdmi_sink ) {
13661368 if (intel_sdvo_state -> base .force_audio == HDMI_AUDIO_AUTO )
@@ -1875,7 +1877,7 @@ intel_sdvo_mode_valid(struct drm_connector *connector,
18751877 struct intel_sdvo_connector * intel_sdvo_connector =
18761878 to_intel_sdvo_connector (connector );
18771879 int max_dotclk = to_i915 (connector -> dev )-> max_dotclk_freq ;
1878- bool has_hdmi_sink = intel_has_hdmi_sink (intel_sdvo , connector -> state );
1880+ bool has_hdmi_sink = intel_has_hdmi_sink (intel_sdvo_connector , connector -> state );
18791881 int clock = mode -> clock ;
18801882
18811883 if (mode -> flags & DRM_MODE_FLAG_DBLSCAN )
@@ -2064,7 +2066,6 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
20642066 if (edid -> input & DRM_EDID_INPUT_DIGITAL ) {
20652067 status = connector_status_connected ;
20662068 if (intel_sdvo_connector -> is_hdmi ) {
2067- intel_sdvo -> has_hdmi_monitor = drm_detect_hdmi_monitor (edid );
20682069 intel_sdvo -> has_hdmi_audio = drm_detect_monitor_audio (edid );
20692070 }
20702071 } else
@@ -2116,7 +2117,6 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
21162117
21172118 intel_sdvo -> attached_output = response ;
21182119
2119- intel_sdvo -> has_hdmi_monitor = false;
21202120 intel_sdvo -> has_hdmi_audio = false;
21212121
21222122 if ((intel_sdvo_connector -> output_flag & response ) == 0 )
0 commit comments