Bug 41919

Summary: [IVB] switching clone/extended mode on 2 displays gets blank screen, with 3-pipe code
Product: DRI Reporter: Guang Yang <guang.a.yang>
Component: DRM/IntelAssignee: Jesse Barnes <jbarnes>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: high CC: ben, chris, daniel, eugeni, jbarnes, yi.sun
Version: unspecifiedKeywords: regression
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 44622    
Attachments:
Description Flags
dmesg.txt is the bug's dmesg information none

Description Guang Yang 2011-10-18 01:38:08 UTC
System Environment:
--------------------------
Platform:        IvyBridge
Kernel: (ivb-3-pipe)344f5205ecf58b0c56f7d6439621fa5467e9881e

Bug detailed description:
-------------------------
We want to test swtiching desktop mode between clone and extended with two displays,when we switch from one mode to anoter after starting the gnome-session,the two screen are black,and vice versa.
Comment 1 Guang Yang 2011-10-18 01:44:55 UTC
Created attachment 52457 [details]
dmesg.txt is the bug's dmesg information
Comment 2 Gordon Jin 2011-10-18 17:54:57 UTC
So this is regression caused by 3-pipe code.
Comment 3 Jesse Barnes 2011-11-15 10:23:12 UTC
I can't reproduce this on my current ivb-3-pipe branch using DP and VGA.  Can you confirm?
Comment 4 Guang Yang 2011-11-15 20:21:05 UTC
(In reply to comment #3)
> I can't reproduce this on my current ivb-3-pipe branch using DP and VGA.  Can
> you confirm?

I have try the current ivb-3-pipe branch ,and can't reproduce this issue.
Comment 5 Yi Sun 2012-01-09 01:58:52 UTC
Hi Jesse,

I found the following commit on your ivb-3-pipe branch could fix this issue. But itn't on the upstream and you didn't sent it to the mail list.


commit ebf9f228b2be88635c90549e9023e9a385360118
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Oct 20 14:55:49 2011 -0700

    drm/fb: don't try to pan if the fb hasn't moved relative to the CRTC

    This just causes unnecessary set_config calls.

    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index f7c6854..4dd81f3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -739,7 +739,8 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var,
        modeset->x = var->xoffset;
        modeset->y = var->yoffset;

-       if (modeset->num_connectors) {
+       if (((modeset->x != crtc->x) || (modeset->y != crtc->y)) &&
+           modeset->num_connectors) {
            ret = crtc->funcs->set_config(modeset);
            if (!ret) {
                info->var.xoffset = var->xoffset;
Comment 6 Jesse Barnes 2012-01-11 10:54:30 UTC
Hm that patch shouldn't have affected functionality, just performance a little...  current drm-intel-next still has problems w/o the change?
Comment 7 Guang Yang 2012-01-11 19:54:18 UTC
(In reply to comment #6)
> Hm that patch shouldn't have affected functionality, just performance a
> little...  current drm-intel-next still has problems w/o the change?
I have try the latest drm-intel-next,and can't reproduce this issue.
Comment 8 Jesse Barnes 2012-01-12 09:56:14 UTC
Ok good, thanks for confirming.
Comment 9 Yi Sun 2012-01-15 22:47:28 UTC
Ok, let's close this bug. The issue doesn't exist on the latest -next branch.
Comment 10 Jari Tahvanainen 2016-11-03 11:58:21 UTC
Closing verified+fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.