[Intel-gfx] [PATCH v2 2/3] drm/i915/bxt: Add WaEnablePooledEuFor2x6

Mika Kuoppala mika.kuoppala at linux.intel.com
Fri Jun 3 09:20:13 UTC 2016


Arun Siluvery <arun.siluvery at linux.intel.com> writes:

> [ text/plain ]
> Pooled EU is enabled by default for BXT but for fused down 2x6 parts it is
> advised to turn it off. But there is another HW issue in these parts (fused
> down 2x6 parts) before C0 that requires Pooled EU to be enabled as a
> workaround. In this case the pool configuration changes depending upon
> which subslice is disabled. This doesn't affect if the device has all 3
> subslices enabled.
>
> Userspace need to know min no. of eus in a pool as it varies based on which
> subslice is disabled, this is not yet exported because userspace support is
> not available yet. Once the support is available this needs to be exported
> using getparam ioctls.
>
> Cc: Winiarski, Michal <michal.winiarski at intel.com>
> Cc: Zou, Nanhai <nanhai.zou at intel.com>
> Cc: Yang, Rong R <rong.r.yang at intel.com>
> Cc: Tim Gore <tim.gore at intel.com>
> Cc: Jeff McGee <jeff.mcgee at intel.com>
> Signed-off-by: Arun Siluvery <arun.siluvery at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_dma.c | 10 ++++++++++
>  drivers/gpu/drm/i915/i915_drv.c |  2 +-
>  2 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index a6c5d87..50aedfd 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -767,6 +767,16 @@ static void gen9_sseu_info_init(struct drm_device *dev)
>  
>  	if (IS_BROXTON(dev)) {
>  #define IS_SS_DISABLED(_ss_disable, ss)    (_ss_disable & (0x1 << ss))
> +		/*
> +		 * There is a HW issue in 2x6 fused down parts that requires
> +		 * Pooled EU to be enabled as a WA. The pool configuration
> +		 * changes depending upon which subslice is fused down. This
> +		 * doesn't affect if the device has all 3 subslices enabled.
> +		 */
> +		/* WaEnablePooledEuFor2x6:bxt */
> +		info->has_pooled_eu = ((info->subslice_total == 3) ||
> +				       (info->subslice_total == 2 &&
> +					INTEL_REVID(dev) < BXT_REVID_C0));
>  

It was agreed on irc that BXT has only one slice in all configurations.
However I still think that for correctness sake, we should
use info->subslice_per_slice here when we check the configuration.

With that changed,

Reviewed-by: Mika Kuoppala <mika.kuoppala@ıntel.com>


>  		info->min_eu_in_pool = 0;
>  		if (info->has_pooled_eu) {
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index de78a30..84593c1 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -357,7 +357,7 @@ static const struct intel_device_info intel_broxton_info = {
>  	.has_ddi = 1,
>  	.has_fpga_dbg = 1,
>  	.has_fbc = 1,
> -	.has_pooled_eu = 1,
> +	.has_pooled_eu = 0,
>  	GEN_DEFAULT_PIPEOFFSETS,
>  	IVB_CURSOR_OFFSETS,
>  	BDW_COLORS,
> -- 
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list