Summary: | [IVB HDMI] PCH HDMI (0x000e1160) enabled on transcoder A, should be disabled - hdmi detect failure? | ||
---|---|---|---|
Product: | DRI | Reporter: | lacyc3 |
Component: | DRM/Intel | Assignee: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | fritsch, intel-gfx-bugs, lacyc3, sivakumar.thulasimani |
Version: | unspecified | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | IVB | i915 features: | display/DP, display/eDP, display/HDMI |
Attachments: |
Created attachment 112123 [details]
dmesg - Ubuntu 15.04 with kernel 3.18.0-generic
Created attachment 112124 [details]
dmesg - Ubuntu 14.04 with kernel 3.13.0-32-generic
Created attachment 112125 [details]
dmesg - Ubuntu 13.04 with kernel 3.8.0-19-generic
Created attachment 112126 [details]
dmesg - Centos 7 with kernel 3.10-123.el7.x64_64
Created attachment 112127 [details]
dmesg - Fedora 21 with kernel 3.17.4-301.fc21.x86_64
Created attachment 112128 [details]
(works) dmesg - Debian 7.7 with kernel 3.2.0-4
Could you please provide a log booting kernel with drm.debug=0xe? Just for any latest. don't need all distros. If possible, could you please try latest drm-intel-nightly branch? Can you also provide the output of lspci -nn? Could you also please attach Xorg.0.log? Thanks, Rodrigo. Created attachment 112221 [details]
Dmesg - drm.debug - 14.10
Created attachment 112222 [details]
Xorg.0.log - 14.10
# lspci -nn 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller [8086:0150] (rev 09) 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) 00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04) 00:1a.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 [8086:1c2d] (rev 04) 00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04) 00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b4) 00:1c.4 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 [8086:1c18] (rev b4) 00:1d.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 04) 00:1f.0 ISA bridge [0601]: Intel Corporation H61 Express Chipset Family LPC Controller [8086:1c5c] (rev 04) 00:1f.2 SATA controller [0106]: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller [8086:1c02] (rev 04) 00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 04) 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06) I installed nightly form: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/current/ is it ok? Problem still exists. Created attachment 112223 [details]
Dmesg - nightly-drm - drm.debug - 14.10
Created attachment 112224 [details]
Xorg.0.log - nightly-drm - drm.debug - 14.10
So we have an active pipe and PLL when the driver starts: [ 1.387215] [drm:ironlake_init_pch_refclk] has_panel 0 has_lvds 0 has_ck505 0 [ 1.387229] [drm:intel_modeset_readout_hw_state] [CRTC:19] hw state readout: enabled [ 1.387230] [drm:intel_modeset_readout_hw_state] [CRTC:23] hw state readout: disabled [ 1.387231] [drm:intel_modeset_readout_hw_state] [CRTC:27] hw state readout: disabled [ 1.387236] [drm:intel_modeset_readout_hw_state] PCH DPLL A hw state readout: crtc_mask 0x00000001, on 1 [ 1.387240] [drm:intel_modeset_readout_hw_state] PCH DPLL B hw state readout: crtc_mask 0x00000000, on 0 [ 1.387242] [drm:intel_modeset_readout_hw_state] [ENCODER:30:DAC-30] hw state readout: disabled, pipe A [ 1.387245] [drm:intel_modeset_readout_hw_state] [CONNECTOR:29:VGA-1] hw state readout: disabled [ 1.387511] input: SIGMACHIP Usb Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/0003:1C4F:0032.0001/input/input5 [ 1.387617] hid-generic 0003:1C4F:0032.0001: input,hidraw0: USB HID v1.10 Mouse [SIGMACHIP Usb Mouse] on usb-0000:00:1d.0-1.5/input0 [ 1.403367] ------------[ cut here ]------------ [ 1.403394] WARNING: CPU: 1 PID: 135 at /home/apw/COD/linux/drivers/gpu/drm/i915/intel_display.c:1455 assert_pch_hdmi_disabled+0xec/0x180 [i915]() [ 1.403395] PCH HDMI (0x000e1160) enabled on transcoder A, should be disabled [ 1.403396] Modules linked in: hid_generic usbhid hid i915(+) psmouse i2c_algo_bit drm_kms_helper ahci r8169 drm libahci mii video which is expected, but then we complain when we see that the HDMI port is still active as we try to disable CRTCs at init time. But then we don't even see an HDMI connector in your readout_hw_state() list... Can you try the patch below to intel_display.c and see what happens? Maybe the VBT is telling us this port is an eDP port, or the detect strap isn't correct. @@ -12604,8 +12623,14 @@ static void intel_setup_outputs(struct drm_device *dev) if (I915_READ(PCH_HDMIC) & SDVO_DETECTED) intel_hdmi_init(dev, PCH_HDMIC, PORT_C); - if (!dpd_is_edp && I915_READ(PCH_HDMID) & SDVO_DETECTED) + if (!dpd_is_edp && I915_READ(PCH_HDMID) & SDVO_DETECTED) { + DRM_DEBUG_KMS("init HDMI D\n"); intel_hdmi_init(dev, PCH_HDMID, PORT_D); + } else { + DRM_DEBUG_KMS("skipping HDMI D: dpd_is_edp: %d, " + "detected: %d\n", dpd_is_edp, + I915_READ(PCH_HDMID) & SDVO_DETECTED); + } if (I915_READ(PCH_DP_C) & DP_DETECTED) intel_dp_init(dev, PCH_DP_C, PORT_C); Yes, I can, but it takes some time. Created attachment 115536 [details]
dmesg - Linux 4.1-rc2
Sorry for the slow reply. Bug still exists in Linux 4.1-rc2. I made that modifications, plus enabled some more debug options in kernel.
I hope, it helps.
Created attachment 116055 [details]
Linux 4.1-rc3
Linux 4.1-rc3 still affected.
Ah, no eDP and so dpd_is_edp lies. Try diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index ede580407450..bac218fe9347 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -14152,17 +14152,19 @@ static void intel_setup_outputs(struct drm_device *dev) intel_dp_init(dev, PCH_DP_B, PORT_B); } + if (I915_READ(PCH_DP_C) & DP_DETECTED) + intel_dp_init(dev, PCH_DP_C, PORT_C); + + if (I915_READ(PCH_DP_D) & DP_DETECTED) { + if (!intel_dp_init(dev, PCH_DP_D, PORT_D)) + dpd_is_edp = false; + } + if (I915_READ(PCH_HDMIC) & SDVO_DETECTED) intel_hdmi_init(dev, PCH_HDMIC, PORT_C); if (!dpd_is_edp && I915_READ(PCH_HDMID) & SDVO_DETECTED) intel_hdmi_init(dev, PCH_HDMID, PORT_D); - - if (I915_READ(PCH_DP_C) & DP_DETECTED) - intel_dp_init(dev, PCH_DP_C, PORT_C); - - if (I915_READ(PCH_DP_D) & DP_DETECTED) - intel_dp_init(dev, PCH_DP_D, PORT_D); } else if (IS_VALLEYVIEW(dev)) { /* * The DP_DETECTED bit is the latched state of the DDC It is not compiling. drivers/gpu/drm/i915/intel_display.c: In function 'intel_setup_outputs': drivers/gpu/drm/i915/intel_display.c:13986:4: error: invalid use of void expression if (!intel_dp_init(dev, PCH_DP_D, PORT_D)) ^ Linux 4.2.0-rc3 can you confirm if BIOS brings up display on HDMI ? i.e are you able to see content during boot/bios screen ? it is strange that VBIOS enables hdmi even though it is configured for eDP in VBT so we must clear first how it works before the driver is loaded. Yes, I confirm, it works. Additionally, I tested it on Windows 10 and it works. Presumed fixed in current drm-intel-nightly. Please reopen if the problem persists with that. |
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.
Created attachment 112122 [details] dmesg - Ubuntu 14.10 with kernel 3.16.0-29-generic If I connect display with HDMI connector, display shuts down. Dmesg shows the following message: [ 1.413309] WARNING: CPU: 0 PID: 118 at /build/buildd/linux-3.16.0/drivers/gpu/drm/i915/intel_display.c:1426 assert_pch_hdmi_disabled+0xad/0xf0 [i915]() [ 1.413310] PCH HDMI (0x000e1160) enabled on transcoder A, should be disabled [ 1.413311] Modules linked in: i915(+) psmouse i2c_algo_bit ahci drm_kms_helper r8169 libahci drm mii video [ 1.413318] CPU: 0 PID: 118 Comm: systemd-udevd Not tainted 3.16.0-29-generic #39-Ubuntu [ 1.413318] Hardware name: Dell Inc. OptiPlex 3010/042P49, BIOS A08 12/07/2012 System environment: -- Machine: Dell Optiplex 3010 Chipset: H61 Express -- Distribution: Ubuntu 14.10 System architecture: x86_64 Kernel: 3.16.0-29-generic Display connector: HDMI -- Xserver-xorg-video-intel: 2:2.99.914-1~exp1ubuntu4.1 Xserver: 1:7.7+7ubuntu2 Mesa: 10.3.2 Libdrm2: 2.4.56-1 Libdrm-intel1: 2.4.56-1 Reproduce: 1. Connect display with HDMI and start Linux. Additional info: - Xorg.conf is auto generated by X, nothing modified. I thought that it is an regression and/or an Ubuntu related problem, so I run some tests. The result is, that Debian 7.7 with kernel 3.2.0-4 is not affected. Unaffected systems: - Debian 7.7 with kernel 3.2.0-4 (amd64) Affected systems: - Ubuntu 15.04 with kernel 3.18.0-generic (amd64) - Ubuntu 14.10 with kernel 3.16.0-29-generic (amd64) - Ubuntu 14.04 with kernel 3.13.0-32-generic (amd64) - Ubuntu 13.04 with kernel 3.8.0-19-generic (amd64) - Fedora 21 with kernel 3.17.4-301.fc21.x86_64 (amd64) - Centos 7 with kernel 3.10-123.el7.x64_64 (amd64)