]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Avoid potential division-by-zero in computing CS timestamp period
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 16 Feb 2020 16:17:46 +0000 (16:17 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 16 Feb 2020 17:17:28 +0000 (17:17 +0000)
Since we use a HW readback or estimation of the CS timestamp frequency,
sometimes it may result in 0. Avoid the division-by-zero in computing
its reciprocal, the timestamp period.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200216161746.500258-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_device_info.c

index a97437fac88455caa4b918e8dc6e016dffe53f68..18d9de488593ee274e10e45f24433e75a6d18a4e 100644 (file)
@@ -1044,13 +1044,17 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
        }
 
        /* Initialize command stream timestamp frequency */
-       runtime->cs_timestamp_frequency_khz = read_timestamp_frequency(dev_priv);
-       runtime->cs_timestamp_period_ns =
-               div_u64(1e6, runtime->cs_timestamp_frequency_khz);
-       drm_dbg(&dev_priv->drm,
-               "CS timestamp wraparound in %lldms\n",
-               div_u64(mul_u32_u32(runtime->cs_timestamp_period_ns, S32_MAX),
-                       USEC_PER_SEC));
+       runtime->cs_timestamp_frequency_khz =
+               read_timestamp_frequency(dev_priv);
+       if (runtime->cs_timestamp_frequency_khz) {
+               runtime->cs_timestamp_period_ns =
+                       div_u64(1e6, runtime->cs_timestamp_frequency_khz);
+               drm_dbg(&dev_priv->drm,
+                       "CS timestamp wraparound in %lldms\n",
+                       div_u64(mul_u32_u32(runtime->cs_timestamp_period_ns,
+                                           S32_MAX),
+                               USEC_PER_SEC));
+       }
 }
 
 void intel_driver_caps_print(const struct intel_driver_caps *caps,