From: CQ Tang <cq.t...@intel.com>

lmem_size is used to limit the amount of lmem_size. Default is to
use hardware available lmem size, when setting this modpraram
which is in MB unit.

Signed-off-by: CQ Tang <cq.t...@intel.com>
---
 drivers/gpu/drm/i915/i915_params.c       | 3 +++
 drivers/gpu/drm/i915/i915_params.h       | 1 +
 drivers/gpu/drm/i915/intel_region_lmem.c | 4 ++++
 3 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_params.c 
b/drivers/gpu/drm/i915/i915_params.c
index bb1ebb6ece95..264de32f3d6a 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -200,6 +200,9 @@ i915_param_named_unsafe(fake_lmem_start, ulong, 0400,
 i915_param_named_unsafe(enable_eviction, bool, 0600,
        "Enable memcpy based eviction which does not rely on DMA resv 
refactoring)");
 
+i915_param_named_unsafe(lmem_size, uint, 0400,
+       "Change lmem size for each region. (default: 0, all memory)");
+
 static __always_inline void _print_param(struct drm_printer *p,
                                         const char *name,
                                         const char *type,
diff --git a/drivers/gpu/drm/i915/i915_params.h 
b/drivers/gpu/drm/i915/i915_params.h
index 87df407d9afb..be6979e7feda 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -71,6 +71,7 @@ struct drm_printer;
        param(int, enable_dpcd_backlight, -1, 0600) \
        param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE, 0400) \
        param(unsigned long, fake_lmem_start, 0, 0400) \
+       param(unsigned int, lmem_size, 0, 0400) \
        /* leave bools at the end to not create holes */ \
        param(bool, enable_eviction, true, 0600) \
        param(bool, enable_hangcheck, true, 0600) \
diff --git a/drivers/gpu/drm/i915/intel_region_lmem.c 
b/drivers/gpu/drm/i915/intel_region_lmem.c
index eafef7034680..1cdb6354b968 100644
--- a/drivers/gpu/drm/i915/intel_region_lmem.c
+++ b/drivers/gpu/drm/i915/intel_region_lmem.c
@@ -196,6 +196,10 @@ setup_lmem(struct drm_i915_private *dev_priv)
 
        io_start = pci_resource_start(pdev, 2);
 
+       if (dev_priv->params.lmem_size > 0)
+               lmem_size = min_t(resource_size_t, lmem_size,
+                                 mul_u32_u32(dev_priv->params.lmem_size, 
SZ_1M));
+
        mem = intel_memory_region_create(dev_priv,
                                         0,
                                         lmem_size,
-- 
2.26.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to