All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround
@ 2015-10-07  8:17 Jani Nikula
  2015-10-07  8:17 ` [PATCH 2/3] drm/i915/vlv: " Jani Nikula
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Jani Nikula @ 2015-10-07  8:17 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 52642aff1dab..1e67484fd5dc 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4558,22 +4558,6 @@ void i915_gem_init_swizzling(struct drm_device *dev)
 		BUG();
 }
 
-static bool
-intel_enable_blt(struct drm_device *dev)
-{
-	if (!HAS_BLT(dev))
-		return false;
-
-	/* The blitter was dysfunctional on early prototypes */
-	if (IS_GEN6(dev) && dev->pdev->revision < 8) {
-		DRM_INFO("BLT not supported on this pre-production hardware;"
-			 " graphics performance will be degraded.\n");
-		return false;
-	}
-
-	return true;
-}
-
 static void init_unused_ring(struct drm_device *dev, u32 base)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -4616,7 +4600,7 @@ int i915_gem_init_rings(struct drm_device *dev)
 			goto cleanup_render_ring;
 	}
 
-	if (intel_enable_blt(dev)) {
+	if (HAS_BLT(dev)) {
 		ret = intel_init_blt_ring_buffer(dev);
 		if (ret)
 			goto cleanup_bsd_ring;
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/3] drm/i915/vlv: remove pre-production hardware workaround
  2015-10-07  8:17 [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Jani Nikula
@ 2015-10-07  8:17 ` Jani Nikula
  2015-10-07 13:27   ` Ville Syrjälä
  2015-10-07  8:17 ` [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds Jani Nikula
  2015-10-07 13:23 ` [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Ville Syrjälä
  2 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2015-10-07  8:17 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 620d57e2526b..4e328f71a454 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -133,13 +133,6 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
 	}
 #endif
 
-	/* Early VLV doesn't have this */
-	if (IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) &&
-	    dev->pdev->revision < 0xb) {
-		DRM_DEBUG_DRIVER("disabling PPGTT on pre-B3 step VLV\n");
-		return 0;
-	}
-
 	if (INTEL_INFO(dev)->gen >= 8 && i915.enable_execlists)
 		return 2;
 	else
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds
  2015-10-07  8:17 [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Jani Nikula
  2015-10-07  8:17 ` [PATCH 2/3] drm/i915/vlv: " Jani Nikula
@ 2015-10-07  8:17 ` Jani Nikula
  2015-10-07  8:31   ` kbuild test robot
  2015-10-07 13:28   ` Ville Syrjälä
  2015-10-07 13:23 ` [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Ville Syrjälä
  2 siblings, 2 replies; 10+ messages in thread
From: Jani Nikula @ 2015-10-07  8:17 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 55 +++++++++++++++++------------------------
 1 file changed, 22 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 60d120c472ab..598ee4c8d86e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5061,32 +5061,27 @@ static int cherryview_rps_max_freq(struct drm_i915_private *dev_priv)
 	struct drm_device *dev = dev_priv->dev;
 	u32 val, rp0;
 
-	if (dev->pdev->revision >= 0x20) {
-		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
+	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
 
-		switch (INTEL_INFO(dev)->eu_total) {
-		case 8:
-				/* (2 * 4) config */
-				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
-				break;
-		case 12:
-				/* (2 * 6) config */
-				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
-				break;
-		case 16:
-				/* (2 * 8) config */
-		default:
-				/* Setting (2 * 8) Min RP0 for any other combination */
-				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
-				break;
-		}
-		rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
-	} else {
-		/* For pre-production hardware */
-		val = vlv_punit_read(dev_priv, PUNIT_GPU_STATUS_REG);
-		rp0 = (val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
-		       PUNIT_GPU_STATUS_MAX_FREQ_MASK;
+	switch (INTEL_INFO(dev)->eu_total) {
+	case 8:
+		/* (2 * 4) config */
+		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
+		break;
+	case 12:
+		/* (2 * 6) config */
+		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
+		break;
+	case 16:
+		/* (2 * 8) config */
+	default:
+		/* Setting (2 * 8) Min RP0 for any other combination */
+		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
+		break;
 	}
+
+	rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
+
 	return rp0;
 }
 
@@ -5105,15 +5100,9 @@ static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv)
 	struct drm_device *dev = dev_priv->dev;
 	u32 val, rp1;
 
-	if (dev->pdev->revision >= 0x20) {
-		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
-		rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
-	} else {
-		/* For pre-production hardware */
-		val = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS);
-		rp1 = ((val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
-		       PUNIT_GPU_STATUS_MAX_FREQ_MASK);
-	}
+	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
+	rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
+
 	return rp1;
 }
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds
  2015-10-07  8:17 ` [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds Jani Nikula
@ 2015-10-07  8:31   ` kbuild test robot
  2015-10-07 13:28   ` Ville Syrjälä
  1 sibling, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2015-10-07  8:31 UTC (permalink / raw)
  Cc: jani.nikula, intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2489 bytes --]

Hi Jani,

[auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore]

config: x86_64-randconfig-x006-201540 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_pm.c: In function 'cherryview_rps_guar_freq':
>> drivers/gpu/drm/i915/intel_pm.c:5187:21: warning: unused variable 'dev' [-Wunused-variable]
     struct drm_device *dev = dev_priv->dev;
                        ^

vim +/dev +5187 drivers/gpu/drm/i915/intel_pm.c

965cb130 Jani Nikula 2015-10-07  5171  
2b6b3a09 Deepak S    2014-05-27  5172  	return rp0;
2b6b3a09 Deepak S    2014-05-27  5173  }
2b6b3a09 Deepak S    2014-05-27  5174  
2b6b3a09 Deepak S    2014-05-27  5175  static int cherryview_rps_rpe_freq(struct drm_i915_private *dev_priv)
2b6b3a09 Deepak S    2014-05-27  5176  {
2b6b3a09 Deepak S    2014-05-27  5177  	u32 val, rpe;
2b6b3a09 Deepak S    2014-05-27  5178  
2b6b3a09 Deepak S    2014-05-27  5179  	val = vlv_punit_read(dev_priv, PUNIT_GPU_DUTYCYCLE_REG);
2b6b3a09 Deepak S    2014-05-27  5180  	rpe = (val >> PUNIT_GPU_DUTYCYCLE_RPE_FREQ_SHIFT) & PUNIT_GPU_DUTYCYCLE_RPE_FREQ_MASK;
2b6b3a09 Deepak S    2014-05-27  5181  
2b6b3a09 Deepak S    2014-05-27  5182  	return rpe;
2b6b3a09 Deepak S    2014-05-27  5183  }
2b6b3a09 Deepak S    2014-05-27  5184  
7707df4a Deepak S    2014-07-12  5185  static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv)
7707df4a Deepak S    2014-07-12  5186  {
095acd5f Deepak S    2015-01-17 @5187  	struct drm_device *dev = dev_priv->dev;
7707df4a Deepak S    2014-07-12  5188  	u32 val, rp1;
7707df4a Deepak S    2014-07-12  5189  
095acd5f Deepak S    2015-01-17  5190  	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
095acd5f Deepak S    2015-01-17  5191  	rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
965cb130 Jani Nikula 2015-10-07  5192  
7707df4a Deepak S    2014-07-12  5193  	return rp1;
7707df4a Deepak S    2014-07-12  5194  }
7707df4a Deepak S    2014-07-12  5195  

:::::: The code at line 5187 was first introduced by commit
:::::: 095acd5f8739aa8322820d460e617898baf092df drm/i915: New offset for reading frequencies on CHV.

:::::: TO: Deepak S <deepak.s@linux.intel.com>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 29726 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround
  2015-10-07  8:17 [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Jani Nikula
  2015-10-07  8:17 ` [PATCH 2/3] drm/i915/vlv: " Jani Nikula
  2015-10-07  8:17 ` [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds Jani Nikula
@ 2015-10-07 13:23 ` Ville Syrjälä
  2 siblings, 0 replies; 10+ messages in thread
From: Ville Syrjälä @ 2015-10-07 13:23 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Wed, Oct 07, 2015 at 11:17:44AM +0300, Jani Nikula wrote:
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 18 +-----------------
>  1 file changed, 1 insertion(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 52642aff1dab..1e67484fd5dc 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4558,22 +4558,6 @@ void i915_gem_init_swizzling(struct drm_device *dev)
>  		BUG();
>  }
>  
> -static bool
> -intel_enable_blt(struct drm_device *dev)
> -{
> -	if (!HAS_BLT(dev))
> -		return false;
> -
> -	/* The blitter was dysfunctional on early prototypes */
> -	if (IS_GEN6(dev) && dev->pdev->revision < 8) {

I'm not actually sure what the revi<->stepping mapping on SNB is. My SNB
is a D2 I believe, and it has rev=0x9, so 0x8 is probably D1. I think D2
was the first production stepping, and D1 may have gotten out as
samples. So this would perhaps affect D0 and older steppings, which seems
fine to me.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> -		DRM_INFO("BLT not supported on this pre-production hardware;"
> -			 " graphics performance will be degraded.\n");
> -		return false;
> -	}
> -
> -	return true;
> -}
> -
>  static void init_unused_ring(struct drm_device *dev, u32 base)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -4616,7 +4600,7 @@ int i915_gem_init_rings(struct drm_device *dev)
>  			goto cleanup_render_ring;
>  	}
>  
> -	if (intel_enable_blt(dev)) {
> +	if (HAS_BLT(dev)) {
>  		ret = intel_init_blt_ring_buffer(dev);
>  		if (ret)
>  			goto cleanup_bsd_ring;
> -- 
> 2.1.4

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] drm/i915/vlv: remove pre-production hardware workaround
  2015-10-07  8:17 ` [PATCH 2/3] drm/i915/vlv: " Jani Nikula
@ 2015-10-07 13:27   ` Ville Syrjälä
  2015-10-07 14:30     ` Daniel Vetter
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2015-10-07 13:27 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Wed, Oct 07, 2015 at 11:17:45AM +0300, Jani Nikula wrote:
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 620d57e2526b..4e328f71a454 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -133,13 +133,6 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
>  	}
>  #endif
>  
> -	/* Early VLV doesn't have this */
> -	if (IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) &&
> -	    dev->pdev->revision < 0xb) {
> -		DRM_DEBUG_DRIVER("disabling PPGTT on pre-B3 step VLV\n");
> -		return 0;
> -	}

IIRC B2 may have gotten out into the wild, so we can't kill this check
unfortunately. Well, unless it magically got fixed in the meantime. I
don't think anyone ever figured out what the problems was with PPGTT on
B2 and earlier.

So NAK, unless someone knows better.

> -
>  	if (INTEL_INFO(dev)->gen >= 8 && i915.enable_execlists)
>  		return 2;
>  	else
> -- 
> 2.1.4

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds
  2015-10-07  8:17 ` [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds Jani Nikula
  2015-10-07  8:31   ` kbuild test robot
@ 2015-10-07 13:28   ` Ville Syrjälä
  2015-10-07 14:32     ` Daniel Vetter
  1 sibling, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2015-10-07 13:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Wed, Oct 07, 2015 at 11:17:46AM +0300, Jani Nikula wrote:
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 55 +++++++++++++++++------------------------
>  1 file changed, 22 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 60d120c472ab..598ee4c8d86e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5061,32 +5061,27 @@ static int cherryview_rps_max_freq(struct drm_i915_private *dev_priv)
>  	struct drm_device *dev = dev_priv->dev;
>  	u32 val, rp0;
>  
> -	if (dev->pdev->revision >= 0x20) {

Yep. C0 is the first production stepping.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> -		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> +	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
>  
> -		switch (INTEL_INFO(dev)->eu_total) {
> -		case 8:
> -				/* (2 * 4) config */
> -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
> -				break;
> -		case 12:
> -				/* (2 * 6) config */
> -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
> -				break;
> -		case 16:
> -				/* (2 * 8) config */
> -		default:
> -				/* Setting (2 * 8) Min RP0 for any other combination */
> -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
> -				break;
> -		}
> -		rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
> -	} else {
> -		/* For pre-production hardware */
> -		val = vlv_punit_read(dev_priv, PUNIT_GPU_STATUS_REG);
> -		rp0 = (val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
> -		       PUNIT_GPU_STATUS_MAX_FREQ_MASK;
> +	switch (INTEL_INFO(dev)->eu_total) {
> +	case 8:
> +		/* (2 * 4) config */
> +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
> +		break;
> +	case 12:
> +		/* (2 * 6) config */
> +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
> +		break;
> +	case 16:
> +		/* (2 * 8) config */
> +	default:
> +		/* Setting (2 * 8) Min RP0 for any other combination */
> +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
> +		break;
>  	}
> +
> +	rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
> +
>  	return rp0;
>  }
>  
> @@ -5105,15 +5100,9 @@ static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv)
>  	struct drm_device *dev = dev_priv->dev;
>  	u32 val, rp1;
>  
> -	if (dev->pdev->revision >= 0x20) {
> -		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> -		rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
> -	} else {
> -		/* For pre-production hardware */
> -		val = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS);
> -		rp1 = ((val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
> -		       PUNIT_GPU_STATUS_MAX_FREQ_MASK);
> -	}
> +	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> +	rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
> +
>  	return rp1;
>  }
>  
> -- 
> 2.1.4

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] drm/i915/vlv: remove pre-production hardware workaround
  2015-10-07 13:27   ` Ville Syrjälä
@ 2015-10-07 14:30     ` Daniel Vetter
  2015-10-07 15:35       ` Ville Syrjälä
  0 siblings, 1 reply; 10+ messages in thread
From: Daniel Vetter @ 2015-10-07 14:30 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: Jani Nikula, intel-gfx

On Wed, Oct 07, 2015 at 04:27:24PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 07, 2015 at 11:17:45AM +0300, Jani Nikula wrote:
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_gtt.c | 7 -------
> >  1 file changed, 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > index 620d57e2526b..4e328f71a454 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -133,13 +133,6 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
> >  	}
> >  #endif
> >  
> > -	/* Early VLV doesn't have this */
> > -	if (IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) &&
> > -	    dev->pdev->revision < 0xb) {
> > -		DRM_DEBUG_DRIVER("disabling PPGTT on pre-B3 step VLV\n");
> > -		return 0;
> > -	}
> 
> IIRC B2 may have gotten out into the wild, so we can't kill this check
> unfortunately. Well, unless it magically got fixed in the meantime. I
> don't think anyone ever figured out what the problems was with PPGTT on
> B2 and earlier.

Note "into the wild" isn't valid imo - we've had snb workarounds that we
killed which made a few sdvs used by distros and oems broken. I applied it
anyway.

It's only for stuff that's sold in general that I'm counting as "shipped
hw".
-Daniel

> 
> So NAK, unless someone knows better.
> 
> > -
> >  	if (INTEL_INFO(dev)->gen >= 8 && i915.enable_execlists)
> >  		return 2;
> >  	else
> > -- 
> > 2.1.4
> 
> -- 
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> 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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds
  2015-10-07 13:28   ` Ville Syrjälä
@ 2015-10-07 14:32     ` Daniel Vetter
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Vetter @ 2015-10-07 14:32 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: Jani Nikula, intel-gfx

On Wed, Oct 07, 2015 at 04:28:48PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 07, 2015 at 11:17:46AM +0300, Jani Nikula wrote:
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_pm.c | 55 +++++++++++++++++------------------------
> >  1 file changed, 22 insertions(+), 33 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > index 60d120c472ab..598ee4c8d86e 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -5061,32 +5061,27 @@ static int cherryview_rps_max_freq(struct drm_i915_private *dev_priv)
> >  	struct drm_device *dev = dev_priv->dev;
> >  	u32 val, rp0;
> >  
> > -	if (dev->pdev->revision >= 0x20) {
> 
> Yep. C0 is the first production stepping.
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Applied both patch 1&3 from this series, with gcc appeased on this patch
here.

Thanks, Daniel
> 
> > -		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> > +	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> >  
> > -		switch (INTEL_INFO(dev)->eu_total) {
> > -		case 8:
> > -				/* (2 * 4) config */
> > -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
> > -				break;
> > -		case 12:
> > -				/* (2 * 6) config */
> > -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
> > -				break;
> > -		case 16:
> > -				/* (2 * 8) config */
> > -		default:
> > -				/* Setting (2 * 8) Min RP0 for any other combination */
> > -				rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
> > -				break;
> > -		}
> > -		rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
> > -	} else {
> > -		/* For pre-production hardware */
> > -		val = vlv_punit_read(dev_priv, PUNIT_GPU_STATUS_REG);
> > -		rp0 = (val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
> > -		       PUNIT_GPU_STATUS_MAX_FREQ_MASK;
> > +	switch (INTEL_INFO(dev)->eu_total) {
> > +	case 8:
> > +		/* (2 * 4) config */
> > +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT);
> > +		break;
> > +	case 12:
> > +		/* (2 * 6) config */
> > +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT);
> > +		break;
> > +	case 16:
> > +		/* (2 * 8) config */
> > +	default:
> > +		/* Setting (2 * 8) Min RP0 for any other combination */
> > +		rp0 = (val >> FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT);
> > +		break;
> >  	}
> > +
> > +	rp0 = (rp0 & FB_GFX_FREQ_FUSE_MASK);
> > +
> >  	return rp0;
> >  }
> >  
> > @@ -5105,15 +5100,9 @@ static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv)
> >  	struct drm_device *dev = dev_priv->dev;
> >  	u32 val, rp1;
> >  
> > -	if (dev->pdev->revision >= 0x20) {
> > -		val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> > -		rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
> > -	} else {
> > -		/* For pre-production hardware */
> > -		val = vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS);
> > -		rp1 = ((val >> PUNIT_GPU_STATUS_MAX_FREQ_SHIFT) &
> > -		       PUNIT_GPU_STATUS_MAX_FREQ_MASK);
> > -	}
> > +	val = vlv_punit_read(dev_priv, FB_GFX_FMAX_AT_VMAX_FUSE);
> > +	rp1 = (val & FB_GFX_FREQ_FUSE_MASK);
> > +
> >  	return rp1;
> >  }
> >  
> > -- 
> > 2.1.4
> 
> -- 
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> 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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] drm/i915/vlv: remove pre-production hardware workaround
  2015-10-07 14:30     ` Daniel Vetter
@ 2015-10-07 15:35       ` Ville Syrjälä
  0 siblings, 0 replies; 10+ messages in thread
From: Ville Syrjälä @ 2015-10-07 15:35 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Jani Nikula, intel-gfx

On Wed, Oct 07, 2015 at 04:30:06PM +0200, Daniel Vetter wrote:
> On Wed, Oct 07, 2015 at 04:27:24PM +0300, Ville Syrjälä wrote:
> > On Wed, Oct 07, 2015 at 11:17:45AM +0300, Jani Nikula wrote:
> > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/i915_gem_gtt.c | 7 -------
> > >  1 file changed, 7 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > index 620d57e2526b..4e328f71a454 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > @@ -133,13 +133,6 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
> > >  	}
> > >  #endif
> > >  
> > > -	/* Early VLV doesn't have this */
> > > -	if (IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) &&
> > > -	    dev->pdev->revision < 0xb) {
> > > -		DRM_DEBUG_DRIVER("disabling PPGTT on pre-B3 step VLV\n");
> > > -		return 0;
> > > -	}
> > 
> > IIRC B2 may have gotten out into the wild, so we can't kill this check
> > unfortunately. Well, unless it magically got fixed in the meantime. I
> > don't think anyone ever figured out what the problems was with PPGTT on
> > B2 and earlier.
> 
> Note "into the wild" isn't valid imo - we've had snb workarounds that we
> killed which made a few sdvs used by distros and oems broken. I applied it
> anyway.
> 
> It's only for stuff that's sold in general that I'm counting as "shipped
> hw".

My statement was meant as "shipped". Poor choice of words.

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-10-07 15:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-07  8:17 [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Jani Nikula
2015-10-07  8:17 ` [PATCH 2/3] drm/i915/vlv: " Jani Nikula
2015-10-07 13:27   ` Ville Syrjälä
2015-10-07 14:30     ` Daniel Vetter
2015-10-07 15:35       ` Ville Syrjälä
2015-10-07  8:17 ` [PATCH 3/3] drm/i915/chv: remove pre-production hardware workarounds Jani Nikula
2015-10-07  8:31   ` kbuild test robot
2015-10-07 13:28   ` Ville Syrjälä
2015-10-07 14:32     ` Daniel Vetter
2015-10-07 13:23 ` [PATCH 1/3] drm/i915/snb: remove pre-production hardware workaround Ville Syrjälä

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.