Bug 75077

Summary: [Bisected] Apple miniDP-to-DP and HDMI can be detected but can't light up
Product: DRI Reporter: Qingshuai Tian <qingshuai.tian>
Component: DRM/IntelAssignee: Jesse Barnes <jbarnes>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: major    
Priority: high CC: guang.a.yang, intel-gfx-bugs, jinxianx.guo
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg after run case "testdisplay -i "&"testdisplay -a"
none
dmesg of the kernel at first bad commit with HDMI connected none

Description Qingshuai Tian 2014-02-17 03:17:18 UTC
Created attachment 94184 [details]
dmesg after run case "testdisplay -i "&"testdisplay -a"

Environment:
-------------------
  Kernel: (drm-intel-next-queued) 4c0e552882114d1edb588242d45035246ab078a0
  Hardware name: Apple Inc. MacBookPro10,2/Mac-AFD8A9D944EA4843, 
  BIOS MBP102.88Z.0106.B03.1211161133 11/16/2012

Description:
------------------------
When Apple boot up with eDP and miniDP-to-DP connected, the eDP monitor can be lighted up correctly, while the DP monitor was black without any output. 

But when I run case "testdisplay -i", it shows:
 Connectors:
 id      encoder status          type    size (mm)       modes
 12      11      connected       eDP     290x180         1
   modes:
   name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot flags type clock
 [0]  2560x1600 60 2560 2608 2640 2720 1600 1603 1609 1646 0x9 0x48 268500
 9       0       disconnected    VGA     0x0             0
 20      0       disconnected    HDMI-A  0x0             0
 22      0       disconnected    DP      0x0             0
 24      0       disconnected    HDMI-A  0x0             0
 26      0       disconnected    HDMI-A  0x0             0
 28      0       connected       DP      470x300         11
   modes:
   name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot flags type clock
 [0]  1680x1050 60 1680 1728 1760 1840 1050 1053 1059 1080 0x9 0x48 119000
 [1]  1280x1024 75 1280 1296 1440 1688 1024 1025 1028 1066 0x5 0x40 135000
 [2]  1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x40 108000
 [3]  1152x864 75 1152 1216 1344 1600 864 865 868 900 0x5 0x40 108000
 [4]  1024x768 75 1024 1040 1136 1312 768 769 772 800 0x5 0x40 78800
 [5]  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
 [6]  800x600 75 800 816 896 1056 600 601 604 625 0x5 0x40 49500
 [7]  800x600 60 800 840 968 1056 600 601 605 628 0x5 0x40 40000
 [8]  640x480 75 640 656 720 840 480 481 484 500 0xa 0x40 31500
 [9]  640x480 60 640 656 752 800 480 490 492 525 0xa 0x40 25200
 [10]  720x400 70 720 738 846 900 400 412 414 449 0x6 0x40 28320
 30      0       disconnected    DP      0x0             0

And when I run case "testdisplay -a", the DP monitor can show all modes correctly.
After I start X, the eDP can show the X window correctly , but the DP can't either. 

Test Step:
--------------------
1. connect miniDP-to-DP 
2. Boot up 
3. testdisplay -i 
4. testdisplay -a
Comment 1 Chris Wilson 2014-02-17 08:23:25 UTC
As this is a regression, please perform a bisection.
Comment 2 Qingshuai Tian 2014-02-18 06:10:47 UTC
I finished the bisect and it shows:

eb1bfe807cb7b62a326fa20df5e3118a32c6f923 is the first bad commit
commit eb1bfe807cb7b62a326fa20df5e3118a32c6f923
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Feb 12 12:26:25 2014 -0800

    drm/i915: allow re-use BIOS connector config for initial fbdev config v3

    The BIOS or boot loader will generally create an initial display
    configuration for us that includes some set of active pipes and
    displays.  This routine tries to figure out which pipes and connectors
    are active and stuffs them into the crtcs and modes array given to us by
    the drm_fb_helper code.

    The overall sequence is:
      intel_fbdev_init - from driver load
        intel_fbdev_init_bios - initialize the intel_fbdev using BIOS data
        drm_fb_helper_init - build fb helper structs
        drm_fb_helper_single_add_all_connectors - more fb helper structs
      intel_fbdev_initial_config - apply the config
        drm_fb_helper_initial_config - call ->probe then register_framebuffer()
            drm_setup_crtcs - build crtc config for fbdev
              intel_fb_initial_config - find active connectors etc
            drm_fb_helper_single_fb_probe - set up fbdev
              intelfb_create - re-use or alloc fb, build out fbdev structs

    v2: use BIOS connector config unconditionally if possible (Daniel)
        check for crtc cloning and reject (Daniel)
        fix up comments (Daniel)
    v3: use command line args and preferred modes first (Ville)

    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    [danvet: Re-add the WARN_ON for a missing encoder crtc - the state
    sanitizer should take care of this. And spell-ocd the comments.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

:040000 040000 dbe7ef821ba404c994fbc579461b7e0d4febf10a 1b40c56483f03c15ae495a85a78fe740beeeb0e9 M        drivers
Comment 3 Qingshuai Tian 2014-02-19 06:33:00 UTC
Created attachment 94326 [details]
dmesg of the kernel at first bad commit with HDMI connected

This problem also appeared when connected with HDMI port. I added the dmesg in the attachment. Hope it's helpful.
Comment 4 Daniel Vetter 2014-03-03 14:25:34 UTC
*** Bug 75552 has been marked as a duplicate of this bug. ***
Comment 5 Daniel Vetter 2014-03-03 14:26:30 UTC
*** Bug 75246 has been marked as a duplicate of this bug. ***
Comment 6 Jesse Barnes 2014-03-04 18:42:05 UTC
So testdisplay works properly on the DP output even though it wasn't enabled at boot time?

Once X starts, can you use xrandr to enable the DP port?
Comment 7 Jesse Barnes 2014-03-04 18:42:59 UTC
Ah Daniel already marked this as a dupe.
Comment 8 Daniel Vetter 2014-03-04 19:16:30 UTC

*** This bug has been marked as a duplicate of bug 75552 ***
Comment 9 Jari Tahvanainen 2016-10-07 10:13:41 UTC
Closing verified as duplicate of closed+verified.

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.