Bug 103471 - HDMI detection fails, i915 Intel HD400
Summary: HDMI detection fails, i915 Intel HD400
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: 2017-10-26 16:52 UTC by Pablo
Modified: 2018-01-05 16:35 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Before plugging in the HDMI cable: full dmesg with drm.debug=0x1e log_buf_len=1M (165.89 KB, text/x-log)
2017-10-26 16:52 UTC, Pablo
no flags Details
After plugging in the HDMI cable: dmesg with drm.debug=0x1e log_buf_len=1M lines that were added after the previous one. (5.47 KB, text/x-log)
2017-10-26 16:56 UTC, Pablo
no flags Details
cat /sys/kernel/debug/dri/0/i915_opregion (8.00 KB, application/octet-stream)
2017-10-26 19:13 UTC, Pablo
no flags Details

Description Pablo 2017-10-26 16:52:19 UTC
Created attachment 135073 [details]
Before plugging in the HDMI cable: full dmesg with drm.debug=0x1e log_buf_len=1M

System:    Host: nmr Kernel: 4.4.0-97-generic x86_64 (64 bit) Desktop: Gnome
           Distro: Ubuntu 16.04 xenial
Machine:   Mobo: N/A model: N/A v: 1.0 Bios: American Megatrends v: 5.11 date: 10/20/2016
CPU:       Dual core Intel Celeron N3060 (-MCP-) speed/max: 1762/2480 MHz
Graphics:  Card: Intel Device 22b1
           Display Server: X.Org 1.18.4 drivers: intel (unloaded: fbdev,vesa)
           Resolution: 1024x768@59.87hz
           GLX Renderer: Mesa DRI Intel HD Graphics 400 (Braswell)
           GLX Version: 3.0 Mesa 17.0.7
Network:   Card-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           driver: r8169
           Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           driver: r8169
           Card-3: Realtek RTL8821AE 802.11ac PCIe Wireless Network Adapter driver: rtl8821ae
Drives:    HDD Total Size: 64.0GB (12.0% used)
Info:      Processes: 174 Uptime: 42 min Memory: 592.3/7909.5MB
           Client: Shell (bash) inxi: 2.2.35

Display connector: HDMI

The computer has a build-in LCD screen. The driver fails to recognize an external monitor connected through HDMI. The HDMI connection is working because I can see a mirror of the screen (LCD Panel + HDMI) before booting into Ubuntu and also inside the BIOS. The problem is still there in Ubuntu 17.10.

According to this:
https://ark.intel.com/products/91832/Intel-Celeron-Processor-N3060-2M-Cache-up-to-2_48-GHz
My Graphic Card is: Intel® HD Graphics 400

I tried installing the INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2 but it did not solve the issue.
(https://01.org/linuxgraphics/downloads/intel-graphics-update-tool-linux-os-v2.0.2)
Comment 1 Pablo 2017-10-26 16:56:02 UTC
Created attachment 135076 [details]
After plugging in the HDMI cable: dmesg with drm.debug=0x1e log_buf_len=1M lines that were added after the previous one.
Comment 2 Pablo 2017-10-26 16:58:46 UTC
get-edid shows that the bus is detected and the monitor as well.

This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
No EDID on bus 6
No EDID on bus 8
3 potential busses found: 3 7 9
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
63F04310019
BenQ GL2450H
Comment 3 Pablo 2017-10-26 16:59:44 UTC
However, xrandr -q shows that the monitor is not connected:

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
eDP1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 518mm x 333mm
   1024x768      59.87*+
   800x600       60.32    56.25
   640x480       59.94
   512x384       60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Comment 4 Ville Syrjala 2017-10-26 18:48:51 UTC
I suspect this might be fixed by ea850f64c272 ("drm/i915/bios: parse DDI ports also for CHV for HDMI DDC pin and DP AUX channel")

Can you try again with a more recent kernel? Looks like 4.14-rc5 has that, as does 4.13.8 and 4.9.57. Other stable kernel might have it as well, but I didn't bother to check that far.

If that doesn't help, then please attach a copy of /sys/kernel/debug/dri/0/i915_opregion

Oh and since you found something with get-edid on i2c bus 3, can you also check what /sys/class/i2c-adapter/i2c-3/name says? Pls make sure get-edid is still reporting the success for bus 3, just in case the bus numbers got shuffled around.
Comment 5 Pablo 2017-10-26 18:51:50 UTC
It works the first time when I connect a VGA cable but if I disconnect it and reconnect again it stops working. Bug reported too: https://bugs.freedesktop.org/show_bug.cgi?id=103472


This is the output of 
# i2cdetect -l
i2c-0   i2c             i915 gmbus ssc                          I2C adapter
i2c-1   i2c             i915 gmbus vga                          I2C adapter
i2c-2   i2c             i915 gmbus panel                        I2C adapter
i2c-3   i2c             i915 gmbus dpc                          I2C adapter
i2c-4   i2c             i915 gmbus dpb                          I2C adapter
i2c-5   i2c             i915 gmbus dpd                          I2C adapter
i2c-6   i2c             DPDDC-B                                 I2C adapter
i2c-7   i2c             DPDDC-C                                 I2C adapter
i2c-8   i2c             DPDDC-D                                 I2C adapter
i2c-9   smbus           SMBus iManager adapter                  SMBus adapter
Comment 6 Pablo 2017-10-26 19:11:33 UTC
(In reply to Ville Syrjala from comment #4)
> I suspect this might be fixed by ea850f64c272 ("drm/i915/bios: parse DDI
> ports also for CHV for HDMI DDC pin and DP AUX channel")
> 
> Can you try again with a more recent kernel? Looks like 4.14-rc5 has that,
> as does 4.13.8 and 4.9.57. Other stable kernel might have it as well, but I
> didn't bother to check that far.
> 
> If that doesn't help, then please attach a copy of
> /sys/kernel/debug/dri/0/i915_opregion
> 
> Oh and since you found something with get-edid on i2c bus 3, can you also
> check what /sys/class/i2c-adapter/i2c-3/name says? Pls make sure get-edid is
> still reporting the success for bus 3, just in case the bus numbers got
> shuffled around.

I tested it with Ubuntu 17.10 that has a 4.13.0 kernel and still does not work but I will try the kernels you mention but unfortunately it will take me more time since they are not in Ubuntu 16.04 repository.

i2c-3 name is "i915 gmbus dpc" coincidentally to what i2cdetect said in my previous comment:
"i2c-3   i2c             i915 gmbus dpc                          I2C adapter"

I am attaching i915_opregion in the next comment.
Comment 7 Pablo 2017-10-26 19:13:23 UTC
Created attachment 135088 [details]
cat /sys/kernel/debug/dri/0/i915_opregion
Comment 8 Ville Syrjala 2017-10-26 19:39:19 UTC
(In reply to Pablo from comment #7)
> Created attachment 135088 [details]
> cat /sys/kernel/debug/dri/0/i915_opregion

        EFP device info:
                Device handle: 0x0040 (EFP 2 (HDMI/DVI/DP))
                ...
                Port: 0x03 (HDMI-D)
                AIM I2C pin: 0x00
                AIM Slave address: 0x00
                DDC pin: 0x04

"i2c-3   i2c             i915 gmbus dpc                          I2C adapter"

Those two pieces of information do suggest that the commit in question should in fact fix this.
Comment 9 Pablo 2017-10-26 21:45:00 UTC
(In reply to Ville Syrjala from comment #8)
> (In reply to Pablo from comment #7)
> > Created attachment 135088 [details]
> > cat /sys/kernel/debug/dri/0/i915_opregion
> 
>         EFP device info:
>                 Device handle: 0x0040 (EFP 2 (HDMI/DVI/DP))
>                 ...
>                 Port: 0x03 (HDMI-D)
>                 AIM I2C pin: 0x00
>                 AIM Slave address: 0x00
>                 DDC pin: 0x04
> 
> "i2c-3   i2c             i915 gmbus dpc                          I2C adapter"
> 
> Those two pieces of information do suggest that the commit in question
> should in fact fix this.

Kernel 4.13.8 fixed the issue! Thanks! Do you know if there is patch for Kernel 4.4.0-97 that I could apply using dkms?
Comment 10 Ville Syrjala 2017-10-27 09:37:01 UTC
(In reply to Pablo from comment #9)
> (In reply to Ville Syrjala from comment #8)
> > (In reply to Pablo from comment #7)
> > > Created attachment 135088 [details]
> > > cat /sys/kernel/debug/dri/0/i915_opregion
> > 
> >         EFP device info:
> >                 Device handle: 0x0040 (EFP 2 (HDMI/DVI/DP))
> >                 ...
> >                 Port: 0x03 (HDMI-D)
> >                 AIM I2C pin: 0x00
> >                 AIM Slave address: 0x00
> >                 DDC pin: 0x04
> > 
> > "i2c-3   i2c             i915 gmbus dpc                          I2C adapter"
> > 
> > Those two pieces of information do suggest that the commit in question
> > should in fact fix this.
> 
> Kernel 4.13.8 fixed the issue! Thanks! Do you know if there is patch for
> Kernel 4.4.0-97 that I could apply using dkms?

No idea about ubuntu kernels. Presumably they will still provide stable kernel updates, and the patch should eventually percolate down to all stable kernels (I hope).

Anyways, thanks for reporting the issue and testing the fix.

Marking the bug as fixed:
commit ea850f64c2722278f150dc11de2141baeb24211c (tag: drm-intel-fixes-2017-10-11)
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Thu Sep 28 11:21:57 2017 +0300

    drm/i915/bios: parse DDI ports also for CHV for HDMI DDC pin and DP AUX channel


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.