diff options
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_engine_cs.c')
| -rw-r--r-- | drivers/gpu/drm/i915/gt/intel_engine_cs.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c index 1ade568ffbfa..7a6dc371c384 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c @@ -908,6 +908,23 @@ static intel_engine_mask_t init_engine_mask(struct intel_gt *gt)  		info->engine_mask &= ~BIT(GSC0);  	} +	/* +	 * Do not create the command streamer for CCS slices beyond the first. +	 * All the workload submitted to the first engine will be shared among +	 * all the slices. +	 * +	 * Once the user will be allowed to customize the CCS mode, then this +	 * check needs to be removed. +	 */ +	if (IS_DG2(gt->i915)) { +		u8 first_ccs = __ffs(CCS_MASK(gt)); + +		/* Mask off all the CCS engine */ +		info->engine_mask &= ~GENMASK(CCS3, CCS0); +		/* Put back in the first CCS engine */ +		info->engine_mask |= BIT(_CCS(first_ccs)); +	} +  	return info->engine_mask;  }  |