Skip to content

Commit dd9f377

Browse files
committed
drm/i915/sdvo: stop caching has_hdmi_audio in struct intel_sdvo
Use the information stored in display info. Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/1e02f2f7381dfcee6e4160a5fc17aea6ff04baf9.1685437500.git.jani.nikula@intel.com
1 parent f2f9c8c commit dd9f377

1 file changed

Lines changed: 7 additions & 13 deletions

File tree

drivers/gpu/drm/i915/display/intel_sdvo.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,6 @@ struct intel_sdvo {
117117

118118
enum port port;
119119

120-
bool has_hdmi_audio;
121-
122120
/* DDC bus used by this SDVO encoder */
123121
u8 ddc_bus;
124122

@@ -1328,15 +1326,18 @@ static bool intel_sdvo_has_audio(struct intel_encoder *encoder,
13281326
const struct intel_crtc_state *crtc_state,
13291327
const struct drm_connector_state *conn_state)
13301328
{
1331-
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
1329+
struct drm_connector *connector = conn_state->connector;
1330+
struct intel_sdvo_connector *intel_sdvo_connector =
1331+
to_intel_sdvo_connector(connector);
13321332
const struct intel_digital_connector_state *intel_conn_state =
13331333
to_intel_digital_connector_state(conn_state);
13341334

13351335
if (!crtc_state->has_hdmi_sink)
13361336
return false;
13371337

13381338
if (intel_conn_state->force_audio == HDMI_AUDIO_AUTO)
1339-
return intel_sdvo->has_hdmi_audio;
1339+
return intel_sdvo_connector->is_hdmi &&
1340+
connector->display_info.has_audio;
13401341
else
13411342
return intel_conn_state->force_audio == HDMI_AUDIO_ON;
13421343
}
@@ -2057,8 +2058,6 @@ static enum drm_connector_status
20572058
intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
20582059
{
20592060
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
2060-
struct intel_sdvo_connector *intel_sdvo_connector =
2061-
to_intel_sdvo_connector(connector);
20622061
enum drm_connector_status status;
20632062
struct edid *edid;
20642063

@@ -2095,12 +2094,9 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
20952094
status = connector_status_unknown;
20962095
if (edid != NULL) {
20972096
/* DDC bus is shared, match EDID to connector type */
2098-
if (edid->input & DRM_EDID_INPUT_DIGITAL) {
2097+
if (edid->input & DRM_EDID_INPUT_DIGITAL)
20992098
status = connector_status_connected;
2100-
if (intel_sdvo_connector->is_hdmi) {
2101-
intel_sdvo->has_hdmi_audio = drm_detect_monitor_audio(edid);
2102-
}
2103-
} else
2099+
else
21042100
status = connector_status_disconnected;
21052101
kfree(edid);
21062102
}
@@ -2149,8 +2145,6 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
21492145

21502146
intel_sdvo->attached_output = response;
21512147

2152-
intel_sdvo->has_hdmi_audio = false;
2153-
21542148
if ((intel_sdvo_connector->output_flag & response) == 0)
21552149
ret = connector_status_disconnected;
21562150
else if (IS_TMDS(intel_sdvo_connector))

0 commit comments

Comments
 (0)