1. 14 9月, 2018 6 次提交
  2. 13 9月, 2018 1 次提交
  3. 12 9月, 2018 17 次提交
  4. 11 9月, 2018 4 次提交
  5. 07 9月, 2018 1 次提交
  6. 06 9月, 2018 7 次提交
  7. 05 9月, 2018 2 次提交
  8. 04 9月, 2018 2 次提交
    • C
      drm/i915: Pull intel_uncore_arm_unclaimed_mmio_detection() under the spinlock · a167b1e1
      Chris Wilson 提交于
      Elsewhere we manipulate uncore.unclaimed_mmio_check and
      i915_param.mmio_debug under the irq lock (e.g. preserving the current
      value across a user forcewake grab), but do not protect the manipulation
      inside intel_uncore_arm_unclaimed_mmio_detection() from concurrent
      access, even from itself. This is an issue as we do call
      arm_unclaimed_mmio_detection from multiple threads without coordination.
      Suggested-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intelcom>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180904131207.17563-1-chris@chris-wilson.co.uk
      a167b1e1
    • T
      drm/i915/icl: Fix context RPCS programming · b212f0a4
      Tvrtko Ursulin 提交于
      There are two issues with the current RPCS programming for Icelake:
      
      Expansion of the slice count bitfield has been missed, as well as the
      required programming workaround for the subslice count bitfield size
      limitation.
      
      1)
      
      Bitfield width for configuring the active slice count has grown so we need
      to program the GEN8_R_PWR_CLK_STATE accordingly.
      
      Current code was always requesting eight times the number of slices (due
      writing to a bitfield starting three bits higher than it should). These
      requests were luckily a) capped by the hardware to the available number of
      slices, and b) we haven't yet exported the code to ask for reduced slice
      configurations.
      
      Due both of the above there was no impact from this incorrect programming
      but we should still fix it.
      
      2)
      
      Due subslice count bitfield being only three bits wide and furthermore
      capped to a maximum documented value of four, special programming
      workaround is needed to enable more than four subslices.
      
      With this programming driver has to consider the GT configuration as
      2x4x8, while the hardware internally translates this to 1x8x8.
      
      A limitation stemming from this is that either a subslice count between
      one and four can be selected, or a subslice count equaling the total
      number of subslices in all selected slices. In other words, odd subslice
      counts greater than four are impossible, as are odd subslice counts
      greater than a single slice subslice count.
      
      This also had no impact in the current code base due breakage from 1)
      always reqesting more than one slice.
      
      While fixing this we also add some asserts to flag up any future bitfield
      overflows.
      
      v2:
       * Use a local in all branches for clarity. (Lionel)
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Bspec: 12247
      Reported-by: tony.ye@intel.com
      Suggested-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: tony.ye@intel.com
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Reviewed-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180903113007.2643-1-tvrtko.ursulin@linux.intel.com
      b212f0a4