drm/i915: Do not start connector polling on headless sku
authorJouni Högander <jouni.hogander@intel.com>
Fri, 10 Jun 2022 08:54:29 +0000 (11:54 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 16 Jun 2022 10:15:41 +0000 (13:15 +0300)
Connector polling is waking up the polled device. Polling
is unnecessary if our device is known to not have display.

Fix this and save some power by disabling starting connector
polling when we are having headless sku. Use information from
opregion.

v2: Move headless sku check into INTEL_DISPLAY_ENABLED macro

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220610085429.52935-4-jouni.hogander@intel.com
drivers/gpu/drm/i915/i915_drv.h

index 4ac8d636ecc994f17204af196bd408e981dc8cb2..2f6910050aa2c7cf1ce3eb2b6f62a52a6ee9024a 100644 (file)
@@ -1302,7 +1302,9 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 
 /* Only valid when HAS_DISPLAY() is true */
 #define INTEL_DISPLAY_ENABLED(dev_priv) \
-       (drm_WARN_ON(&(dev_priv)->drm, !HAS_DISPLAY(dev_priv)), !(dev_priv)->params.disable_display)
+       (drm_WARN_ON(&(dev_priv)->drm, !HAS_DISPLAY(dev_priv)),         \
+        !(dev_priv)->params.disable_display &&                         \
+        !intel_opregion_headless_sku(dev_priv))
 
 #define HAS_GUC_DEPRIVILEGE(dev_priv) \
        (INTEL_INFO(dev_priv)->has_guc_deprivilege)