Bug 88331 - [IVB HDMI] PCH HDMI (0x000e1160) enabled on transcoder A, should be disabled - hdmi detect failure?
Summary: [IVB HDMI] PCH HDMI (0x000e1160) enabled on transcoder A, should be disabled ...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-12 15:08 UTC by lacyc3
Modified: 2017-07-24 22:49 UTC (History)
4 users (show)

See Also:
i915 platform: IVB
i915 features: display/DP, display/eDP, display/HDMI


Attachments
dmesg - Ubuntu 14.10 with kernel 3.16.0-29-generic (80.27 KB, text/plain)
2015-01-12 15:08 UTC, lacyc3
no flags Details
dmesg - Ubuntu 15.04 with kernel 3.18.0-generic (78.54 KB, text/plain)
2015-01-12 15:09 UTC, lacyc3
no flags Details
dmesg - Ubuntu 14.04 with kernel 3.13.0-32-generic (67.24 KB, text/plain)
2015-01-12 15:10 UTC, lacyc3
no flags Details
dmesg - Ubuntu 13.04 with kernel 3.8.0-19-generic (60.03 KB, text/plain)
2015-01-12 15:11 UTC, lacyc3
no flags Details
dmesg - Centos 7 with kernel 3.10-123.el7.x64_64 (84.45 KB, text/plain)
2015-01-12 15:11 UTC, lacyc3
no flags Details
dmesg - Fedora 21 with kernel 3.17.4-301.fc21.x86_64 (80.59 KB, text/plain)
2015-01-12 15:11 UTC, lacyc3
no flags Details
(works) dmesg - Debian 7.7 with kernel 3.2.0-4 (49.06 KB, text/plain)
2015-01-12 15:12 UTC, lacyc3
no flags Details
Dmesg - drm.debug - 14.10 (102.69 KB, text/plain)
2015-01-14 15:17 UTC, lacyc3
no flags Details
Xorg.0.log - 14.10 (16.82 KB, text/plain)
2015-01-14 15:18 UTC, lacyc3
no flags Details
Dmesg - nightly-drm - drm.debug - 14.10 (109.21 KB, text/plain)
2015-01-14 15:48 UTC, lacyc3
no flags Details
Xorg.0.log - nightly-drm - drm.debug - 14.10 (16.81 KB, text/plain)
2015-01-14 15:49 UTC, lacyc3
no flags Details
dmesg - Linux 4.1-rc2 (177.99 KB, text/plain)
2015-05-04 19:00 UTC, lacyc3
no flags Details
Linux 4.1-rc3 (178.24 KB, text/plain)
2015-05-26 17:24 UTC, lacyc3
no flags Details

Description lacyc3 2015-01-12 15:08:05 UTC
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)
Comment 1 lacyc3 2015-01-12 15:09:34 UTC
Created attachment 112123 [details]
dmesg - Ubuntu 15.04 with kernel 3.18.0-generic
Comment 2 lacyc3 2015-01-12 15:10:34 UTC
Created attachment 112124 [details]
dmesg - Ubuntu 14.04 with kernel 3.13.0-32-generic
Comment 3 lacyc3 2015-01-12 15:11:03 UTC
Created attachment 112125 [details]
dmesg - Ubuntu 13.04 with kernel 3.8.0-19-generic
Comment 4 lacyc3 2015-01-12 15:11:36 UTC
Created attachment 112126 [details]
dmesg - Centos 7 with kernel 3.10-123.el7.x64_64
Comment 5 lacyc3 2015-01-12 15:11:58 UTC
Created attachment 112127 [details]
dmesg - Fedora 21 with kernel 3.17.4-301.fc21.x86_64
Comment 6 lacyc3 2015-01-12 15:12:36 UTC
Created attachment 112128 [details]
(works) dmesg - Debian 7.7 with kernel 3.2.0-4
Comment 7 Rodrigo Vivi 2015-01-12 19:57:07 UTC
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.
Comment 8 lacyc3 2015-01-14 15:17:41 UTC
Created attachment 112221 [details]
Dmesg - drm.debug - 14.10
Comment 9 lacyc3 2015-01-14 15:18:28 UTC
Created attachment 112222 [details]
Xorg.0.log - 14.10
Comment 10 lacyc3 2015-01-14 15:21:19 UTC
# 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)
Comment 11 lacyc3 2015-01-14 15:47:35 UTC
I installed nightly form: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/current/ is it ok?

Problem still exists.
Comment 12 lacyc3 2015-01-14 15:48:48 UTC
Created attachment 112223 [details]
Dmesg - nightly-drm - drm.debug - 14.10
Comment 13 lacyc3 2015-01-14 15:49:33 UTC
Created attachment 112224 [details]
Xorg.0.log - nightly-drm - drm.debug - 14.10
Comment 14 Jesse Barnes 2015-03-20 22:00:24 UTC
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);
Comment 15 lacyc3 2015-03-23 08:56:48 UTC
Yes, I can, but it takes some time.
Comment 16 lacyc3 2015-05-04 19:00:30 UTC
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.
Comment 17 lacyc3 2015-05-26 17:24:50 UTC
Created attachment 116055 [details]
Linux 4.1-rc3

Linux 4.1-rc3 still affected.
Comment 18 Chris Wilson 2015-07-17 12:25:13 UTC
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
Comment 19 lacyc3 2015-07-22 08:25:42 UTC
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
Comment 20 rtshiva 2015-08-10 09:09:06 UTC
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.
Comment 21 lacyc3 2015-08-17 08:07:20 UTC
Yes, I confirm, it works.

Additionally, I tested it on Windows 10 and it works.
Comment 22 Jani Nikula 2016-06-17 15:23:16 UTC
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.