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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx