diff mbox

[v2,2/3] drm/i915/bxt: add revision id for A1 stepping and use it

Message ID 1445343722-3312-2-git-send-email-jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula Oct. 20, 2015, 12:22 p.m. UTC
Prefer inclusive ranges for revision checks rather than "below B0". Per
specs A2 is not used, so revid <= A1 matches revid < B0.

Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h            | 1 +
 drivers/gpu/drm/i915/i915_gem.c            | 2 +-
 drivers/gpu/drm/i915/i915_guc_submission.c | 2 +-
 drivers/gpu/drm/i915/intel_ddi.c           | 2 +-
 drivers/gpu/drm/i915/intel_dp.c            | 2 +-
 drivers/gpu/drm/i915/intel_hdmi.c          | 2 +-
 drivers/gpu/drm/i915/intel_lrc.c           | 8 ++++----
 drivers/gpu/drm/i915/intel_pm.c            | 6 +++---
 drivers/gpu/drm/i915/intel_ringbuffer.c    | 6 +++---
 9 files changed, 16 insertions(+), 15 deletions(-)

Comments

Daniel Vetter Oct. 21, 2015, 6:42 a.m. UTC | #1
On Tue, Oct 20, 2015 at 03:22:01PM +0300, Jani Nikula wrote:
> Prefer inclusive ranges for revision checks rather than "below B0". Per
> specs A2 is not used, so revid <= A1 matches revid < B0.
> 
> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h            | 1 +
>  drivers/gpu/drm/i915/i915_gem.c            | 2 +-
>  drivers/gpu/drm/i915/i915_guc_submission.c | 2 +-
>  drivers/gpu/drm/i915/intel_ddi.c           | 2 +-
>  drivers/gpu/drm/i915/intel_dp.c            | 2 +-
>  drivers/gpu/drm/i915/intel_hdmi.c          | 2 +-
>  drivers/gpu/drm/i915/intel_lrc.c           | 8 ++++----
>  drivers/gpu/drm/i915/intel_pm.c            | 6 +++---
>  drivers/gpu/drm/i915/intel_ringbuffer.c    | 6 +++---
>  9 files changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index f222114981c0..28e71c32c0d5 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2501,6 +2501,7 @@ struct drm_i915_cmd_table {
>  #define SKL_REVID_F0		0x5
>  
>  #define BXT_REVID_A0		0x0
> +#define BXT_REVID_A1		0x1

Except that I can't check this value here on the series:

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  #define BXT_REVID_B0		0x3
>  #define BXT_REVID_C0		0x9
>  
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index e57061ac0219..408ed6f8e33c 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -3826,7 +3826,7 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
>  		 * cacheline, whereas normally such cachelines would get
>  		 * invalidated.
>  		 */
> -		if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)
> +		if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)
>  			return -ENODEV;
>  
>  		level = I915_CACHE_LLC;
> diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
> index 036b42bae827..863aa5c82466 100644
> --- a/drivers/gpu/drm/i915/i915_guc_submission.c
> +++ b/drivers/gpu/drm/i915/i915_guc_submission.c
> @@ -161,7 +161,7 @@ static int host2guc_sample_forcewake(struct intel_guc *guc,
>  	data[0] = HOST2GUC_ACTION_SAMPLE_FORCEWAKE;
>  	/* WaRsDisableCoarsePowerGating:skl,bxt */
>  	if (!intel_enable_rc6(dev_priv->dev) ||
> -	    (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
> +	    (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
>  	    (IS_SKL_GT3(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)) ||
>  	    (IS_SKL_GT4(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
>  		data[1] = 0;
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index b25e99a432fb..b80e0f5ec5dc 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -3247,7 +3247,7 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
>  		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
>  		 * interrupts to check the external panel connection.
>  		 */
> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)
> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1)
>  					 && port == PORT_B)
>  			dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
>  		else
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 09bdd94ca3ba..92413e5d215c 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -6087,7 +6087,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
>  		break;
>  	case PORT_B:
>  		intel_encoder->hpd_pin = HPD_PORT_B;
> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>  			intel_encoder->hpd_pin = HPD_PORT_A;
>  		break;
>  	case PORT_C:
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 9eafa191cee2..35c6e211baf5 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -2039,7 +2039,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
>  		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
>  		 * interrupts to check the external panel connection.
>  		 */
> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>  			intel_encoder->hpd_pin = HPD_PORT_A;
>  		else
>  			intel_encoder->hpd_pin = HPD_PORT_B;
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 88e12bdf79e2..0f5a1d63b51d 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1972,7 +1972,7 @@ static int logical_render_ring_init(struct drm_device *dev)
>  		ring->init_hw = gen8_init_render_ring;
>  	ring->init_context = gen8_init_rcs_context;
>  	ring->cleanup = intel_fini_pipe_control;
> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>  		ring->get_seqno = bxt_a_get_seqno;
>  		ring->set_seqno = bxt_a_set_seqno;
>  	} else {
> @@ -2024,7 +2024,7 @@ static int logical_bsd_ring_init(struct drm_device *dev)
>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VCS1_IRQ_SHIFT;
>  
>  	ring->init_hw = gen8_init_common_ring;
> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>  		ring->get_seqno = bxt_a_get_seqno;
>  		ring->set_seqno = bxt_a_set_seqno;
>  	} else {
> @@ -2079,7 +2079,7 @@ static int logical_blt_ring_init(struct drm_device *dev)
>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
>  
>  	ring->init_hw = gen8_init_common_ring;
> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>  		ring->get_seqno = bxt_a_get_seqno;
>  		ring->set_seqno = bxt_a_set_seqno;
>  	} else {
> @@ -2109,7 +2109,7 @@ static int logical_vebox_ring_init(struct drm_device *dev)
>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VECS_IRQ_SHIFT;
>  
>  	ring->init_hw = gen8_init_common_ring;
> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>  		ring->get_seqno = bxt_a_get_seqno;
>  		ring->set_seqno = bxt_a_set_seqno;
>  	} else {
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index df22b9c75b2b..771eefb7c7ef 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4386,7 +4386,7 @@ static void gen6_set_rps(struct drm_device *dev, u8 val)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  
>  	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
> -	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0))
> +	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>  		return;
>  
>  	WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
> @@ -4710,7 +4710,7 @@ static void gen9_enable_rps(struct drm_device *dev)
>  	gen6_init_rps_frequencies(dev);
>  
>  	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
> -	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
> +	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) {
>  		intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
>  		return;
>  	}
> @@ -4796,7 +4796,7 @@ static void gen9_enable_rc6(struct drm_device *dev)
>  	 * 3b: Enable Coarse Power Gating only when RC6 is enabled.
>  	 * WaRsDisableCoarsePowerGating:skl,bxt - Render/Media PG need to be disabled with RC6.
>  	 */
> -	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
> +	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
>  	    ((IS_SKL_GT3(dev) || IS_SKL_GT4(dev)) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
>  		I915_WRITE(GEN9_PG_ENABLE, 0);
>  	else
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index a49270525a38..d676512aa3c8 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -926,14 +926,14 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>  
>  	if ((IS_SKYLAKE(dev) && (INTEL_REVID(dev) == SKL_REVID_A0 ||
>  	    INTEL_REVID(dev) == SKL_REVID_B0)) ||
> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
>  		/* WaDisableDgMirrorFixInHalfSliceChicken5:skl,bxt */
>  		WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
>  				  GEN9_DG_MIRROR_FIX_ENABLE);
>  	}
>  
>  	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) <= SKL_REVID_B0) ||
> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
>  		/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:skl,bxt */
>  		WA_SET_BIT_MASKED(GEN7_COMMON_SLICE_CHICKEN1,
>  				  GEN9_RHWO_OPTIMIZATION_DISABLE);
> @@ -962,7 +962,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>  
>  	/* WaDisableMaskBasedCammingInRCC:skl,bxt */
>  	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) == SKL_REVID_C0) ||
> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0))
> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1))
>  		WA_SET_BIT_MASKED(SLICE_ECO_CHICKEN0,
>  				  PIXEL_MASK_CAMMING_DISABLE);
>  
> -- 
> 2.1.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jani Nikula Oct. 21, 2015, 8:58 a.m. UTC | #2
On Wed, 21 Oct 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Oct 20, 2015 at 03:22:01PM +0300, Jani Nikula wrote:
>> Prefer inclusive ranges for revision checks rather than "below B0". Per
>> specs A2 is not used, so revid <= A1 matches revid < B0.
>> 
>> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.h            | 1 +
>>  drivers/gpu/drm/i915/i915_gem.c            | 2 +-
>>  drivers/gpu/drm/i915/i915_guc_submission.c | 2 +-
>>  drivers/gpu/drm/i915/intel_ddi.c           | 2 +-
>>  drivers/gpu/drm/i915/intel_dp.c            | 2 +-
>>  drivers/gpu/drm/i915/intel_hdmi.c          | 2 +-
>>  drivers/gpu/drm/i915/intel_lrc.c           | 8 ++++----
>>  drivers/gpu/drm/i915/intel_pm.c            | 6 +++---
>>  drivers/gpu/drm/i915/intel_ringbuffer.c    | 6 +++---
>>  9 files changed, 16 insertions(+), 15 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index f222114981c0..28e71c32c0d5 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -2501,6 +2501,7 @@ struct drm_i915_cmd_table {
>>  #define SKL_REVID_F0		0x5
>>  
>>  #define BXT_REVID_A0		0x0
>> +#define BXT_REVID_A1		0x1
>
> Except that I can't check this value here on the series:
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Pushed them all. Thanks for the review and acks.

BR,
Jani.

>
>>  #define BXT_REVID_B0		0x3
>>  #define BXT_REVID_C0		0x9
>>  
>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> index e57061ac0219..408ed6f8e33c 100644
>> --- a/drivers/gpu/drm/i915/i915_gem.c
>> +++ b/drivers/gpu/drm/i915/i915_gem.c
>> @@ -3826,7 +3826,7 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
>>  		 * cacheline, whereas normally such cachelines would get
>>  		 * invalidated.
>>  		 */
>> -		if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)
>> +		if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)
>>  			return -ENODEV;
>>  
>>  		level = I915_CACHE_LLC;
>> diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
>> index 036b42bae827..863aa5c82466 100644
>> --- a/drivers/gpu/drm/i915/i915_guc_submission.c
>> +++ b/drivers/gpu/drm/i915/i915_guc_submission.c
>> @@ -161,7 +161,7 @@ static int host2guc_sample_forcewake(struct intel_guc *guc,
>>  	data[0] = HOST2GUC_ACTION_SAMPLE_FORCEWAKE;
>>  	/* WaRsDisableCoarsePowerGating:skl,bxt */
>>  	if (!intel_enable_rc6(dev_priv->dev) ||
>> -	    (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
>> +	    (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
>>  	    (IS_SKL_GT3(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)) ||
>>  	    (IS_SKL_GT4(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
>>  		data[1] = 0;
>> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
>> index b25e99a432fb..b80e0f5ec5dc 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -3247,7 +3247,7 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
>>  		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
>>  		 * interrupts to check the external panel connection.
>>  		 */
>> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)
>> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1)
>>  					 && port == PORT_B)
>>  			dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
>>  		else
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index 09bdd94ca3ba..92413e5d215c 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -6087,7 +6087,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
>>  		break;
>>  	case PORT_B:
>>  		intel_encoder->hpd_pin = HPD_PORT_B;
>> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
>> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>>  			intel_encoder->hpd_pin = HPD_PORT_A;
>>  		break;
>>  	case PORT_C:
>> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
>> index 9eafa191cee2..35c6e211baf5 100644
>> --- a/drivers/gpu/drm/i915/intel_hdmi.c
>> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
>> @@ -2039,7 +2039,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
>>  		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
>>  		 * interrupts to check the external panel connection.
>>  		 */
>> -		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
>> +		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>>  			intel_encoder->hpd_pin = HPD_PORT_A;
>>  		else
>>  			intel_encoder->hpd_pin = HPD_PORT_B;
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
>> index 88e12bdf79e2..0f5a1d63b51d 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -1972,7 +1972,7 @@ static int logical_render_ring_init(struct drm_device *dev)
>>  		ring->init_hw = gen8_init_render_ring;
>>  	ring->init_context = gen8_init_rcs_context;
>>  	ring->cleanup = intel_fini_pipe_control;
>> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
>> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>>  		ring->get_seqno = bxt_a_get_seqno;
>>  		ring->set_seqno = bxt_a_set_seqno;
>>  	} else {
>> @@ -2024,7 +2024,7 @@ static int logical_bsd_ring_init(struct drm_device *dev)
>>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VCS1_IRQ_SHIFT;
>>  
>>  	ring->init_hw = gen8_init_common_ring;
>> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
>> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>>  		ring->get_seqno = bxt_a_get_seqno;
>>  		ring->set_seqno = bxt_a_set_seqno;
>>  	} else {
>> @@ -2079,7 +2079,7 @@ static int logical_blt_ring_init(struct drm_device *dev)
>>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
>>  
>>  	ring->init_hw = gen8_init_common_ring;
>> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
>> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>>  		ring->get_seqno = bxt_a_get_seqno;
>>  		ring->set_seqno = bxt_a_set_seqno;
>>  	} else {
>> @@ -2109,7 +2109,7 @@ static int logical_vebox_ring_init(struct drm_device *dev)
>>  		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VECS_IRQ_SHIFT;
>>  
>>  	ring->init_hw = gen8_init_common_ring;
>> -	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
>> +	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
>>  		ring->get_seqno = bxt_a_get_seqno;
>>  		ring->set_seqno = bxt_a_set_seqno;
>>  	} else {
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index df22b9c75b2b..771eefb7c7ef 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -4386,7 +4386,7 @@ static void gen6_set_rps(struct drm_device *dev, u8 val)
>>  	struct drm_i915_private *dev_priv = dev->dev_private;
>>  
>>  	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
>> -	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0))
>> +	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1))
>>  		return;
>>  
>>  	WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
>> @@ -4710,7 +4710,7 @@ static void gen9_enable_rps(struct drm_device *dev)
>>  	gen6_init_rps_frequencies(dev);
>>  
>>  	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
>> -	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
>> +	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) {
>>  		intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
>>  		return;
>>  	}
>> @@ -4796,7 +4796,7 @@ static void gen9_enable_rc6(struct drm_device *dev)
>>  	 * 3b: Enable Coarse Power Gating only when RC6 is enabled.
>>  	 * WaRsDisableCoarsePowerGating:skl,bxt - Render/Media PG need to be disabled with RC6.
>>  	 */
>> -	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
>> +	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
>>  	    ((IS_SKL_GT3(dev) || IS_SKL_GT4(dev)) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
>>  		I915_WRITE(GEN9_PG_ENABLE, 0);
>>  	else
>> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> index a49270525a38..d676512aa3c8 100644
>> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
>> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> @@ -926,14 +926,14 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>>  
>>  	if ((IS_SKYLAKE(dev) && (INTEL_REVID(dev) == SKL_REVID_A0 ||
>>  	    INTEL_REVID(dev) == SKL_REVID_B0)) ||
>> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
>> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
>>  		/* WaDisableDgMirrorFixInHalfSliceChicken5:skl,bxt */
>>  		WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
>>  				  GEN9_DG_MIRROR_FIX_ENABLE);
>>  	}
>>  
>>  	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) <= SKL_REVID_B0) ||
>> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
>> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
>>  		/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:skl,bxt */
>>  		WA_SET_BIT_MASKED(GEN7_COMMON_SLICE_CHICKEN1,
>>  				  GEN9_RHWO_OPTIMIZATION_DISABLE);
>> @@ -962,7 +962,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>>  
>>  	/* WaDisableMaskBasedCammingInRCC:skl,bxt */
>>  	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) == SKL_REVID_C0) ||
>> -	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0))
>> +	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1))
>>  		WA_SET_BIT_MASKED(SLICE_ECO_CHICKEN0,
>>  				  PIXEL_MASK_CAMMING_DISABLE);
>>  
>> -- 
>> 2.1.4
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f222114981c0..28e71c32c0d5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2501,6 +2501,7 @@  struct drm_i915_cmd_table {
 #define SKL_REVID_F0		0x5
 
 #define BXT_REVID_A0		0x0
+#define BXT_REVID_A1		0x1
 #define BXT_REVID_B0		0x3
 #define BXT_REVID_C0		0x9
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index e57061ac0219..408ed6f8e33c 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3826,7 +3826,7 @@  int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
 		 * cacheline, whereas normally such cachelines would get
 		 * invalidated.
 		 */
-		if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)
+		if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)
 			return -ENODEV;
 
 		level = I915_CACHE_LLC;
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
index 036b42bae827..863aa5c82466 100644
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
@@ -161,7 +161,7 @@  static int host2guc_sample_forcewake(struct intel_guc *guc,
 	data[0] = HOST2GUC_ACTION_SAMPLE_FORCEWAKE;
 	/* WaRsDisableCoarsePowerGating:skl,bxt */
 	if (!intel_enable_rc6(dev_priv->dev) ||
-	    (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
+	    (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
 	    (IS_SKL_GT3(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)) ||
 	    (IS_SKL_GT4(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
 		data[1] = 0;
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index b25e99a432fb..b80e0f5ec5dc 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3247,7 +3247,7 @@  void intel_ddi_init(struct drm_device *dev, enum port port)
 		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
 		 * interrupts to check the external panel connection.
 		 */
-		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)
+		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1)
 					 && port == PORT_B)
 			dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
 		else
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 09bdd94ca3ba..92413e5d215c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -6087,7 +6087,7 @@  intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
 		break;
 	case PORT_B:
 		intel_encoder->hpd_pin = HPD_PORT_B;
-		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
+		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
 			intel_encoder->hpd_pin = HPD_PORT_A;
 		break;
 	case PORT_C:
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 9eafa191cee2..35c6e211baf5 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2039,7 +2039,7 @@  void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
 		 * On BXT A0/A1, sw needs to activate DDIA HPD logic and
 		 * interrupts to check the external panel connection.
 		 */
-		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0))
+		if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) <= BXT_REVID_A1))
 			intel_encoder->hpd_pin = HPD_PORT_A;
 		else
 			intel_encoder->hpd_pin = HPD_PORT_B;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 88e12bdf79e2..0f5a1d63b51d 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1972,7 +1972,7 @@  static int logical_render_ring_init(struct drm_device *dev)
 		ring->init_hw = gen8_init_render_ring;
 	ring->init_context = gen8_init_rcs_context;
 	ring->cleanup = intel_fini_pipe_control;
-	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
+	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
 		ring->get_seqno = bxt_a_get_seqno;
 		ring->set_seqno = bxt_a_set_seqno;
 	} else {
@@ -2024,7 +2024,7 @@  static int logical_bsd_ring_init(struct drm_device *dev)
 		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VCS1_IRQ_SHIFT;
 
 	ring->init_hw = gen8_init_common_ring;
-	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
+	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
 		ring->get_seqno = bxt_a_get_seqno;
 		ring->set_seqno = bxt_a_set_seqno;
 	} else {
@@ -2079,7 +2079,7 @@  static int logical_blt_ring_init(struct drm_device *dev)
 		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
 
 	ring->init_hw = gen8_init_common_ring;
-	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
+	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
 		ring->get_seqno = bxt_a_get_seqno;
 		ring->set_seqno = bxt_a_set_seqno;
 	} else {
@@ -2109,7 +2109,7 @@  static int logical_vebox_ring_init(struct drm_device *dev)
 		GT_CONTEXT_SWITCH_INTERRUPT << GEN8_VECS_IRQ_SHIFT;
 
 	ring->init_hw = gen8_init_common_ring;
-	if (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0) {
+	if (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1) {
 		ring->get_seqno = bxt_a_get_seqno;
 		ring->set_seqno = bxt_a_set_seqno;
 	} else {
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index df22b9c75b2b..771eefb7c7ef 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4386,7 +4386,7 @@  static void gen6_set_rps(struct drm_device *dev, u8 val)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
 	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
-	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0))
+	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1))
 		return;
 
 	WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
@@ -4710,7 +4710,7 @@  static void gen9_enable_rps(struct drm_device *dev)
 	gen6_init_rps_frequencies(dev);
 
 	/* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
-	if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
+	if (IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) {
 		intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
 		return;
 	}
@@ -4796,7 +4796,7 @@  static void gen9_enable_rc6(struct drm_device *dev)
 	 * 3b: Enable Coarse Power Gating only when RC6 is enabled.
 	 * WaRsDisableCoarsePowerGating:skl,bxt - Render/Media PG need to be disabled with RC6.
 	 */
-	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
+	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) <= BXT_REVID_A1)) ||
 	    ((IS_SKL_GT3(dev) || IS_SKL_GT4(dev)) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
 		I915_WRITE(GEN9_PG_ENABLE, 0);
 	else
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index a49270525a38..d676512aa3c8 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -926,14 +926,14 @@  static int gen9_init_workarounds(struct intel_engine_cs *ring)
 
 	if ((IS_SKYLAKE(dev) && (INTEL_REVID(dev) == SKL_REVID_A0 ||
 	    INTEL_REVID(dev) == SKL_REVID_B0)) ||
-	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
+	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
 		/* WaDisableDgMirrorFixInHalfSliceChicken5:skl,bxt */
 		WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
 				  GEN9_DG_MIRROR_FIX_ENABLE);
 	}
 
 	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) <= SKL_REVID_B0) ||
-	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0)) {
+	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1)) {
 		/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:skl,bxt */
 		WA_SET_BIT_MASKED(GEN7_COMMON_SLICE_CHICKEN1,
 				  GEN9_RHWO_OPTIMIZATION_DISABLE);
@@ -962,7 +962,7 @@  static int gen9_init_workarounds(struct intel_engine_cs *ring)
 
 	/* WaDisableMaskBasedCammingInRCC:skl,bxt */
 	if ((IS_SKYLAKE(dev) && INTEL_REVID(dev) == SKL_REVID_C0) ||
-	    (IS_BROXTON(dev) && INTEL_REVID(dev) < BXT_REVID_B0))
+	    (IS_BROXTON(dev) && INTEL_REVID(dev) <= BXT_REVID_A1))
 		WA_SET_BIT_MASKED(SLICE_ECO_CHICKEN0,
 				  PIXEL_MASK_CAMMING_DISABLE);