On Wed, Sep 02, 2015 at 05:47:58PM +0200, Łukasz Daniluk wrote:
> +static void broadwell_sseu_device_status(struct drm_device *dev,

Why pass in dev if you only use dev_priv (and commit the sin of
repeatedly retrieving dev->dev_priv)?

> +                                      struct sseu_dev_status *stat)
> +{
> +     struct drm_i915_private *dev_priv = dev->dev_private;
> +     int s;
> +     u32 slice_info = I915_READ(GEN8_GT_SLICE_INFO);
> +
> +     stat->slice_total =
> +             hweight32(slice_info & GEN8_LSLICESTAT_MASK);
> +
> +     if (stat->slice_total)
> +     {
Missed.

> +             stat->subslice_per_slice = INTEL_INFO(dev)->subslice_per_slice;
> +             stat->eu_per_subslice = INTEL_INFO(dev)->eu_per_subslice;
> +             stat->subslice_total = stat->slice_total * 
> stat->subslice_per_slice;
> +             stat->eu_total = stat->eu_per_subslice * stat->subslice_total;
> +
> +             /* subtract fused off EU(s) from enabled slice(s) */
> +             for (s = 0; s < stat->slice_total; s++) {
> +                     u8 subslice_7eu = INTEL_INFO(dev)->subslice_7eu[s];
> +                     stat->eu_total -= hweight8(subslice_7eu);
> +             }

So why are we computing this twice? Is the debugfs to show the hw
registers or the sw tracking? Where do I see what we actually report? If
it is for the hw registers, report them. A perfect function here would
report the actual register values (possibly decoding them) and show what
the internal values are.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to