looks it's not that easy as I thought.
This change is for https://bugs.freedesktop.org/show_bug.cgi?id=102508 , and the hardware configuration is

* 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:591d] (rev 04)
* Dell Thunderbolt BME dock : http://www.dell.com/support/article/us/en/04/sln301105/dell-thunderbolt-dock--tb16--information-and-specifications?lang=en
* internal native monitor is 4K, another 2 4K monitors are plugged behind BME dock

This patch could let this setting work, but looks it not the correct way.
Not see the the relevant math in original code of commit b321803dfb and ac484963f9 .
Does someone know how the original value 8192 be calculated out?
So that the way might could be followed for this new change.

Thanks.

On Thu, Dec 7, 2017 at 11:32 PM, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
On Thu, Dec 07, 2017 at 05:26:00PM +0800, Alex Tu wrote:
> Rrefer to another patch [1] on mesa to extend width/height to 16384.
> For issue :
>  - https://bugs.freedesktop.org/show_bug.cgi?id=102508
>  - LP: #1714178 Triple monitor display failed with Dell Dock (HiDPI)
>
> [1] https://patchwork.freedesktop.org/patch/124918/
>
> Signed-off-by: Alex Tu <alex.tu@canonical.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 47a2f6acee50..556fa57b18b8 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -13905,7 +13905,7 @@ u32 intel_fb_pitch_limit(struct drm_i915_private *dev_priv,
>               /* "The stride in bytes must not exceed the of the size of 8K
>                *  pixels and 32K bytes."

The spec queote clearly says the patch is wrong. Either that or the spec
quote is outdated.

>                */
> -             return min(8192 * cpp, 32768);
> +             return min(16384 * cpp, 65536);
>       } else if (gen >= 5 && !HAS_GMCH_DISPLAY(dev_priv)) {
>               return 32*1024;
>       } else if (gen >= 4) {
> @@ -14604,8 +14604,8 @@ int intel_modeset_init(struct drm_device *dev)
>               dev->mode_config.max_width = 4096;
>               dev->mode_config.max_height = 4096;
>       } else {
> -             dev->mode_config.max_width = 8192;
> -             dev->mode_config.max_height = 8192;
> +             dev->mode_config.max_width = 16384;
> +             dev->mode_config.max_height = 16384;

Even if this would be correct (which it's not for most platforms at
least, not quite sure about the very latest hardware), anyone doing
this should at least do a cursory check of the relevant math in the
driver to make seure we don't end up with integer overflows.

>       }
>
>       if (IS_I845G(dev_priv) || IS_I865G(dev_priv)) {
> --
> 2.11.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

--
Ville Syrjälä
Intel OTC