1. 23 2月, 2022 1 次提交
    • J
      drm/i915/tgl: Simply subplatform detection · b9ef8939
      José Roberto de Souza 提交于
      In the past we had a need to differentiate TGL U and TGL Y, there
      was a different voltage swing table for each subplatform and some PCI
      ids of this subplatforms are shared but it turned out that it was a
      specification mistake and the voltage swing table was indeed the same
      but we went ahead with that patch because we needed to differentiate
      TGL U and Y from TGL H and by that time TGL H was embargoed so that
      was the perfect way to land it upstream.
      
      Now the embargo for TGL H is long past and now we even have
      INTEL_TGL_12_GT1_IDS with all TGL H ids, so we can drop this PCI root
      check and only rely in the PCI ids to differentiate TGL U and Y from
      TGL H that actually has code differences.
      
      Besides the simplification this will fix issues in virtualization
      environments where the PCI root is virtualized and don't have the same
      id as actual hardware.
      
      v2:
      - add and set INTEL_SUBPLATFORM_UY
      
      Cc: Fred Gao <fred.gao@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Tested-by: NYu He <yu.he@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220222141424.35165-1-jose.souza@intel.com
      b9ef8939
  2. 20 2月, 2022 2 次提交
  3. 18 2月, 2022 1 次提交
  4. 14 2月, 2022 10 次提交
  5. 11 2月, 2022 4 次提交
  6. 10 2月, 2022 2 次提交
  7. 09 2月, 2022 6 次提交
  8. 02 2月, 2022 2 次提交
  9. 01 2月, 2022 1 次提交
  10. 27 1月, 2022 1 次提交
    • D
      drm/i915/wopcm: Handle pre-programmed WOPCM registers · db3b3f3e
      Daniele Ceraolo Spurio 提交于
      Starting from DG2, some of the programming previously done by i915 and
      the GuC has been moved to the GSC and the relevant registers are no
      longer writable by either CPU or GuC. This is also referred to as GuC
      deprivilege.
      On the i915 side, this affects the WOPCM registers: these are no longer
      programmed by the driver and we do instead expect to find them already
      set. This can lead to verification failures because in i915 we cheat a bit
      with the WOPCM size defines, to keep the code common across platforms, by
      sometimes using a smaller WOPCM size that the actual HW support (which isn't
      a problem because the extra size is not needed if the FW fits in the smaller
      chunk), while the pre-programmed values can use the actual size.
      Given tha the new programming entity is trusted, relax the amount of the
      checks done on the pre-programmed values by not limiting the max
      programmed size. In the extremely unlikely scenario that the registers
      have been misprogrammed, we will still fail later at DMA time.
      
      v2: drop special case for DG2 G10 A0 (Alan)
      Signed-off-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Stuart Summers <stuart.summers@intel.com>
      Cc: John Harrison <john.c.harrison@intel.com>
      Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
      Reviewed-by: NAlan Previn <alan.previn.teres.alexis@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220120212947.3440448-1-daniele.ceraolospurio@intel.com
      db3b3f3e
  11. 21 1月, 2022 1 次提交
  12. 18 1月, 2022 2 次提交
  13. 17 1月, 2022 1 次提交
  14. 11 1月, 2022 1 次提交
    • T
      drm/i915: Use vma resources for async unbinding · 2f6b90da
      Thomas Hellström 提交于
      Implement async (non-blocking) unbinding by not syncing the vma before
      calling unbind on the vma_resource.
      Add the resulting unbind fence to the object's dma_resv from where it is
      picked up by the ttm migration code.
      Ideally these unbind fences should be coalesced with the migration blit
      fence to avoid stalling the migration blit waiting for unbind, as they
      can certainly go on in parallel, but since we don't yet have a
      reasonable data structure to use to coalesce fences and attach the
      resulting fence to a timeline, we defer that for now.
      
      Note that with async unbinding, even while the unbind waits for the
      preceding bind to complete before unbinding, the vma itself might have been
      destroyed in the process, clearing the vma pages. Therefore we can
      only allow async unbinding if we have a refcounted sg-list and keep a
      refcount on that for the vma resource pages to stay intact until
      binding occurs. If this condition is not met, a request for an async
      unbind is diverted to a sync unbind.
      
      v2:
      - Use a separate kmem_cache for vma resources for now to isolate their
        memory allocation and aid debugging.
      - Move the check for vm closed to the actual unbinding thread. Regardless
        of whether the vm is closed, we need the unbind fence to properly wait
        for capture.
      - Clear vma_res::vm on unbind and update its documentation.
      v4:
      - Take cache coloring into account when searching for vma resources
        pending unbind. (Matthew Auld)
      v5:
      - Fix timeout and error check in i915_vma_resource_bind_dep_await().
      - Avoid taking a reference on the object for async binding if
        async unbind capable.
      - Fix braces around a single-line if statement.
      v6:
      - Fix up the cache coloring adjustment. (Kernel test robot <lkp@intel.com>)
      - Don't allow async unbinding if the vma_res pages are not the same as
        the object pages. (Matthew Auld)
      v7:
      - s/unsigned long/u64/ in a number of places (Matthew Auld)
      Signed-off-by: NThomas Hellström <thomas.hellstrom@linux.intel.com>
      Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220110172219.107131-5-thomas.hellstrom@linux.intel.com
      2f6b90da
  15. 10 1月, 2022 5 次提交