[Intel-gfx] [RFC 00/60] DG1 LMEM enabling

Dave Airlie airlied at gmail.com
Tue Aug 11 03:23:14 UTC 2020


Hi Matthew,

do you have a rebase of these or a git tree with them, once I hit the
PPGTT support applying started to get messy.

Dave.

On Fri, 10 Jul 2020 at 21:58, Matthew Auld <matthew.auld at intel.com> wrote:
>
> This is Lucas' DG1 enabling series[1], plus some of the DG1 specific enablers
> for supporting LMEM on top, including some bits of new uAPI.
>
> Posting this series as RFC to get feedback while we continue to work on adapting
> the code to use DMA reservation incrementally. This is currently WIP[2][3].
>
> In terms of new uAPI we have gem_create_ext, which offers extensions support for
> gem_create, this includes giving userspace the ability to optionally provide a
> priority list of potential placements for the object. The other bit of new uAPI
> is the query interface for memory regions, which describes the supported memory
> regions for the device. What this reports can then be fed into gem_create_ext to
> specify where an object might reside, like device local memory.
>
> [1] https://patchwork.freedesktop.org/series/77496/
> [2] https://patchwork.freedesktop.org/series/79091/
> [3] https://patchwork.freedesktop.org/series/79129/
>
> Abdiel Janulgue (5):
>   drm/i915/dg1: add initial DG-1 definitions
>   drm/i915/dg1: Add DG1 PCI IDs
>   drm/i915/query: Expose memory regions through the query uAPI
>   drm/i915: Provide a way to disable PCIe relaxed write ordering
>   drm/i915: Reintroduce mem->reserved
>
> Aditya Swarup (4):
>   drm/i915/dg1: Add DPLL macros for DG1
>   drm/i915/dg1: Add and setup DPLLs for DG1
>   drm/i915/dg1: Enable DPLL for DG1
>   drm/i915/dg1: Enable first 2 ports for DG1
>
> Animesh Manna (2):
>   drm/i915/lmem: reset the lmem buffer created by fbdev
>   drm/i915/dsb: Enable lmem for dsb
>
> Anshuman Gupta (1):
>   drm/i915/dg1: DG1 does not support DC6
>
> Anusha Srivatsa (2):
>   drm/i915/dg1: Remove SHPD_FILTER_CNT register programming
>   drm/i915/lmem: Bypass aperture when lmem is available
>
> CQ Tang (5):
>   drm/i915: setup GPU device lmem region
>   drm/i915: Fix object page offset within a region
>   drm/i915: add i915_gem_object_is_devmem() function
>   drm/i915: finish memory region support for stolen objects.
>   drm/i915: Create stolen memory region from local memory
>
> Clinton A Taylor (1):
>   drm/i915/dg1: invert HPD pins
>
> Daniele Ceraolo Spurio (2):
>   drm/i915/guc: put all guc objects in lmem when available
>   drm/i915: defer pd lmem block put to worker
>
> Imre Deak (1):
>   drm/i915/dg1: Reserve first 1MB of local memory
>
> Lucas De Marchi (7):
>   drm/i915/dg1: add support for the master unit interrupt
>   drm/i915/dg1: Add fake PCH
>   drm/i915/dg1: Define MOCS table for DG1
>   drm/i915/dg1: add hpd interrupt handling
>   drm/i915/dg1: gmbus pin mapping
>   drm/i915/dg1: map/unmap pll clocks
>   drm/i915/dg1: enable PORT C/D aka D/E
>
> Matt Atwood (1):
>   drm/i915/dg1: Load DMC
>
> Matt Roper (7):
>   drm/i915/dg1: Initialize RAWCLK properly
>   drm/i915/dg1: Wait for pcode/uncore handshake at startup
>   drm/i915/dg1: Don't program PHY_MISC for PHY-C and PHY-D
>   drm/i915/dg1: Update comp master/slave relationships for PHYs
>   drm/i915/dg1: Update voltage swing tables for DP
>   drm/i915/dg1: provide port/phy mapping for vbt
>   drm/i915/rkl: Add initial workarounds
>
> Matthew Auld (11):
>   drm/i915/lmem: support pread
>   drm/i915/lmem: support pwrite
>   drm/i915: introduce kernel blitter_context
>   drm/i915/uapi: introduce drm_i915_gem_create_ext
>   drm/i915: setup the LMEM region
>   drm/i915: drop fake LMEM
>   drm/i915: PPGTT support
>   drm/i915: support GGTT LMEM entries
>   drm/i915: allocate context from LMEM
>   drm/i915: move engine scratch to LMEM
>   drm/i915/lmem: support optional CPU clearing for special internal use
>
> Michael J. Ruhl (1):
>   drm/i915/dg1: Introduce dmabuf mmap to LMEM
>
> Michel Thierry (3):
>   drm/i915/dgfx: define llc and snooping behaviour
>   drm/i915/lmem: allocate cmd ring in lmem
>   drm/i915/lmem: allocate HWSP in lmem
>
> Stuart Summers (2):
>   drm/i915: Add has_master_unit_irq flag
>   drm/i915/dg1: Add initial DG1 workarounds
>
> Uma Shankar (1):
>   drm/i915/dg1: Add DG1 power wells
>
> Venkata Sandeep Dhanalakota (2):
>   drm/i915/dg1: Increase mmio size to 4MB
>   drm/i915/lmem: Limit block size to 4G
>
> Wen, Kui (1):
>   drm/i915/lmem: Do not check r->sgt.pfn for NULL
>
> Zbigniew Kempczyński (1):
>   drm/i915: Distinction of memory regions
>
>  drivers/gpu/drm/i915/Kconfig.debug            |  11 +
>  drivers/gpu/drm/i915/Makefile                 |   1 +
>  drivers/gpu/drm/i915/display/intel_bios.c     |  12 +-
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |  16 +-
>  .../gpu/drm/i915/display/intel_combo_phy.c    |   7 +-
>  drivers/gpu/drm/i915/display/intel_csr.c      |  19 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      | 126 +++++-
>  drivers/gpu/drm/i915/display/intel_display.c  |  50 ++-
>  .../drm/i915/display/intel_display_power.c    | 211 +++++++++-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  71 +++-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.h |  17 +
>  drivers/gpu/drm/i915/display/intel_dsb.c      |   7 +-
>  drivers/gpu/drm/i915/display/intel_fbc.c      |  20 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  25 +-
>  drivers/gpu/drm/i915/display/intel_gmbus.c    |  15 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |   9 +-
>  drivers/gpu/drm/i915/display/intel_hotplug.c  |   3 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c   |   5 +-
>  drivers/gpu/drm/i915/gem/i915_gem_create.c    | 379 ++++++++++++++++++
>  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |  58 ++-
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.c      | 250 +++++++++++-
>  drivers/gpu/drm/i915/gem/i915_gem_lmem.h      |  22 +
>  drivers/gpu/drm/i915/gem/i915_gem_mman.c      | 103 ++---
>  drivers/gpu/drm/i915/gem/i915_gem_mman.h      |   8 +
>  drivers/gpu/drm/i915/gem/i915_gem_object.c    |   2 +
>  .../gpu/drm/i915/gem/i915_gem_object_types.h  |  19 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pages.c     |  14 +-
>  drivers/gpu/drm/i915/gem/i915_gem_region.c    |  24 ++
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c    | 241 +++++++----
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.h    |  10 +-
>  .../drm/i915/gem/selftests/i915_gem_mman.c    |  12 +-
>  drivers/gpu/drm/i915/gt/gen6_ppgtt.c          |   2 +
>  drivers/gpu/drm/i915/gt/gen8_ppgtt.c          |  83 +++-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  40 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h  |   1 +
>  drivers/gpu/drm/i915/gt/intel_ggtt.c          |  24 +-
>  drivers/gpu/drm/i915/gt/intel_gt.c            |  14 +-
>  drivers/gpu/drm/i915/gt/intel_gtt.c           |  74 +++-
>  drivers/gpu/drm/i915/gt/intel_gtt.h           |  11 +-
>  drivers/gpu/drm/i915/gt/intel_lrc.c           |  31 +-
>  drivers/gpu/drm/i915/gt/intel_mocs.c          |  39 +-
>  drivers/gpu/drm/i915/gt/intel_ppgtt.c         |  10 +-
>  drivers/gpu/drm/i915/gt/intel_ring.c          |  15 +-
>  drivers/gpu/drm/i915/gt/intel_timeline.c      |   8 +-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c   | 159 ++++++--
>  drivers/gpu/drm/i915/gt/uc/intel_guc.c        |   9 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c     |  11 +-
>  drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  14 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      |  35 +-
>  drivers/gpu/drm/i915/i915_buddy.h             |  10 +
>  drivers/gpu/drm/i915/i915_debugfs.c           |   4 +
>  drivers/gpu/drm/i915/i915_drv.c               |  22 +-
>  drivers/gpu/drm/i915/i915_drv.h               |  15 +-
>  drivers/gpu/drm/i915/i915_gem.c               | 109 +----
>  drivers/gpu/drm/i915/i915_gem_gtt.c           |   2 +
>  drivers/gpu/drm/i915/i915_gpu_error.c         |   4 +-
>  drivers/gpu/drm/i915/i915_irq.c               | 120 +++++-
>  drivers/gpu/drm/i915/i915_mm.c                |   2 +-
>  drivers/gpu/drm/i915/i915_params.c            |   5 -
>  drivers/gpu/drm/i915/i915_params.h            |   1 -
>  drivers/gpu/drm/i915/i915_pci.c               |  18 +-
>  drivers/gpu/drm/i915/i915_query.c             |  62 +++
>  drivers/gpu/drm/i915/i915_reg.h               |  71 +++-
>  drivers/gpu/drm/i915/i915_vma.c               |  19 +-
>  drivers/gpu/drm/i915/intel_device_info.c      |   1 +
>  drivers/gpu/drm/i915/intel_device_info.h      |   2 +
>  drivers/gpu/drm/i915/intel_memory_region.c    | 119 +++++-
>  drivers/gpu/drm/i915/intel_memory_region.h    |  55 ++-
>  drivers/gpu/drm/i915/intel_pch.c              |   6 +
>  drivers/gpu/drm/i915/intel_pch.h              |   4 +
>  drivers/gpu/drm/i915/intel_pm.c               |  17 +-
>  drivers/gpu/drm/i915/intel_region_lmem.c      | 164 ++++----
>  drivers/gpu/drm/i915/intel_region_lmem.h      |   3 +-
>  drivers/gpu/drm/i915/intel_sideband.c         |  15 +
>  drivers/gpu/drm/i915/intel_sideband.h         |   2 +
>  drivers/gpu/drm/i915/intel_uncore.c           |   4 +
>  .../drm/i915/selftests/intel_memory_region.c  | 172 ++++++++
>  .../gpu/drm/i915/selftests/mock_gem_device.c  |   3 +-
>  include/drm/i915_pciids.h                     |   4 +
>  include/uapi/drm/i915_drm.h                   | 118 ++++++
>  80 files changed, 2902 insertions(+), 598 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_create.c
>
> --
> 2.26.2
>


More information about the Intel-gfx mailing list