]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
drm/i915: Move GT powersaving init to i915_gem_init()
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Nov 2017 14:26:29 +0000 (14:26 +0000)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 06:42:20 +0000 (01:42 -0500)
BugLink: https://bugs.launchpad.net/bugs/1862840
GT powersaving is tightly coupled to the request infrastructure. To
avoid complications with the order of initialisation in the next patch
(where we want to send requests to hw during GEM init) move the
powersaving initialisation into the purview of i915_gem_init().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171110142634.10551-3-chris@chris-wilson.co.uk
CVE-2020-8832

(cherry picked from commit f58d13d5717938d4dfcc82a2eeba0a6d7644f6e5)
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Acked-by: Timo Aaltonen <timo.aaltonen@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_pm.c

index ea46393d495d8004bb2887d40f05acf9b553a23b..2148ffbdb0126291fdba7cf21fe9e9eedefccc27 100644 (file)
@@ -5020,6 +5020,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
        if (ret)
                goto out_unlock;
 
+       intel_init_gt_powersave(dev_priv);
+
        ret = i915_gem_init_hw(dev_priv);
        if (ret == -EIO) {
                mutex_lock(&dev_priv->drm.struct_mutex);
index 6e55ef0b497368114e40c310ed6da681a0880681..4ab77ac3cd7d70b2b316b542e2c3fc506391f5e1 100644 (file)
@@ -15287,8 +15287,6 @@ void intel_modeset_gem_init(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
 
-       intel_init_gt_powersave(dev_priv);
-
        intel_init_clock_gating(dev_priv);
 
        intel_setup_overlay(dev_priv);
index f74fb93236cab4793148f4b8d1f5b7d6d2cd2ce1..6f4a367626ac2abd27ded5f91def669d60eb11c9 100644 (file)
@@ -8040,7 +8040,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
                intel_runtime_pm_get(dev_priv);
        }
 
-       mutex_lock(&dev_priv->drm.struct_mutex);
        mutex_lock(&dev_priv->pcu_lock);
 
        i915_rc6_ctx_wa_init(dev_priv);
@@ -8084,7 +8083,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
        rps->boost_freq = rps->max_freq;
 
        mutex_unlock(&dev_priv->pcu_lock);
-       mutex_unlock(&dev_priv->drm.struct_mutex);
 
        intel_autoenable_gt_powersave(dev_priv);
 }