Re: [PATCH 10/21] drm/i915: enable IPS bit for 64K pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matthew Auld <matthew.auld@xxxxxxxxx> writes:

> Before we can enable 64K pages through the IPS bit, we must first enable
> it through MMIO, otherwise the page-walker will simply ignore it.
>
> v2: add comment mentioning that 64K is BDW+
>
> Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx>
> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 16 ++++++++++++++++
>  drivers/gpu/drm/i915/i915_reg.h |  3 +++
>  2 files changed, 19 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index ae7b683437f1..2fab70ad169e 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4755,6 +4755,22 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
>  		}
>  	}
>  
> +	/* To support 64K PTEs we need to first enable the use of the
> +	 * Intermediate-Page-Size(IPS) bit of the PDE field via some magical
> +	 * mmio, otherwise the page-walker will simply ignore the IPS bit. This
> +	 * shouldn't be needed after GEN10.
> +	 *
> +	 * 64K pages were first introduced from BDW+, although technically they
> +	 * only *work* from gen9+. For pre-BDW we instead have the option for
> +	 * 32K pages, but we don't currently have any support for it in our
> +	 * driver.
> +	 */
> +	if (HAS_PAGE_SIZES(dev_priv, I915_GTT_PAGE_SIZE_64K) &&
> +	    INTEL_GEN(dev_priv) <= 10)
> +		I915_WRITE(GEN8_GAMW_ECO_DEV_RW_IA,
> +			   I915_READ(GEN8_GAMW_ECO_DEV_RW_IA) |
> +			   GAMW_ECO_ENABLE_64K_IPS_FIELD);
> +

Apparently we need this prior touching pde. Move this to
gtt_write_workarounds() and you can add my,

Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>


>  	i915_gem_init_swizzling(dev_priv);
>  
>  	/*
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 82f36dd0cd94..6fdcaec0e2ee 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2371,6 +2371,9 @@ enum i915_power_well_id {
>  #define GEN9_GAMT_ECO_REG_RW_IA _MMIO(0x4ab0)
>  #define   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS	(1<<18)
>  
> +#define GEN8_GAMW_ECO_DEV_RW_IA _MMIO(0x4080)
> +#define   GAMW_ECO_ENABLE_64K_IPS_FIELD 0xF
> +
>  #define GAMT_CHKN_BIT_REG	_MMIO(0x4ab8)
>  #define   GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING	(1<<28)
>  #define   GAMT_CHKN_DISABLE_I2M_CYCLE_ON_WR_PORT	(1<<24)
> -- 
> 2.13.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux