[1/2] drm/i915: Bump skl+ max plane width to 5k for linear/x-tiled
diff mbox series

Message ID 20190905135044.2001-1-ville.syrjala@linux.intel.com
State New
Headers show
Series
  • [1/2] drm/i915: Bump skl+ max plane width to 5k for linear/x-tiled
Related show

Commit Message

Ville Syrjälä Sept. 5, 2019, 1:50 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

The officially validated plane width limit is 4k on skl+, however
we already had people using 5k displays before we started to enforce
the limit. Also it seems Windows allows 5k resolutions as well
(though not sure if they do it with one plane or two).

According to hw folks 5k should work with the possible
exception of the following features:
- Ytile (already limited to 4k)
- FP16 (already limited to 4k)
- render compression (already limited to 4k)
- KVMR sprite and cursor (don't care)
- horizontal panning (need to verify this)
- pipe and plane scaling (need to verify this)

So apart from last two items on that list we are already
fine. We should really verify what happens with those last
two items but I don't have a 5k display on hand atm so it'll
have to wait.

In the meantime let's just bump the limit back up to 5k since
several users have already been using it without apparent issues.
At least we'll be no worse off than we were prior to lowering
the limits.

Cc: Leho Kraav <leho@kraav.com>
Cc: Sean Paul <sean@poorly.run>
Cc: José Roberto de Souza <jose.souza@intel.com>
Fixes: 372b9ffb5799 ("drm/i915: Fix skl+ max plane width")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111501
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

Comments

Maarten Lankhorst Sept. 18, 2019, 2:09 p.m. UTC | #1
Op 05-09-2019 om 15:50 schreef Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The officially validated plane width limit is 4k on skl+, however
> we already had people using 5k displays before we started to enforce
> the limit. Also it seems Windows allows 5k resolutions as well
> (though not sure if they do it with one plane or two).
>
> According to hw folks 5k should work with the possible
> exception of the following features:
> - Ytile (already limited to 4k)
> - FP16 (already limited to 4k)
> - render compression (already limited to 4k)
> - KVMR sprite and cursor (don't care)
> - horizontal panning (need to verify this)
> - pipe and plane scaling (need to verify this)
>
> So apart from last two items on that list we are already
> fine. We should really verify what happens with those last
> two items but I don't have a 5k display on hand atm so it'll
> have to wait.
>
> In the meantime let's just bump the limit back up to 5k since
> several users have already been using it without apparent issues.
> At least we'll be no worse off than we were prior to lowering
> the limits.
>
> Cc: Leho Kraav <leho@kraav.com>
> Cc: Sean Paul <sean@poorly.run>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Fixes: 372b9ffb5799 ("drm/i915: Fix skl+ max plane width")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111501
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 06cf2171474d..4e63342ea597 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3282,7 +3282,20 @@ static int skl_max_plane_width(const struct drm_framebuffer *fb,
>  	switch (fb->modifier) {
>  	case DRM_FORMAT_MOD_LINEAR:
>  	case I915_FORMAT_MOD_X_TILED:
> -		return 4096;
> +		/*
> +		 * Validated limit is 4k, but has 5k should
> +		 * work apart from the following features:
> +		 * - Ytile (already limited to 4k)
> +		 * - FP16 (already limited to 4k)
> +		 * - render compression (already limited to 4k)
> +		 * - KVMR sprite and cursor (don't care)
> +		 * - horizontal panning (TODO verify this)
> +		 * - pipe and plane scaling (TODO verify this)
> +		 */
> +		if (cpp == 8)
> +			return 4096;
> +		else
> +			return 5120;
>  	case I915_FORMAT_MOD_Y_TILED_CCS:
>  	case I915_FORMAT_MOD_Yf_TILED_CCS:
>  		/* FIXME AUX plane? */

Also r-b, forgot to add it in patch 2. :)

Patch 2 wil need some tweaking for bigjoiner, but should be ok otherwise.
Sean Paul Sept. 18, 2019, 3:27 p.m. UTC | #2
On Thu, Sep 05, 2019 at 04:50:43PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> The officially validated plane width limit is 4k on skl+, however
> we already had people using 5k displays before we started to enforce
> the limit. Also it seems Windows allows 5k resolutions as well
> (though not sure if they do it with one plane or two).
> 
> According to hw folks 5k should work with the possible
> exception of the following features:
> - Ytile (already limited to 4k)
> - FP16 (already limited to 4k)
> - render compression (already limited to 4k)
> - KVMR sprite and cursor (don't care)
> - horizontal panning (need to verify this)
> - pipe and plane scaling (need to verify this)
> 
> So apart from last two items on that list we are already
> fine. We should really verify what happens with those last
> two items but I don't have a 5k display on hand atm so it'll
> have to wait.
> 
> In the meantime let's just bump the limit back up to 5k since
> several users have already been using it without apparent issues.
> At least we'll be no worse off than we were prior to lowering
> the limits.
> 
> Cc: Leho Kraav <leho@kraav.com>
> Cc: Sean Paul <sean@poorly.run>

Great, thank you!

Reviewed-by: Sean Paul <sean@poorly.run>

> Cc: José Roberto de Souza <jose.souza@intel.com>
> Fixes: 372b9ffb5799 ("drm/i915: Fix skl+ max plane width")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111501
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 06cf2171474d..4e63342ea597 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3282,7 +3282,20 @@ static int skl_max_plane_width(const struct drm_framebuffer *fb,
>  	switch (fb->modifier) {
>  	case DRM_FORMAT_MOD_LINEAR:
>  	case I915_FORMAT_MOD_X_TILED:
> -		return 4096;
> +		/*
> +		 * Validated limit is 4k, but has 5k should
> +		 * work apart from the following features:
> +		 * - Ytile (already limited to 4k)
> +		 * - FP16 (already limited to 4k)
> +		 * - render compression (already limited to 4k)
> +		 * - KVMR sprite and cursor (don't care)
> +		 * - horizontal panning (TODO verify this)
> +		 * - pipe and plane scaling (TODO verify this)
> +		 */
> +		if (cpp == 8)
> +			return 4096;
> +		else
> +			return 5120;
>  	case I915_FORMAT_MOD_Y_TILED_CCS:
>  	case I915_FORMAT_MOD_Yf_TILED_CCS:
>  		/* FIXME AUX plane? */
> -- 
> 2.21.0
>

Patch
diff mbox series

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 06cf2171474d..4e63342ea597 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -3282,7 +3282,20 @@  static int skl_max_plane_width(const struct drm_framebuffer *fb,
 	switch (fb->modifier) {
 	case DRM_FORMAT_MOD_LINEAR:
 	case I915_FORMAT_MOD_X_TILED:
-		return 4096;
+		/*
+		 * Validated limit is 4k, but has 5k should
+		 * work apart from the following features:
+		 * - Ytile (already limited to 4k)
+		 * - FP16 (already limited to 4k)
+		 * - render compression (already limited to 4k)
+		 * - KVMR sprite and cursor (don't care)
+		 * - horizontal panning (TODO verify this)
+		 * - pipe and plane scaling (TODO verify this)
+		 */
+		if (cpp == 8)
+			return 4096;
+		else
+			return 5120;
 	case I915_FORMAT_MOD_Y_TILED_CCS:
 	case I915_FORMAT_MOD_Yf_TILED_CCS:
 		/* FIXME AUX plane? */