Message ID | 20170224114306.4400-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Feb 24, 2017 at 12:22:35PM -0000, Patchwork wrote: > == Series Details == > > Series: drm/i915/fbdev: Stop repeating tile configuration on stagnation > URL : https://patchwork.freedesktop.org/series/20203/ > State : success > > == Summary == > > Series 20203v1 drm/i915/fbdev: Stop repeating tile configuration on stagnation > https://patchwork.freedesktop.org/api/1.0/series/20203/revisions/1/mbox/ > > fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 > fi-bsw-n3050 total:278 pass:239 dwarn:0 dfail:0 fail:0 skip:39 > fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 > fi-bxt-t5700 total:108 pass:95 dwarn:0 dfail:0 fail:0 skip:12 > fi-byt-j1900 total:278 pass:251 dwarn:0 dfail:0 fail:0 skip:27 > fi-byt-n2820 total:278 pass:247 dwarn:0 dfail:0 fail:0 skip:31 > fi-hsw-4770 total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 > fi-hsw-4770r total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 > fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 > fi-ivb-3520m total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 > fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 > fi-kbl-7500u total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 > fi-skl-6260u total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 > fi-skl-6700hq total:278 pass:261 dwarn:0 dfail:0 fail:0 skip:17 > fi-skl-6700k total:278 pass:256 dwarn:4 dfail:0 fail:0 skip:18 > fi-skl-6770hq total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 > fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 > fi-snb-2600 total:278 pass:249 dwarn:0 dfail:0 fail:0 skip:29 Thanks for finding, reporting, testing and reviewing! Applied, -Chris
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c index 041322fef607..f7e9a4e69595 100644 --- a/drivers/gpu/drm/i915/intel_fbdev.c +++ b/drivers/gpu/drm/i915/intel_fbdev.c @@ -348,14 +348,13 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper, bool *enabled, int width, int height) { struct drm_i915_private *dev_priv = to_i915(fb_helper->dev); - unsigned long conn_configured, mask; + unsigned long conn_configured, conn_seq, mask; unsigned int count = min(fb_helper->connector_count, BITS_PER_LONG); int i, j; bool *save_enabled; bool fallback = true; int num_connectors_enabled = 0; int num_connectors_detected = 0; - int pass = 0; save_enabled = kcalloc(count, sizeof(bool), GFP_KERNEL); if (!save_enabled) @@ -365,6 +364,7 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper, mask = GENMASK(count - 1, 0); conn_configured = 0; retry: + conn_seq = conn_configured; for (i = 0; i < count; i++) { struct drm_fb_helper_connector *fb_conn; struct drm_connector *connector; @@ -378,7 +378,7 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper, if (conn_configured & BIT(i)) continue; - if (pass == 0 && !connector->has_tile) + if (conn_seq == 0 && !connector->has_tile) continue; if (connector->status == connector_status_connected) @@ -489,10 +489,8 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper, conn_configured |= BIT(i); } - if ((conn_configured & mask) != mask) { - pass++; + if ((conn_configured & mask) != mask && conn_configured != conn_seq) goto retry; - } /* * If the BIOS didn't enable everything it could, fall back to have the
If we cease making progress in finding matching outputs for a tiled configuration, stop looping over the remaining unconfigured outputs. v2: Use conn_seq (instead of pass) to only apply tile configuration on first pass. Fixes: b0ee9e7fa5b4 ("drm/fb: add support for tiled monitor configurations. (v2)") Cc: Tomasz Lis <tomasz.lis@intel.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Sean Paul <seanpaul@chromium.org> Cc: <stable@vger.kernel.org> # v3.19+ Reviewed-by: Tomasz Lis <tomasz.lis@intel.com> --- drivers/gpu/drm/i915/intel_fbdev.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)