drm/i915: don't try to load GuC fw on pre-gen9
authorJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 10 Sep 2015 21:55:00 +0000 (14:55 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 14 Sep 2015 09:26:12 +0000 (11:26 +0200)
This avoids some bad register writes and generally feels more correct
than unconditionally trying to redirect interrupts and such.

References: https://bugs.freedesktop.org/show_bug.cgi?id=91777
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c

index 760cfba22e7106ce4ded87393625e051854af21d..acb1f23c4dbff545089d067bd9035e46af4b895e 100644 (file)
@@ -4687,19 +4687,22 @@ i915_gem_init_hw(struct drm_device *dev)
        }
 
        /* We can't enable contexts until all firmware is loaded */
-       ret = intel_guc_ucode_load(dev);
-       if (ret) {
-               /*
-                * If we got an error and GuC submission is enabled, map
-                * the error to -EIO so the GPU will be declared wedged.
-                * OTOH, if we didn't intend to use the GuC anyway, just
-                * discard the error and carry on.
-                */
-               DRM_ERROR("Failed to initialize GuC, error %d%s\n", ret,
-                       i915.enable_guc_submission ? "" : " (ignored)");
-               ret = i915.enable_guc_submission ? -EIO : 0;
-               if (ret)
-                       goto out;
+       if (HAS_GUC_UCODE(dev)) {
+               ret = intel_guc_ucode_load(dev);
+               if (ret) {
+                       /*
+                        * If we got an error and GuC submission is enabled, map
+                        * the error to -EIO so the GPU will be declared wedged.
+                        * OTOH, if we didn't intend to use the GuC anyway, just
+                        * discard the error and carry on.
+                        */
+                       DRM_ERROR("Failed to initialize GuC, error %d%s\n", ret,
+                                 i915.enable_guc_submission ? "" :
+                                 " (ignored)");
+                       ret = i915.enable_guc_submission ? -EIO : 0;
+                       if (ret)
+                               goto out;
+               }
        }
 
        /* Now it is safe to go back round and do everything else: */