1. 18 6月, 2021 1 次提交
    • M
      drm/i915: Add GT support for multiple types of multicast steering · 0957e931
      Matt Roper 提交于
      Although most of our multicast registers are replicated per-subslice, we
      also have a small number of multicast registers that are replicated
      per-l3 bank instead.  For both types of multicast registers we need to
      make sure we steer reads of these registers to a valid instance.
      Ideally we'd like to find a specific instance ID that would steer reads
      of either type of multicast register to a valid instance (i.e., not
      fused off and not powered down), but sometimes the combination of
      part-specific fusing and the additional restrictions imposed by Render
      Power Gating make it impossible to find any overlap between the set of
      valid subslices and valid l3 banks.  This problem will become even more
      noticeable on our upcoming platforms since they will be adding
      additional types of multicast registers with new types of replication
      and rules for finding valid instances for reads.
      
      To handle this we'll continue to pick a suitable subslice instance at
      driver startup and program this as the default (sliceid,subsliceid)
      setting in the steering control register (0xFDC).  In cases where we
      need to read another type of multicast GT register, but the default
      subslice steering would not correspond to a valid instance, we'll
      explicitly re-steer the single read to a valid value, perform the read,
      and then reset the steering to it's "subslice" default.
      
      This patch adds the general functionality to prepare for this explicit
      steering of other multicast register types.  We'll plug L3 bank steering
      into this in the next patch, and then add additional types of multicast
      registers when the support for our next upcoming platform arrives.
      
      v2:
       - Use entry->end==0 as table terminator.  (Rodrigo)
       - Grab forcewake in wa_list_verify() now that we're using accessors
         that assume forcewake is already held.
      
      v3:
       - Fix loop condition when iterating over steering range tables.
         (Rodrigo)
      
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210617211425.1943662-3-matthew.d.roper@intel.com
      0957e931
  2. 16 6月, 2021 1 次提交
  3. 06 6月, 2021 1 次提交
  4. 07 5月, 2021 1 次提交
  5. 09 4月, 2021 4 次提交
  6. 29 3月, 2021 3 次提交
  7. 25 3月, 2021 5 次提交
  8. 09 2月, 2021 1 次提交
  9. 01 2月, 2021 1 次提交
  10. 21 1月, 2021 2 次提交
  11. 14 1月, 2021 3 次提交
  12. 10 1月, 2021 1 次提交
  13. 04 1月, 2021 2 次提交
  14. 02 1月, 2021 1 次提交
  15. 21 12月, 2020 1 次提交
  16. 16 12月, 2020 1 次提交
  17. 11 12月, 2020 1 次提交
  18. 09 12月, 2020 3 次提交
  19. 06 12月, 2020 4 次提交
  20. 02 12月, 2020 1 次提交
  21. 17 11月, 2020 2 次提交