From: CQ Tang <cq.tang@xxxxxxxxx> 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.tang@xxxxxxxxx> --- 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx