]> www.infradead.org Git - nvme.git/commitdiff
drm/i915/opregion: abstract ASLE presence check
authorJani Nikula <jani.nikula@intel.com>
Thu, 11 Jan 2024 17:21:17 +0000 (19:21 +0200)
committerJani Nikula <jani.nikula@intel.com>
Tue, 16 Jan 2024 09:19:53 +0000 (11:19 +0200)
Add a function to check the opregion ASLE presence instead of accessing
the opregion structures directly.

Reorder the checks in i915_has_asle() to avoid the function call if
possible.

Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1829415d3e7b29e78c46b20bca8175ef373bcd92.1704992868.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display_irq.c
drivers/gpu/drm/i915/display/intel_opregion.c
drivers/gpu/drm/i915/display/intel_opregion.h

index 99843883cef7c43d39ef6c7217df277c31be36c2..f846c5b108b50518c38e6bac506528222b45e5e1 100644 (file)
@@ -266,12 +266,12 @@ void i915_disable_pipestat(struct drm_i915_private *dev_priv,
        intel_uncore_posting_read(&dev_priv->uncore, reg);
 }
 
-static bool i915_has_asle(struct drm_i915_private *dev_priv)
+static bool i915_has_asle(struct drm_i915_private *i915)
 {
-       if (!dev_priv->display.opregion.asle)
+       if (!IS_PINEVIEW(i915) && !IS_MOBILE(i915))
                return false;
 
-       return IS_PINEVIEW(dev_priv) || IS_MOBILE(dev_priv);
+       return intel_opregion_asle_present(i915);
 }
 
 /**
index 8b9e820971cb82520850297d7acd0acde9a292fa..26aacb01f9eca932e0a6ec0f5eb66d5c3a9dc735 100644 (file)
@@ -632,6 +632,11 @@ static void asle_work(struct work_struct *work)
        asle->aslc = aslc_stat;
 }
 
+bool intel_opregion_asle_present(struct drm_i915_private *i915)
+{
+       return i915->display.opregion.asle;
+}
+
 void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
 {
        if (dev_priv->display.opregion.asle)
index 9efadfb7258452ba4c28fdbb86db7a958bf85c74..d084b30e87034f85162779a8f3a7500d5dbd1711 100644 (file)
@@ -69,6 +69,7 @@ void intel_opregion_resume(struct drm_i915_private *dev_priv);
 void intel_opregion_suspend(struct drm_i915_private *dev_priv,
                            pci_power_t state);
 
+bool intel_opregion_asle_present(struct drm_i915_private *i915);
 void intel_opregion_asle_intr(struct drm_i915_private *dev_priv);
 int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
                                  bool enable);
@@ -111,6 +112,11 @@ static inline void intel_opregion_suspend(struct drm_i915_private *dev_priv,
 {
 }
 
+static inline bool intel_opregion_asle_present(struct drm_i915_private *i915)
+{
+       return false;
+}
+
 static inline void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
 {
 }