drm/i915: convert INTEL_DISPLAY_ENABLED() into a function
authorJani Nikula <jani.nikula@intel.com>
Tue, 3 Oct 2023 12:42:07 +0000 (15:42 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 4 Oct 2023 09:40:39 +0000 (12:40 +0300)
There's no need for this to be a macro. Add some documentation too.

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/480b9b697b2ffa0c8677115bd443ba633801c6c1.1696336887.git.jani.nikula@intel.com
12 files changed:
drivers/gpu/drm/i915/display/intel_crt.c
drivers/gpu/drm/i915/display/intel_display_device.c
drivers/gpu/drm/i915/display/intel_display_device.h
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_dp_mst.c
drivers/gpu/drm/i915/display/intel_dvo.c
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/i915/display/intel_hotplug.c
drivers/gpu/drm/i915/display/intel_panel.c
drivers/gpu/drm/i915/display/intel_sdvo.c
drivers/gpu/drm/i915/display/intel_tv.c
drivers/gpu/drm/i915/i915_drv.h

index d4bad0ddff41ee2046c6b62a0b2e9eedb06c6f53..913e5d230a4df9ae519cb626e2e515969d49cca3 100644 (file)
@@ -838,7 +838,7 @@ intel_crt_detect(struct drm_connector *connector,
                    connector->base.id, connector->name,
                    force);
 
-       if (!INTEL_DISPLAY_ENABLED(dev_priv))
+       if (!intel_display_device_enabled(dev_priv))
                return connector_status_disconnected;
 
        if (dev_priv->params.load_detect_test) {
index ce55b968e658b83c92e7ac878f2dd51d83e64cd3..dea64c99721ec0adb47e0ab61c31a6efbf9e3321 100644 (file)
@@ -1091,3 +1091,20 @@ void intel_display_device_info_print(const struct intel_display_device_info *inf
        drm_printf(p, "has_dmc: %s\n", str_yes_no(runtime->has_dmc));
        drm_printf(p, "has_dsc: %s\n", str_yes_no(runtime->has_dsc));
 }
+
+/*
+ * Assuming the device has display hardware, should it be enabled?
+ *
+ * It's an error to call this function if the device does not have display
+ * hardware.
+ *
+ * Disabling display means taking over the display hardware, putting it to
+ * sleep, and preventing connectors from being connected via any means.
+ */
+bool intel_display_device_enabled(struct drm_i915_private *i915)
+{
+       /* Only valid when HAS_DISPLAY() is true */
+       drm_WARN_ON(&i915->drm, !HAS_DISPLAY(i915));
+
+       return !i915->params.disable_display && !intel_opregion_headless_sku(i915);
+}
index 44733c9d5812ea00db940ce0930980c19e110cdb..8977bac8cb7fa930e2aa9e37e222f3d48a5a77d9 100644 (file)
@@ -150,6 +150,7 @@ struct intel_display_device_info {
        } color;
 };
 
+bool intel_display_device_enabled(struct drm_i915_private *i915);
 void intel_display_device_probe(struct drm_i915_private *i915);
 void intel_display_device_info_runtime_init(struct drm_i915_private *i915);
 
index 11420595c4f91a1f0de03e30123dff7d8974907b..f0f43aeabd21a6a7ca3a2fde7ed7c9e9203e205b 100644 (file)
@@ -5358,7 +5358,7 @@ intel_dp_detect(struct drm_connector *connector,
        drm_WARN_ON(&dev_priv->drm,
                    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
 
-       if (!INTEL_DISPLAY_ENABLED(dev_priv))
+       if (!intel_display_device_enabled(dev_priv))
                return connector_status_disconnected;
 
        /* Can't disconnect eDP */
index 59a4a36264cf8a56dfc2e581292adb644842396a..c27f82872c555ce707c092e2802ae6cb3ac4fe28 100644 (file)
@@ -1056,7 +1056,7 @@ intel_dp_mst_detect(struct drm_connector *connector,
        struct intel_connector *intel_connector = to_intel_connector(connector);
        struct intel_dp *intel_dp = intel_connector->mst_port;
 
-       if (!INTEL_DISPLAY_ENABLED(i915))
+       if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
        if (drm_connector_is_unregistered(connector))
index d9f427856fb82e53be582d1c3ed43cf366cd671e..55d6743374bdd64da887e8d58630abbffcea8ada 100644 (file)
@@ -319,7 +319,7 @@ intel_dvo_detect(struct drm_connector *_connector, bool force)
        drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s]\n",
                    connector->base.base.id, connector->base.name);
 
-       if (!INTEL_DISPLAY_ENABLED(i915))
+       if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
        return intel_dvo->dev.dev_ops->detect(&intel_dvo->dev);
index af4102e91769c36972161d9ea10b9b254f774548..ac315f8e782017e04540e9e46e372066217f5e38 100644 (file)
@@ -2496,7 +2496,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
        drm_dbg_kms(&dev_priv->drm, "[CONNECTOR:%d:%s]\n",
                    connector->base.id, connector->name);
 
-       if (!INTEL_DISPLAY_ENABLED(dev_priv))
+       if (!intel_display_device_enabled(dev_priv))
                return connector_status_disconnected;
 
        wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
index e8562f6f8bb44512460bd40a13278bc2145cb3f1..0c0700c6ec66d5448c4ee3489285f75f1026ca69 100644 (file)
@@ -763,7 +763,7 @@ static void i915_hpd_poll_init_work(struct work_struct *work)
 void intel_hpd_poll_enable(struct drm_i915_private *dev_priv)
 {
        if (!HAS_DISPLAY(dev_priv) ||
-           !INTEL_DISPLAY_ENABLED(dev_priv))
+           !intel_display_device_enabled(dev_priv))
                return;
 
        WRITE_ONCE(dev_priv->display.hotplug.poll_enabled, true);
index 086cb8dbe22c81917d4c1eb38d8c670a8d4c2a4a..483beedac5b830c5ca4abdfd197ceed806360cff 100644 (file)
@@ -680,7 +680,7 @@ intel_panel_detect(struct drm_connector *connector, bool force)
 {
        struct drm_i915_private *i915 = to_i915(connector->dev);
 
-       if (!INTEL_DISPLAY_ENABLED(i915))
+       if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
        return connector_status_connected;
index 950ba0431f5f023a7917b5fd1b31bf00c70c333c..35137e9785914ce765ee18f08b2330df04e4ebb0 100644 (file)
@@ -2121,7 +2121,7 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
        DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
                      connector->base.id, connector->name);
 
-       if (!INTEL_DISPLAY_ENABLED(i915))
+       if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
        if (!intel_sdvo_set_target_output(intel_sdvo,
index 36b479b46b6004992bad22c3f3423e506f73424d..31a79fdfc8128485141b39accb07804f669fc7b6 100644 (file)
@@ -1720,7 +1720,7 @@ intel_tv_detect(struct drm_connector *connector,
        drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] force=%d\n",
                    connector->base.id, connector->name, force);
 
-       if (!INTEL_DISPLAY_ENABLED(i915))
+       if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
        if (force) {
index cc229f08dfdb9b4cd1f23c8a042eb96fd49f4f05..8f1594d43ad684442a363403c3ad71f30dcbdb5e 100644 (file)
@@ -821,12 +821,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 #define NUM_L3_SLICES(i915) (IS_HASWELL_GT3(i915) ? \
                                 2 : HAS_L3_DPF(i915))
 
-/* Only valid when HAS_DISPLAY() is true */
-#define INTEL_DISPLAY_ENABLED(i915) \
-       (drm_WARN_ON(&(i915)->drm, !HAS_DISPLAY(i915)),         \
-        !(i915)->params.disable_display &&                             \
-        !intel_opregion_headless_sku(i915))
-
 #define HAS_GUC_DEPRIVILEGE(i915) \
        (INTEL_INFO(i915)->has_guc_deprivilege)