Commit e1039cde authored by Jani Nikula's avatar Jani Nikula

drm/i915/display: use drm_edid_is_digital()

Reduce the use of struct edid and drm_edid_raw().
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/dbc0269d34f3140aff410eefae8a2711c59299b3.1692884619.git.jani.nikula@intel.com
parent 7218779e
...@@ -657,21 +657,18 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector) ...@@ -657,21 +657,18 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
drm_edid = intel_crt_get_edid(connector, i2c); drm_edid = intel_crt_get_edid(connector, i2c);
if (drm_edid) { if (drm_edid) {
const struct edid *edid = drm_edid_raw(drm_edid);
bool is_digital = edid->input & DRM_EDID_INPUT_DIGITAL;
/* /*
* This may be a DVI-I connector with a shared DDC * This may be a DVI-I connector with a shared DDC
* link between analog and digital outputs, so we * link between analog and digital outputs, so we
* have to check the EDID input spec of the attached device. * have to check the EDID input spec of the attached device.
*/ */
if (!is_digital) { if (drm_edid_is_digital(drm_edid)) {
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(&dev_priv->drm,
"CRT detected via DDC:0x50 [EDID]\n"); "CRT not detected via DDC:0x50 [EDID reports a digital panel]\n");
ret = true;
} else { } else {
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(&dev_priv->drm,
"CRT not detected via DDC:0x50 [EDID reports a digital panel]\n"); "CRT detected via DDC:0x50 [EDID]\n");
ret = true;
} }
} else { } else {
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(&dev_priv->drm,
......
...@@ -2455,7 +2455,6 @@ intel_hdmi_set_edid(struct drm_connector *connector) ...@@ -2455,7 +2455,6 @@ intel_hdmi_set_edid(struct drm_connector *connector)
struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector)); struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
intel_wakeref_t wakeref; intel_wakeref_t wakeref;
const struct drm_edid *drm_edid; const struct drm_edid *drm_edid;
const struct edid *edid;
bool connected = false; bool connected = false;
struct i2c_adapter *i2c; struct i2c_adapter *i2c;
...@@ -2478,9 +2477,7 @@ intel_hdmi_set_edid(struct drm_connector *connector) ...@@ -2478,9 +2477,7 @@ intel_hdmi_set_edid(struct drm_connector *connector)
to_intel_connector(connector)->detect_edid = drm_edid; to_intel_connector(connector)->detect_edid = drm_edid;
/* FIXME: Get rid of drm_edid_raw() */ if (drm_edid_is_digital(drm_edid)) {
edid = drm_edid_raw(drm_edid);
if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) {
intel_hdmi_dp_dual_mode_detect(connector); intel_hdmi_dp_dual_mode_detect(connector);
connected = true; connected = true;
...@@ -2488,7 +2485,9 @@ intel_hdmi_set_edid(struct drm_connector *connector) ...@@ -2488,7 +2485,9 @@ intel_hdmi_set_edid(struct drm_connector *connector)
intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS, wakeref); intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS, wakeref);
cec_notifier_set_phys_addr_from_edid(intel_hdmi->cec_notifier, edid); /* FIXME: Get rid of drm_edid_raw() */
cec_notifier_set_phys_addr_from_edid(intel_hdmi->cec_notifier,
drm_edid_raw(drm_edid));
return connected; return connected;
} }
......
...@@ -2081,10 +2081,8 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector) ...@@ -2081,10 +2081,8 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
status = connector_status_unknown; status = connector_status_unknown;
if (drm_edid) { if (drm_edid) {
const struct edid *edid = drm_edid_raw(drm_edid);
/* DDC bus is shared, match EDID to connector type */ /* DDC bus is shared, match EDID to connector type */
if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) if (drm_edid_is_digital(drm_edid))
status = connector_status_connected; status = connector_status_connected;
else else
status = connector_status_disconnected; status = connector_status_disconnected;
...@@ -2098,8 +2096,7 @@ static bool ...@@ -2098,8 +2096,7 @@ static bool
intel_sdvo_connector_matches_edid(struct intel_sdvo_connector *sdvo, intel_sdvo_connector_matches_edid(struct intel_sdvo_connector *sdvo,
const struct drm_edid *drm_edid) const struct drm_edid *drm_edid)
{ {
const struct edid *edid = drm_edid_raw(drm_edid); bool monitor_is_digital = drm_edid_is_digital(drm_edid);
bool monitor_is_digital = !!(edid->input & DRM_EDID_INPUT_DIGITAL);
bool connector_is_digital = !!IS_DIGITAL(sdvo); bool connector_is_digital = !!IS_DIGITAL(sdvo);
DRM_DEBUG_KMS("connector_is_digital? %d, monitor_is_digital? %d\n", DRM_DEBUG_KMS("connector_is_digital? %d, monitor_is_digital? %d\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment