Message ID | 20211021142627.31058-3-ramalingam.c@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/dg2: Enabling 64k page size and flat ccs | expand |
On Thu, Oct 21, 2021 at 07:56:12PM +0530, Ramalingam C wrote: >From: Matthew Auld <matthew.auld@intel.com> > >LMEM should be allocated at 64K granularity, since 4K page support will >eventually be dropped for LMEM when using the PPGTT. this is not for xehpsdv only. So this should probably drop the prefix and be: For discrete cards that support 64k pages we should be using it since 4K page support ... Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Lucas De Marhci > >Signed-off-by: Matthew Auld <matthew.auld@intel.com> >Signed-off-by: Stuart Summers <stuart.summers@intel.com> >Signed-off-by: Ramalingam C <ramalingam.c@intel.com> >Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> >Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> >--- > 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 ddd37ccb1362..f52a06f05fc7 100644 >--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c >+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c >@@ -778,6 +778,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; >@@ -789,8 +790,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 afb35d2e5c73..073d28d96669 100644 >--- a/drivers/gpu/drm/i915/gt/intel_region_lmem.c >+++ b/drivers/gpu/drm/i915/gt/intel_region_lmem.c >@@ -193,6 +193,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; >@@ -207,10 +208,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 >
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c index ddd37ccb1362..f52a06f05fc7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c @@ -778,6 +778,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; @@ -789,8 +790,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 afb35d2e5c73..073d28d96669 100644 --- a/drivers/gpu/drm/i915/gt/intel_region_lmem.c +++ b/drivers/gpu/drm/i915/gt/intel_region_lmem.c @@ -193,6 +193,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; @@ -207,10 +208,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,