On Wed, 8 Dec 2021 at 14:16, Ramalingam C <ramalingam.c@xxxxxxxxx> wrote: > > From: Matthew Auld <matthew.auld@xxxxxxxxx> > > LMEM should be allocated at 64K granularity, since 4K page support will > eventually be dropped for LMEM when using the PPGTT. s/will eventually be dropped/has been dropped/ as per Thomas' suggestion. > > Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx> > Signed-off-by: Stuart Summers <stuart.summers@xxxxxxxxx> > Signed-off-by: Ramalingam C <ramalingam.c@xxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > Reviewed-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> > Reviewed-by: Thomas Hellstrom <thomas.hellstrom@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 6 +++++- > drivers/gpu/drm/i915/gt/intel_region_lmem.c | 5 ++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > index bce03d74a0b4..ba90ab47d838 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > @@ -780,6 +780,7 @@ i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type, > struct intel_uncore *uncore = &i915->uncore; > struct pci_dev *pdev = to_pci_dev(i915->drm.dev); > struct intel_memory_region *mem; > + resource_size_t min_page_size; > resource_size_t io_start; > resource_size_t lmem_size; > u64 lmem_base; > @@ -791,8 +792,11 @@ i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type, > lmem_size = pci_resource_len(pdev, 2) - lmem_base; > io_start = pci_resource_start(pdev, 2) + lmem_base; > > + min_page_size = HAS_64K_PAGES(i915) ? I915_GTT_PAGE_SIZE_64K : > + I915_GTT_PAGE_SIZE_4K; > + > mem = intel_memory_region_create(i915, lmem_base, lmem_size, > - I915_GTT_PAGE_SIZE_4K, io_start, > + min_page_size, io_start, > type, instance, > &i915_region_stolen_lmem_ops); > if (IS_ERR(mem)) > diff --git a/drivers/gpu/drm/i915/gt/intel_region_lmem.c b/drivers/gpu/drm/i915/gt/intel_region_lmem.c > index 9ea49e0a27c0..fde2dcb59809 100644 > --- a/drivers/gpu/drm/i915/gt/intel_region_lmem.c > +++ b/drivers/gpu/drm/i915/gt/intel_region_lmem.c > @@ -197,6 +197,7 @@ static struct intel_memory_region *setup_lmem(struct intel_gt *gt) > struct intel_uncore *uncore = gt->uncore; > struct pci_dev *pdev = to_pci_dev(i915->drm.dev); > struct intel_memory_region *mem; > + resource_size_t min_page_size; > resource_size_t io_start; > resource_size_t lmem_size; > int err; > @@ -211,10 +212,12 @@ static struct intel_memory_region *setup_lmem(struct intel_gt *gt) > if (GEM_WARN_ON(lmem_size > pci_resource_len(pdev, 2))) > return ERR_PTR(-ENODEV); > > + min_page_size = HAS_64K_PAGES(i915) ? I915_GTT_PAGE_SIZE_64K : > + I915_GTT_PAGE_SIZE_4K; > mem = intel_memory_region_create(i915, > 0, > lmem_size, > - I915_GTT_PAGE_SIZE_4K, > + min_page_size, > io_start, > INTEL_MEMORY_LOCAL, > 0, > -- > 2.20.1 >