drm/i915/display: use drm_edid_is_digital()
authorJani Nikula <jani.nikula@intel.com>
Thu, 24 Aug 2023 13:46:03 +0000 (16:46 +0300)
committerJani Nikula <jani.nikula@intel.com>
Fri, 1 Sep 2023 08:47:53 +0000 (11:47 +0300)
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
drivers/gpu/drm/i915/display/intel_crt.c
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/i915/display/intel_sdvo.c

index f66340b4caf0f85e5bb3c3e6963b5d8017736ca1..310670bb6c25e4ab5bdc5c205a7d48f32caca448 100644 (file)
@@ -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 detected via DDC:0x50 [EDID]\n");
-                       ret = true;
+                                   "CRT not detected via DDC:0x50 [EDID reports a digital panel]\n");
                } else {
                        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 {
                drm_dbg_kms(&dev_priv->drm,
index d34eba5b132c81b5013fcd5ad190bcca6ebbfc45..293400902e12d38f68948896aabb443181faa244 100644 (file)
@@ -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;
 }
index b988e05274c188e71ba2e5517a535598fd84e6e8..135a2527fd1b488c8641e10759db86c633230913 100644 (file)
@@ -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",