[Intel-gfx] [PATCH v2 2/3] drm/i915/bxt: add revision id for A1 stepping and use it
Jani Nikula
jani.nikula at intel.com
Wed Oct 21 01:58:12 PDT 2015
On Wed, 21 Oct 2015, Daniel Vetter <daniel at 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 at linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula at 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 at 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 at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list