]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915: Increase FLR timeout from 3s to 9s
authorAndi Shyti <andi.shyti@linux.intel.com>
Thu, 23 May 2024 23:58:53 +0000 (01:58 +0200)
committerAndi Shyti <andi.shyti@linux.intel.com>
Thu, 6 Jun 2024 00:20:35 +0000 (02:20 +0200)
Following the guidelines it takes 3 seconds to perform an FLR
reset. Let's give it a bit more slack because this time can
change depending on the platform and on the firmware

Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240523235853.171796-1-andi.shyti@linux.intel.com
drivers/gpu/drm/i915/intel_uncore.c

index 729409a4bada857baaa29abb028373f8e5e1e88c..2eba289d88ad116f4e8ae292e3e5672c240caaf5 100644 (file)
@@ -2614,11 +2614,18 @@ void intel_uncore_prune_engine_fw_domains(struct intel_uncore *uncore,
 static void driver_initiated_flr(struct intel_uncore *uncore)
 {
        struct drm_i915_private *i915 = uncore->i915;
-       const unsigned int flr_timeout_ms = 3000; /* specs recommend a 3s wait */
+       unsigned int flr_timeout_ms;
        int ret;
 
        drm_dbg(&i915->drm, "Triggering Driver-FLR\n");
 
+       /*
+        * The specification recommends a 3 seconds FLR reset timeout. To be
+        * cautious, we will extend this to 9 seconds, three times the specified
+        * timeout.
+        */
+       flr_timeout_ms = 9000;
+
        /*
         * Make sure any pending FLR requests have cleared by waiting for the
         * FLR trigger bit to go to zero. Also clear GU_DEBUG's DRIVERFLR_STATUS