mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
drm/i915/display: use drm_edid_is_digital()
Reduce the use of struct edid and drm_edid_raw(). Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/dbc0269d34f3140aff410eefae8a2711c59299b3.1692884619.git.jani.nikula@intel.com
This commit is contained in:
parent
7218779efc
commit
e1039cde68
@ -657,21 +657,18 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
|
||||
drm_edid = intel_crt_get_edid(connector, i2c);
|
||||
|
||||
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
|
||||
* link between analog and digital outputs, so we
|
||||
* 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,
|
||||
"CRT not detected via DDC:0x50 [EDID reports a digital panel]\n");
|
||||
} else {
|
||||
drm_dbg_kms(&dev_priv->drm,
|
||||
"CRT detected via DDC:0x50 [EDID]\n");
|
||||
ret = true;
|
||||
} else {
|
||||
drm_dbg_kms(&dev_priv->drm,
|
||||
"CRT not detected via DDC:0x50 [EDID reports a digital panel]\n");
|
||||
}
|
||||
} else {
|
||||
drm_dbg_kms(&dev_priv->drm,
|
||||
|
@ -2455,7 +2455,6 @@ intel_hdmi_set_edid(struct drm_connector *connector)
|
||||
struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
|
||||
intel_wakeref_t wakeref;
|
||||
const struct drm_edid *drm_edid;
|
||||
const struct edid *edid;
|
||||
bool connected = false;
|
||||
struct i2c_adapter *i2c;
|
||||
|
||||
@ -2478,9 +2477,7 @@ intel_hdmi_set_edid(struct drm_connector *connector)
|
||||
|
||||
to_intel_connector(connector)->detect_edid = drm_edid;
|
||||
|
||||
/* FIXME: Get rid of drm_edid_raw() */
|
||||
edid = drm_edid_raw(drm_edid);
|
||||
if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) {
|
||||
if (drm_edid_is_digital(drm_edid)) {
|
||||
intel_hdmi_dp_dual_mode_detect(connector);
|
||||
|
||||
connected = true;
|
||||
@ -2488,7 +2485,9 @@ intel_hdmi_set_edid(struct drm_connector *connector)
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -2081,10 +2081,8 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
|
||||
|
||||
status = connector_status_unknown;
|
||||
if (drm_edid) {
|
||||
const struct edid *edid = drm_edid_raw(drm_edid);
|
||||
|
||||
/* 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;
|
||||
else
|
||||
status = connector_status_disconnected;
|
||||
@ -2098,8 +2096,7 @@ static bool
|
||||
intel_sdvo_connector_matches_edid(struct intel_sdvo_connector *sdvo,
|
||||
const struct drm_edid *drm_edid)
|
||||
{
|
||||
const struct edid *edid = drm_edid_raw(drm_edid);
|
||||
bool monitor_is_digital = !!(edid->input & DRM_EDID_INPUT_DIGITAL);
|
||||
bool monitor_is_digital = drm_edid_is_digital(drm_edid);
|
||||
bool connector_is_digital = !!IS_DIGITAL(sdvo);
|
||||
|
||||
DRM_DEBUG_KMS("connector_is_digital? %d, monitor_is_digital? %d\n",
|
||||
|
Loading…
Reference in New Issue
Block a user