Bug 97822 - Split screen/display corruption issue on HP EliteOne 800 G2 23-in Touch AIO
Summary: Split screen/display corruption issue on HP EliteOne 800 G2 23-in Touch AIO
Status: CLOSED NOTOURBUG
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-15 13:51 UTC by Antony
Modified: 2017-12-12 14:48 UTC (History)
6 users (show)

See Also:
i915 platform: SKL
i915 features: display/eDP


Attachments
Attachments as a zip (10.81 MB, application/zip)
2016-09-15 13:51 UTC, Antony
no flags Details
Screenshot 1 (5.59 MB, image/jpeg)
2016-09-29 06:50 UTC, Jani Nikula
no flags Details
Screenshot 2 (5.41 MB, image/jpeg)
2016-09-29 06:53 UTC, Jani Nikula
no flags Details
dmesg (690.05 KB, text/plain)
2016-09-29 06:53 UTC, Jani Nikula
no flags Details
xrandr (9.38 KB, text/plain)
2016-09-29 06:54 UTC, Jani Nikula
no flags Details
intel_reg dump with i915 module loaded (26.34 KB, text/plain)
2016-09-29 09:00 UTC, Rene Arends
no flags Details
intel_reg dump without i915 module loaded (26.35 KB, text/plain)
2016-09-29 09:01 UTC, Rene Arends
no flags Details
intel_reg dump with i915 module loaded and nomodeset (26.35 KB, text/plain)
2016-09-29 09:01 UTC, Rene Arends
no flags Details
i915_opregion (8.00 KB, application/octet-stream)
2016-10-06 14:07 UTC, Rene Arends
no flags Details
i915_opregion_nontouch_workingone (8.00 KB, application/octet-stream)
2016-10-06 14:33 UTC, Rene Arends
no flags Details
dmesg drm.debug=0xe from kernel dp_i2c_stuff (98.98 KB, text/plain)
2016-10-07 09:17 UTC, Rene Arends
no flags Details
dmesg_i2c_ignore_nak with drm.debug=0xe (119.76 KB, text/plain)
2016-10-07 16:08 UTC, Rene Arends
no flags Details
dmesg_fix_ignore_nak (120.61 KB, text/plain)
2016-10-10 13:48 UTC, Rene Arends
no flags Details
attachment-2363-0.html (7.88 KB, text/html)
2016-10-11 16:42 UTC, Rene Arends
no flags Details
dmesg_Implement_DP_Aux_Mutex_framework (101.80 KB, text/plain)
2016-10-11 17:48 UTC, Rene Arends
no flags Details
workaround patch we used (1.89 KB, text/plain)
2016-12-12 15:56 UTC, Rene Arends
no flags Details
[PATCH] drm/i915/hack: Abuse i915.vbt_sdvo_panel_type also for LVDS/eDP/DSI (1.09 KB, patch)
2016-12-12 16:06 UTC, Michael Shigorin
no flags Details | Splinter Review
External output in BIOS does not work if Legacy Support enabled (245.09 KB, image/jpeg)
2017-01-18 12:04 UTC, Robert Wolf
no flags Details
Linux console squeezed to upper half if Legacy Support enabled (617.74 KB, image/jpeg)
2017-01-18 12:04 UTC, Robert Wolf
no flags Details
Xorg image squeezed to upper half if Legacy Support enabled (522.45 KB, image/jpeg)
2017-01-18 12:04 UTC, Robert Wolf
no flags Details
External output in BIOS works if Legacy Support disabled (253.08 KB, image/jpeg)
2017-01-18 12:04 UTC, Robert Wolf
no flags Details
Linux console on whole screen if Legacy Support disabled (646.30 KB, image/jpeg)
2017-01-18 12:04 UTC, Robert Wolf
no flags Details
Xorg image on whole screen if Legacy Support disabled (440.66 KB, image/jpeg)
2017-01-18 12:05 UTC, Robert Wolf
no flags Details
/sys/kernel/debug/dri/0/i915_vbt for bios and uefi mode (1.95 KB, application/x-gtar-compressed)
2017-02-21 12:22 UTC, Eric Johansson
no flags Details
diff between VBT dumps for BIOS and UEFI boots (4.53 KB, text/plain)
2017-02-21 14:32 UTC, Jani Nikula
no flags Details

Description Antony 2016-09-15 13:51:04 UTC
Created attachment 126554 [details]
Attachments as a zip

Hello, when using the latest 4.8.0 kernel and drm-intel-nightly branch, and also on the 4.6.3 kernel, (in both cases using Linux Mint 18 Cinnamon)
the internal display on this computer is corrupted, and only the upper half of the physical display is used to display the output (the entire display output is squashed into the top half). The lower half of the display contains vertical
lines. See the attached screenshots.

Changing the resolution or scaling makes no difference.

If KMS is disabled using nomodeset on the kernel command line, the display is rendered as expected using the full physical screen, using the generic vesa driver (although obviously at a lower resolution of 1024x768). 
However the vertical line corruption is still visible on the lower half of the display. 
The lower half screen corruption appears to become less prominent over time, but do not disappear entirely. 

The internal display is connected via eDP and is a 1920x1080 6-bit panel reported as Hewlett-Packard [Unknown Model: HWP0060]. See hp_hwinfo.log for details of the system's hardware.

On kernel 4.4.0 (Ubuntu GNOME 16.10 Beta 1), using the i915_bpo driver, the  internal display on eDP1 is reported as disconnected and the internal display is non-functional.

An external monitor connected via DisplayPort works as expected (the errant behaviour of the internal display is unchanged)


Debug dmesg logs:
dmesg.txt: From boot. Note there is an external Dell monitor attached and xrandr is set to disable the internal display.
dmesg2.txt: Internal display reenabled via xrandr

Thank you for any help!
Antony
Comment 1 HT 2016-09-16 14:55:56 UTC
Seeing the same problem on the same hardware.

Any help or pointers as to what might cause the issue would be appreciated.
Comment 2 Rene Arends 2016-09-28 12:23:48 UTC
We have the expect same issue, tried many different kernels. But never got it work properly in Linux. 

The "funny" thing is that after the split screen problem in linux. The line that stays visible for a while, stays on the display whenever Windows is booted afterwards too... But then slowly disappears.

Have you found any other solution besides using nomodeset?
Comment 3 Jani Nikula 2016-09-29 06:42:37 UTC
(In reply to Antony from comment #0)
> Created attachment 126554 [details]
> Attachments as a zip

Please *always* attach the plain files, without packing or zipping.
Comment 4 Jani Nikula 2016-09-29 06:50:40 UTC
Created attachment 126841 [details]
Screenshot 1
Comment 5 Jani Nikula 2016-09-29 06:53:08 UTC
Created attachment 126842 [details]
Screenshot 2
Comment 6 Jani Nikula 2016-09-29 06:53:48 UTC
Created attachment 126843 [details]
dmesg
Comment 7 Jani Nikula 2016-09-29 06:54:07 UTC
Created attachment 126844 [details]
xrandr
Comment 8 Jani Nikula 2016-09-29 07:00:25 UTC
At a glance, the screenshots look like the image is vertically scaled to half. Is that right?

Is the image all right at boot and in the bios and grub screens?

If so, please grab the tools/intel_reg tool from intel-gpu-tools [1], and provide 'intel_reg dump' output for 1) when i915 has not been loaded yet, and 2) after i915 has loaded.
Comment 9 Rene Arends 2016-09-29 08:18:34 UTC
We tested the non-touch model of the HP EliteOne 800 G2 AIO, and that one works correclty. 

I will get the intel_reg dump output in a few minutes.
Comment 10 Rene Arends 2016-09-29 09:00:11 UTC
Created attachment 126846 [details]
intel_reg dump with i915 module loaded
Comment 11 Rene Arends 2016-09-29 09:01:01 UTC
Created attachment 126847 [details]
intel_reg dump without i915 module loaded
Comment 12 Rene Arends 2016-09-29 09:01:37 UTC
Created attachment 126848 [details]
intel_reg dump with i915 module loaded and nomodeset
Comment 13 Rene Arends 2016-09-29 13:54:09 UTC
i just tried loading the saved edid.bin from the working non-touch model (HP EliteOne 800 G2 23-in AIO) but this gives the same result.
Comment 14 Rene Arends 2016-09-29 14:43:23 UTC
(In reply to Jani Nikula from comment #8)
> At a glance, the screenshots look like the image is vertically scaled to
> half. Is that right?
> 
> Is the image all right at boot and in the bios and grub screens?
> 
> If so, please grab the tools/intel_reg tool from intel-gpu-tools [1], and
> provide 'intel_reg dump' output for 1) when i915 has not been loaded yet,
> and 2) after i915 has loaded.

Yes the image is all right at boot and in the bios and grub screens.
Comment 15 Jani Nikula 2016-09-29 14:54:17 UTC
(In reply to r.r.arends from comment #14)
> (In reply to Jani Nikula from comment #8)
> > At a glance, the screenshots look like the image is vertically scaled to
> > half. Is that right?
> > 
> > Is the image all right at boot and in the bios and grub screens?
> > 
> > If so, please grab the tools/intel_reg tool from intel-gpu-tools [1], and
> > provide 'intel_reg dump' output for 1) when i915 has not been loaded yet,
> > and 2) after i915 has loaded.
> 
> Yes the image is all right at boot and in the bios and grub screens.

What if you add i915.fastboot=1 module parameter? (If it works, it'll work for the boot, but I expect it to fail after the first modeset or suspend/resume.)
Comment 16 Rene Arends 2016-09-29 15:05:38 UTC
(In reply to Jani Nikula from comment #15)
> (In reply to r.r.arends from comment #14)
> > (In reply to Jani Nikula from comment #8)
> > > At a glance, the screenshots look like the image is vertically scaled to
> > > half. Is that right?
> > > 
> > > Is the image all right at boot and in the bios and grub screens?
> > > 
> > > If so, please grab the tools/intel_reg tool from intel-gpu-tools [1], and
> > > provide 'intel_reg dump' output for 1) when i915 has not been loaded yet,
> > > and 2) after i915 has loaded.
> > 
> > Yes the image is all right at boot and in the bios and grub screens.
> 
> What if you add i915.fastboot=1 module parameter? (If it works, it'll work
> for the boot, but I expect it to fail after the first modeset or
> suspend/resume.)

Same result, it fails to the halfsize split screen.
Comment 17 Rene Arends 2016-09-29 15:10:37 UTC
(In reply to r.r.arends from comment #16)
> (In reply to Jani Nikula from comment #15)
> > (In reply to r.r.arends from comment #14)
> > > (In reply to Jani Nikula from comment #8)
> > > > At a glance, the screenshots look like the image is vertically scaled to
> > > > half. Is that right?
> > > > 
> > > > Is the image all right at boot and in the bios and grub screens?
> > > > 
> > > > If so, please grab the tools/intel_reg tool from intel-gpu-tools [1], and
> > > > provide 'intel_reg dump' output for 1) when i915 has not been loaded yet,
> > > > and 2) after i915 has loaded.
> > > 
> > > Yes the image is all right at boot and in the bios and grub screens.
> > 
> > What if you add i915.fastboot=1 module parameter? (If it works, it'll work
> > for the boot, but I expect it to fail after the first modeset or
> > suspend/resume.)
> 
> Same result, it fails to the halfsize split screen.

A video of the boot: https://www.youtube.com/watch?v=_g65etG_Vak
Comment 18 Rene Arends 2016-10-04 12:46:24 UTC
Any ideas?
Comment 19 Rene Arends 2016-10-04 15:02:14 UTC
(In reply to r.r.arends from comment #18)
> Any ideas?

I just tried the just released 4.8 kernel without success, i get the same issue...
Comment 20 Ville Syrjala 2016-10-06 12:34:57 UTC
The only significant difference I see is the timings. The BIOS uses:
"1920x1080" 60 143978 1920 2016 2080 2176 1080 1088 1092 1100 0x40 0x5

But the VBT gives us:
"1920x1080" 60 133100 1920 1952 1980 2004 1080 1088 1092 1107 0x8 0xa

So it's looking like another case of invalid panel type :(

Please attach a copy of /sys/kernel/debug/dri/0/i915_opregion
Comment 21 Rene Arends 2016-10-06 14:07:37 UTC
Created attachment 127068 [details]
i915_opregion
Comment 22 Rene Arends 2016-10-06 14:08:39 UTC
(In reply to Ville Syrjala from comment #20)
> The only significant difference I see is the timings. The BIOS uses:
> "1920x1080" 60 143978 1920 2016 2080 2176 1080 1088 1092 1100 0x40 0x5
> 
> But the VBT gives us:
> "1920x1080" 60 133100 1920 1952 1980 2004 1080 1088 1092 1107 0x8 0xa
> 
> So it's looking like another case of invalid panel type :(
> 
> Please attach a copy of /sys/kernel/debug/dri/0/i915_opregion

Yeh the only difference between de non-touch and the touch is the usb touchdevice and the panel itself. :(. 

I've attached the /sys/kernel/debug/dri/0/i915_opregion

Can we work around this badpanel?
Comment 23 Rene Arends 2016-10-06 14:33:11 UTC
Created attachment 127069 [details]
i915_opregion_nontouch_workingone

as a comparison i've also attached the i915_opregion from the working non-touch system.

When i compare them i get the following difference, but i have no clue what this is :)

$ diff -u i915_opregion.hex i915_opregion_nontouch_workingone.hex
--- i915_opregion.hex   2016-10-06 16:30:29.828540260 +0200
+++ i915_opregion_nontouch_workingone.hex       2016-10-06 16:30:41.284374997 +0200
@@ -47,8 +47,8 @@
 000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 00000300: 0100 0000 0000 0000 0200 0000 0000 0000  ................
-00000310: ff00 0080 0600 0080 6400 0080 2b80 408a  ........d...+.@.
-00000320: 5594 6a9e 7fa8 95b2 aabc bfc6 d4d0 e9da  U.j.............
+00000310: ff00 0080 0600 0080 6400 0080 3180 458a  ........d...1.E.
+00000320: 5a94 6e9e 83a8 98b2 acbc c1c6 d5d0 eada  Z.n.............
 00000330: ffe4 0000 0000 0000 0000 0000 0000 0000  ................
 00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
Comment 24 Ville Syrjala 2016-10-06 15:39:06 UTC
So looks like a lot of panel types have the timing the BIOS used. I pushed a hack to
git://github.com/vsyrjala/linux.git panel_type_modparam
so pleas grab that and try passing i915.vbt_sdvo_panel_type=0 onto the kernel command line. That should at least tell us if using better timings would fix the display problem.

After that we still have the problem of figuring out how we're supposed to deduce the correct panel type automagically.
Comment 25 Ville Syrjala 2016-10-06 15:40:14 UTC
Oh and could you also try
git://github.com/vsyrjala/linux.git acpi_edid
on the off chance that the machine might have an actual EDID hiding inside the firmware...
Comment 26 Rene Arends 2016-10-06 18:09:40 UTC
(In reply to Ville Syrjala from comment #24)
> So looks like a lot of panel types have the timing the BIOS used. I pushed a
> hack to
> git://github.com/vsyrjala/linux.git panel_type_modparam
> so pleas grab that and try passing i915.vbt_sdvo_panel_type=0 onto the
> kernel command line. That should at least tell us if using better timings
> would fix the display problem.
> 
> After that we still have the problem of figuring out how we're supposed to
> deduce the correct panel type automagically.

Thank you so much, your workaround works! This is amazing, thanks for the quick responses and quick patch!
I will test the acpi_edid branch in a bit.
Comment 27 Rene Arends 2016-10-06 18:37:06 UTC
(In reply to Ville Syrjala from comment #25)
> Oh and could you also try
> git://github.com/vsyrjala/linux.git acpi_edid
> on the off chance that the machine might have an actual EDID hiding inside
> the firmware...

this doesn't work, i get a black screen with this, or do i need to use any kernel options?
Comment 28 Ville Syrjala 2016-10-06 18:42:22 UTC
(In reply to r.r.arends from comment #27)
> (In reply to Ville Syrjala from comment #25)
> > Oh and could you also try
> > git://github.com/vsyrjala/linux.git acpi_edid
> > on the off chance that the machine might have an actual EDID hiding inside
> > the firmware...
> 
> this doesn't work, i get a black screen with this, or do i need to use any
> kernel options?

Nope. It should just work (tm) if the system supports the _DDC ACPI method. Well, assuming I've implemented it correctly. Can't actually be sure of that since I've not yet found a machine where it works.
Comment 29 Rene Arends 2016-10-06 18:52:00 UTC
(In reply to Ville Syrjala from comment #28)
> (In reply to r.r.arends from comment #27)
> > (In reply to Ville Syrjala from comment #25)
> > > Oh and could you also try
> > > git://github.com/vsyrjala/linux.git acpi_edid
> > > on the off chance that the machine might have an actual EDID hiding inside
> > > the firmware...
> > 
> > this doesn't work, i get a black screen with this, or do i need to use any
> > kernel options?
> 
> Nope. It should just work (tm) if the system supports the _DDC ACPI method.
> Well, assuming I've implemented it correctly. Can't actually be sure of that
> since I've not yet found a machine where it works.

Oke uhm, anything i can debug for you? Although maybe the acpi method just doesn't work on this model... 

I'm already very happy that i know have a working option with i915.vbt_sdvo_panel_type=0 though, again many many many thanks!
Comment 30 Ville Syrjala 2016-10-07 08:33:27 UTC
Hmm. So the answer I got from some Windows folks is that they always expect to have an EDID for eDP panels. That would mean that the real problem is somewhere in out i2c-over-aux handling since we clearly are unable to read the EDID from the panel.

Please try this branch and attach the resulting dmesg (w/ drm.debug=0xe):
git://github.com/vsyrjala/linux.git dp_i2c_stuff
Comment 31 Ville Syrjala 2016-10-07 08:51:27 UTC
Hmm. I guess one weird possibility would be that the EDID would be at some alternate address. I can't recall if that's allowed by the spec, but IIRC in the distant past there were a few addresses that could house the EDID.

Please run something like this as root so we can probe the entire i2c address range:
modprobe i2c-dev ; i2cdetect `grep DPDDC-A /sys/class/i2c-dev/*/name | cut -d '/' -f 5 | cut -d '-' -f 2`
Comment 32 Rene Arends 2016-10-07 09:17:22 UTC
Created attachment 127091 [details]
dmesg drm.debug=0xe from kernel dp_i2c_stuff

dmesg drm.debug=0xe from kernel dp_i2c_stuff
Comment 33 Rene Arends 2016-10-07 09:18:45 UTC
(In reply to Ville Syrjala from comment #31)
> Hmm. I guess one weird possibility would be that the EDID would be at some
> alternate address. I can't recall if that's allowed by the spec, but IIRC in
> the distant past there were a few addresses that could house the EDID.
> 
> Please run something like this as root so we can probe the entire i2c
> address range:
> modprobe i2c-dev ; i2cdetect `grep DPDDC-A /sys/class/i2c-dev/*/name | cut
> -d '/' -f 5 | cut -d '-' -f 2`

root@fuckeduphp:~# modprobe i2c-dev ; i2cdetect `grep DPDDC-A /sys/class/i2c-dev/*/name | cut -d '/' -f 5 | cut -d '-' -f 2`
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-3.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: 30 -- -- -- -- 35 -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77
Comment 34 Ville Syrjala 2016-10-07 09:24:11 UTC
(In reply to r.r.arends from comment #32)
> Created attachment 127091 [details]
> dmesg drm.debug=0xe from kernel dp_i2c_stuff
> 
> dmesg drm.debug=0xe from kernel dp_i2c_stuff


[    5.576119] [drm:drm_dp_i2c_do_msg [drm_kms_helper]] I2C nack (result=1, size=1)
[    5.576283] [drm:drm_dp_i2c_do_msg [drm_kms_helper]] I2C nack (result=0, size=0)

still nacks :(
Comment 35 Ville Syrjala 2016-10-07 09:30:17 UTC
(In reply to r.r.arends from comment #33)
> (In reply to Ville Syrjala from comment #31)
> > Hmm. I guess one weird possibility would be that the EDID would be at some
> > alternate address. I can't recall if that's allowed by the spec, but IIRC in
> > the distant past there were a few addresses that could house the EDID.
> > 
> > Please run something like this as root so we can probe the entire i2c
> > address range:
> > modprobe i2c-dev ; i2cdetect `grep DPDDC-A /sys/class/i2c-dev/*/name | cut
> > -d '/' -f 5 | cut -d '-' -f 2`
> 
> root@fuckeduphp:~# modprobe i2c-dev ; i2cdetect `grep DPDDC-A
> /sys/class/i2c-dev/*/name | cut -d '/' -f 5 | cut -d '-' -f 2`
> WARNING! This program can confuse your I2C bus, cause data loss and worse!
> I will probe file /dev/i2c-3.
> I will probe address range 0x03-0x77.
> Continue? [Y/n] Y
>      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> 00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
> 10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
> 20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
> 30: 30 -- -- -- -- 35 -- -- 38 39 3a 3b 3c 3d 3e 3f
> 40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
> 50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
> 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
> 70: 70 71 72 73 74 75 76 77

That... looks totally crazy. So it seems to be acking almost all addresses, except the ones we might actually care about.
Comment 36 Rene Arends 2016-10-07 12:02:46 UTC
hmm, do you want me to try the same thing on the non-touch model which works?
Comment 37 Ville Syrjala 2016-10-07 12:04:23 UTC
(In reply to r.r.arends from comment #36)
> hmm, do you want me to try the same thing on the non-touch model which works?

Can't hurt. At least it will tell us is the panel on it behaves differently.
Comment 38 Ville Syrjala 2016-10-07 12:15:12 UTC
I pushed another random idea [1] to the dp_i2c_stuff branch. Please test again with that.

[1]
commit 63899aa66e081e3dcb9a06f9808c55b6f9a75c1d
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Fri Oct 7 15:11:09 2016 +0300

    drm/dp: Try to read the entire edid block if the single byte probe fails
Comment 39 Rene Arends 2016-10-07 13:30:17 UTC
(In reply to Ville Syrjala from comment #38)
> I pushed another random idea [1] to the dp_i2c_stuff branch. Please test
> again with that.
> 
> [1]
> commit 63899aa66e081e3dcb9a06f9808c55b6f9a75c1d
> Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Date:   Fri Oct 7 15:11:09 2016 +0300
> 
>     drm/dp: Try to read the entire edid block if the single byte probe fails

No luck :( get the split screen
Comment 40 Rene Arends 2016-10-07 14:49:36 UTC
(In reply to Ville Syrjala from comment #37)
> (In reply to r.r.arends from comment #36)
> > hmm, do you want me to try the same thing on the non-touch model which works?
> 
> Can't hurt. At least it will tell us is the panel on it behaves differently.

By the way, on the non-touch version i get the exact same output
Comment 41 Ville Syrjala 2016-10-07 15:45:19 UTC
Another crazy idea pushed to dp_i2c_stuff:

drm/edid: Ignore NACK for the DDC offset write
drm/dp: Implememnt support for I2C_IGNORE_NAK in the i2c-over-aux code

Please attach the dmesg again w/ drm.debug=0xe
Comment 42 Rene Arends 2016-10-07 16:08:34 UTC
Created attachment 127106 [details]
dmesg_i2c_ignore_nak with drm.debug=0xe
Comment 43 Ville Syrjala 2016-10-10 11:48:44 UTC
(In reply to r.r.arends from comment #42)
> Created attachment 127106 [details]
> dmesg_i2c_ignore_nak with drm.debug=0xe

That didn't come out as I expected. Looks like I fumbled the patch a bit.
I pushed an additonal fix [1], please re-test.

[1]
drm/dp: Fix IGNORE_NAK
Comment 44 Rene Arends 2016-10-10 13:48:16 UTC
Created attachment 127167 [details]
dmesg_fix_ignore_nak

sorry for the delay... dmesg_fix_ignore_nak
Comment 45 Ville Syrjala 2016-10-11 16:31:16 UTC
(In reply to r.r.arends from comment #44)
> Created attachment 127167 [details]
> dmesg_fix_ignore_nak
> 
> sorry for the delay... dmesg_fix_ignore_nak

Yeah still nack all over. No good :(

I pushed another random idea [1], though I'm not really expecting much from this one TBH.

[1] drm/i915/skl: Implement DP Aux Mutex framework
Comment 46 Rene Arends 2016-10-11 16:42:53 UTC
Created attachment 127221 [details]
attachment-2363-0.html

Compiling, let you know in a bit

From: bugzilla-daemon@freedesktop.org [mailto:bugzilla-daemon@freedesktop.org]
Sent: dinsdag 11 oktober 2016 18:31
To: Arends, R.R. (René) <r.r.arends@hr.nl>
Subject: [Bug 97822] Split screen/display corruption issue on HP EliteOne 800 G2 23-in Touch AIO

Comment # 45<https://bugs.freedesktop.org/show_bug.cgi?id=97822#c45> on bug 97822<https://bugs.freedesktop.org/show_bug.cgi?id=97822> from Ville Syrjala<mailto:ville.syrjala@linux.intel.com>

(In reply to r.r.arends from comment #44<show_bug.cgi?id=97822#c44>)

> Created attachment 127167 [details]<attachment.cgi?id=127167> [details]<attachment.cgi?id=127167&action=edit>

> dmesg_fix_ignore_nak

>

> sorry for the delay... dmesg_fix_ignore_nak



Yeah still nack all over. No good :(



I pushed another random idea [1], though I'm not really expecting much from

this one TBH.



[1] drm/i915/skl: Implement DP Aux Mutex framework

________________________________
You are receiving this mail because:

  *   You are on the CC list for the bug.
Comment 47 Rene Arends 2016-10-11 17:48:36 UTC
Created attachment 127223 [details]
dmesg_Implement_DP_Aux_Mutex_framework

dmesg_Implement_DP_Aux_Mutex_framework
Comment 48 Michael Shigorin 2016-11-30 15:11:23 UTC
Can access this model at the moment.

Vanilla 4.8.11 fails the very same way.

4.8.11 + cherry-picked 8f6bd6297a9c62f03aa3ff3855ff4a159fddd55a
from git://github.com/vsyrjala/linux.git (as per comment 24)
with i915.vbt_sdvo_panel_type=0 works fine on this panel indeed.

Jani, any more ideas to test or info to gather/provide for a proper fix?
Comment 49 Rob 2016-12-12 12:44:43 UTC
Hi All, I just stumbled upon this as I'm having the same issue with the screen, however I have the "Non-touch" version of the hardware.
Still a relative Linux newbie so I am reading all posts and trying to get my head around them.
Has anyone got any updates as last comment was a month ago?
Appreciate for any info anyone can provide on this.
Rob
Comment 50 Michael Shigorin 2016-12-12 13:31:42 UTC
(In reply to Rob from comment #49)
> Still a relative Linux newbie so I am reading all posts and trying to get my
> head around them.
You might concentrate on comment 24.

> Has anyone got any updates as last comment was a month ago?
I've just released ALT starterkits with a few flavours (namely gnome3/systemd, icewm/sysvinit, and rescue) having a kernel with this hack applied, so you can at least pass "i915.vbt_sdvo_panel_type=0" to the livecd kernel and boot (should one choose to install such an image, editing /etc/sysconfig/grub2 and running update-grub would become requisite): http://en.altlinux.org/starterkits
Comment 51 Rene Arends 2016-12-12 13:58:06 UTC
We implemented the same workaround 'hack' from #24 in our in house kiosk netboot image, hopefully a permanent solution will be found and reach mainline some day.
Comment 52 Rob 2016-12-12 15:02:11 UTC
Ok thanks both. I was looking at comment 24 but couldn't get to:git://github.com/vsyrjala/linux.git acpi_edid
Sorry if i'm being stupid....
Regards
Comment 53 Rene Arends 2016-12-12 15:32:59 UTC
I couldn't test this at the moment, but something like this:
git clone git://github.com/vsyrjala/linux.git
cd linux
git checkout acpi_edid

and then compile the kernel....

(In reply to Rob from comment #52)
> Ok thanks both. I was looking at comment 24 but couldn't get
> to:git://github.com/vsyrjala/linux.git acpi_edid
> Sorry if i'm being stupid....
> Regards
Comment 54 Rene Arends 2016-12-12 15:56:00 UTC
Created attachment 128434 [details]
workaround patch we used

I can't seem to find the right commit anymore, but i just looked up the patch we used that worked for us.
Comment 55 Michael Shigorin 2016-12-12 16:06:09 UTC
Created attachment 128436 [details] [review]
[PATCH] drm/i915/hack: Abuse i915.vbt_sdvo_panel_type also for  LVDS/eDP/DSI

Here's that 4.8 commit (tried backporting it to 4.4 but failed being no real
kernel developer, heh).
Comment 56 Rob 2016-12-12 16:22:25 UTC
So sorry guys - I thought git://github.com/vsyrjala/linux.git panel_type_modparam was a link and was trying to resolve it in my browser!
Anyway I now have the kernel compiled. Not entirely sure what to do with:
"[PATCH] drm/i915/hack: Abuse i915.vbt_sdvo_panel_type also for  LVDS/eDP/DSI" or "i915.vbt_sdvo_panel_type=0"
Comment 57 Michael Shigorin 2016-12-12 16:30:52 UTC
That commit was extracted from "panel_type_modparam" branch of git repository you referenced above (so if you built the code from that branch you don't need to apply the patch anyore); still needs a kernel cmdline parameter to make any difference though, see comment 24.

In the meanwhile, I second Rene's comment 51 :)
Comment 58 Robert Wolf 2017-01-09 09:57:04 UTC
Hello all,

we have same problem and I have found following thread on 01.org (intel open source):

https://01.org/linuxgraphics/forum/graphics-installer-discussions/it-driver-problem

Dorian Petit reports the same problem, but he has the problem on 50% of PCs. With HP support he has found that the problem is only on PCs with LG panels. PCs with Samsung panel work correctly.

I have tried now to read EDID to find out what panel do we have, but the build-in panel/monitor on eDP-1 reports no EDID (neither xrandr --prop nor get-edid shows any edid). External monitor on DP-1 reports his EDID correctly. Does anyone any idea how could I found out the panel manufacturer? Thank you for answers.

BTW: Our monitors have label Bang&Olufsen - is this LG monitor or something else? For G1 model, there are items "Backlight cable for use with Samsung display panels" and "Backlight cable for use with LG and BOE display panels" in spare parts list. Is there maybe the same for G2? Is the BOE display panel the Bang&Olufsen? That would mean there are three different possible panels - Samsung, LG and BOE. LG and BOE have this problem and Samsung has no problem.

I hope this information help you too.

Regards,

Robert Wolf.
Comment 59 Robert Wolf 2017-01-09 10:06:42 UTC
One more note.

As workaround we use VESA mode (we have disabled KMS and installed VESA Xorg driver), but the default timings are so low, so X can start only in 1024x768. I have created /etc/X11/xorg.conf.d/monitor.conf file with content:

Section "Screen"
        Identifier "Default Screen Section"
        Monitor "default monitor"
EndSection

Section "Monitor"
        Identifier "default monitor"
        HorizSync 70000
        Option "MaxClock" "143978000"
        VertRefresh 60
EndSection

and now X can start in 1920x1080 in VESA mode.

But we cannot activate DP-1 on external monitor with xrandr in this VESA mode. Probably with BIOS 2.10 the DP-1 was activated on boot, but with 2.18 is not. And we can now downgrade BIOS only to 2.17, older BIOS "is denied by system policy".

Regards,

Robert Wolf.
Comment 60 Michael Shigorin 2017-01-09 11:19:29 UTC
(In reply to Robert Wolf from comment #58)
> BTW: Our monitors have label Bang&Olufsen
Should relate to audio (speakers).
Comment 61 Rob 2017-01-09 12:01:07 UTC
Thanks for posting this Robert. I am going to see if I can get our test pc replaced with one with a Samsung panel and then if that works, see if I can get all future ones we order with the Samsung panel.
Comment 62 Rene Arends 2017-01-09 13:18:10 UTC
We are gonna try the same, my colleague will contact HP support tomorrow. :)
We have about 15 of those broken ones.... Currently working correct and in production with the kernel workaround patch from on of the above comments though.
Comment 63 Robert Wolf 2017-01-18 11:23:29 UTC
Hello all,

I have big news for all of you with the same problem. We have opened ticket by HP and they wanted from us to install Windows and run some diagnostic tool. My colleague did that and sent the diag result to HP. HP answered to update some drivers and BIOS (we have downgraded BIOS to try if that helps) and they have noticed too, that the windows has been installed with Legacy Support Enabled. They have told us to disabled Legacy Support and reinstall Windows.

We have opened this ticket because of other problem. Because I have configured Xorg to use VESA driver, I cannot use xrandr. But we need to switch external output with duplicated image. This was not possible. As soon as colleague has disabled Legacy Support to install Windows correctly, the external monitor has shown the duplicated image (as expected).

I have installed my linux image a few years ago for older PCs with BIOS, therefore I was still using old boot method - PXEboot and grub from MBR from disk. Now I have prepared (U)EFI netboot, because of disabled Legacy Support. As we wanted to test if the duplicated image on external monitor works with UEFI boot, we have started Ubuntu 16.10 from USB flash as UEFI. We have not disabled i915 KMS and we expected that the image will be shown again only on upper half. But the image was displayed on whole screen! We have enabled Legacy Support and the image was again only on upper half. Then again Legacy Support disabled and image was again OK. So we have coincidentally found the BUG in this BIOS - if the Legacy Support is enabled, (1) image is not by default cloned to connected external output, (2) with standard Linux i915 KMS and xorg-intel video drivers the image is squeezed to upper half of screen on internal output, even if the resolution is correct. If Legacy Support is disabled, everything works fine - image is duplicated to external monitor right after switch on (even the HP logo is duplicated) and image is displayed correctly on internal output even with i915 KMS and xorg intel driver.

Could some please verify our findings and post the results? Thank you very much. We will test other two PCs today afternoon, this time without Windows and any Windows update drivers and/or firmwares. We keep only BIOS on the newest version 2.18.

I have made a few images to describe this problem to HP Support too. If I could not attach images here, you can find them on Google Drive https://drive.google.com/drive/folders/0B5Ft-0qGPraicHZDVWw3WDdkTEk?usp=sharing


Regards,

Robert Wolf.
Comment 64 Robert Wolf 2017-01-18 12:04:17 UTC
Created attachment 129023 [details]
External output in BIOS does not work if Legacy Support enabled
Comment 65 Robert Wolf 2017-01-18 12:04:32 UTC
Created attachment 129024 [details]
Linux console squeezed to upper half if Legacy Support enabled
Comment 66 Robert Wolf 2017-01-18 12:04:41 UTC
Created attachment 129025 [details]
Xorg image squeezed to upper half if Legacy Support enabled
Comment 67 Robert Wolf 2017-01-18 12:04:48 UTC
Created attachment 129026 [details]
External output in BIOS works if Legacy Support disabled
Comment 68 Robert Wolf 2017-01-18 12:04:54 UTC
Created attachment 129027 [details]
Linux console on whole screen if Legacy Support disabled
Comment 69 Robert Wolf 2017-01-18 12:05:01 UTC
Created attachment 129028 [details]
Xorg image on whole screen if Legacy Support disabled
Comment 70 Rob 2017-01-18 12:29:25 UTC
Hi Robert, Thanks for your updates, appreciate it!
Anyway I have just disabled legacy boot and now I can confirm that I get the display on the whole screen etc. I've not installed or changed anything in Windows on the pc or changed the bios version. I'll have a look in a minute to confirm bios version
Comment 71 Rob 2017-01-18 12:37:54 UTC
Mine was on 2.06
Comment 72 Jani Nikula 2017-01-18 14:06:36 UTC
(In reply to Robert Wolf from comment #63)
> I have installed my linux image a few years ago for older PCs with BIOS,
> therefore I was still using old boot method - PXEboot and grub from MBR from
> disk. Now I have prepared (U)EFI netboot, because of disabled Legacy
> Support. As we wanted to test if the duplicated image on external monitor
> works with UEFI boot, we have started Ubuntu 16.10 from USB flash as UEFI.
> We have not disabled i915 KMS and we expected that the image will be shown
> again only on upper half. But the image was displayed on whole screen! We
> have enabled Legacy Support and the image was again only on upper half. Then
> again Legacy Support disabled and image was again OK. So we have
> coincidentally found the BUG in this BIOS - if the Legacy Support is
> enabled, (1) image is not by default cloned to connected external output,
> (2) with standard Linux i915 KMS and xorg-intel video drivers the image is
> squeezed to upper half of screen on internal output, even if the resolution
> is correct. If Legacy Support is disabled, everything works fine - image is
> duplicated to external monitor right after switch on (even the HP logo is
> duplicated) and image is displayed correctly on internal output even with
> i915 KMS and xorg intel driver.

This is not a surprising find. If the machine ships Windows with UEFI boot, that's likely the only combo that was ever tested.
Comment 73 Robert Wolf 2017-01-18 16:15:56 UTC
(In reply to Jani Nikula from comment #72)

> This is not a surprising find. If the machine ships Windows with UEFI boot,
> that's likely the only combo that was ever tested.

*** Hmmm, this PC was shipped with FreeDOS. I am not surprised now (HP tester: "It boots Windows with UEFI, so I pack it and we can sell it"), but I was surprised, when I was found the reason for this screen-problem:-)
Comment 74 Robert Wolf 2017-01-18 17:13:58 UTC
(In reply to Rob from comment #70)
> Hi Robert, Thanks for your updates, appreciate it!
> Anyway I have just disabled legacy boot and now I can confirm that I get the
> display on the whole screen etc. I've not installed or changed anything in
> Windows on the pc or changed the bios version. I'll have a look in a minute
> to confirm bios version

*** Thank you for your confirmation.

We have confirmed the solution "disabled Legacy Support" on other PC without Windows and updating any driver/firmware too. It is really Legacy Support, what makes the image problem.

Even BIOS version does not matter. We had the problem just after buying this PC with default BIOS. Then we have updated BIOS to version 2.10 (I must say the BIOS update over net works great - no stupid usb, cd, windows execs). In the first Jan week we have upgraded BIOS to 2.18. Still the same problem.

We will report this problem to HP and maybe they provide fix for this bug in new BIOS (or whatever) version.

But now we are happy, our problems are solved.

Regards,

Robert Wolf.
Comment 75 Jani Nikula 2017-01-19 10:24:07 UTC
(In reply to Robert Wolf from comment #74)
> But now we are happy, our problems are solved.

With that, I'm closing the bug. Thanks for the report, please reopen if you believe there are issues in the driver, or file new bugs for any other issues.
Comment 76 Michael Shigorin 2017-01-19 11:02:40 UTC
(In reply to Robert Wolf from comment #63)
> If Legacy Support is disabled, everything works fine
It's under F10 > BIOS Setup > Advanced > Secure Boot Configuration, right?
Comment 77 Robert Wolf 2017-01-19 12:57:33 UTC
(In reply to Michael Shigorin from comment #76)
> (In reply to Robert Wolf from comment #63)
> > If Legacy Support is disabled, everything works fine
> It's under F10 > BIOS Setup > Advanced > Secure Boot Configuration, right?

*** Yes, exactly. We use "Legacy Support Disabled and Secure Boot Disabled". Does it help for you too or not?

Important is to have Legacy Support Disabled. It is not enough just boot from UEFI and have Legacy Support enabled - it must be disabled (and then the only way to boot is UEFI).

Regards,

Robert Wolf.
Comment 78 Robert Wolf 2017-01-20 11:03:07 UTC
Hello all,

We have received response from HP support (included below) to this problem. Translated to english for those who does not understand german:

==================================================
Dear Mr. NNNNNN,

thank you for your request at our Support.

Below I have included the link which could help you to troubleshoot.

HP Elite 800 G2 Series Buisness Desktop - Quick Specs:
http://www8.hp.com/h20195/v2/GetPDF.aspx/c04818335.pdf

You can find the list of supported operating systems on the page 26.

...
==================================================

And the page 26 shows:

==================================================
OPERATING SYSTEMS

  Preinstalled
  Windows 10 Pro 64*
  Windows 10 Home 64*
  Windows 8.1 Pro 64**
  Windows 8.1 64**
  Windows 7 Professional 64 (available through downgrade rights from Windows 10 Pro)***
  Windows 7 Professional 32 (available through downgrade rights from Windows 10 Pro)***
  Windows 7 Professional 64**
  Windows 7 Professional 32**

  Pre-installed (Other)
  FreeDOS 2.0

  Web-supported
  Windows 10 Pro 64
  Windows 10 Home 64
  Windows 8.1 Pro 64
  Windows 8.1 64
  Windows 7 Professional 64
  Windows 7 Professional 32
  Windows 10 Enterprise 64
  Windows 8.1 Enterprise 64
  Windows 7 Enterprise 64
  Windows 7 Enterprise 32
==================================================

So I think HP support will not make any progress, until someone finds some bug on Windows caused by this BIOS issue. But even then, they tell you first disable Legacy Support so all problems disappears. Instead "Legacy Support", there should be written "System with bugs":-)

So next time, we will sure ask for Linux support before buying any device. Otherwise I will refuse install there Linux.

Just warning for other Linux fans.

Regards,

Robert Wolf.


==================================================
Von:   HPSupport_Global <wfm@g9u1421c.houston.hp.com>
An:   <nnnnnnnnnnnnn@ddddddddd>
Gesendet:   19.01.2017 16:45
Betreff:   <CASE:4781361553>

Sehr geehrter Herr Natter,

vielen Dank für Ihre Anfrage bei unserem Support.  

Hiermit geben wir Ihnen einen Link an, der Ihnen bei der Problemlösung helfen sollte:

HP Elite 800 G2 Series Buisness Desktop - Quick Specs:
http://www8.hp.com/h20195/v2/GetPDF.aspx/c04818335.pdf

Unterstützte betriebsysteme finden Sie auf die Seite 26.  

Bei Fragen erreichen Sie uns telefonisch unter den Hotline-Nummern in der Fussnote oder
schriftlich, indem Sie diese E-Mail beantworten.  

Um auf diese E-Mail zu antworten klicken Sie einfach auf die Antwortfunktion Ihres E-Mail
Programms. Bitte ändern Sie nichts an der Adresse und lassen am Betreff nur das orginale
Thema (FW:, AW: bitte löschen).

Wir hoffen, Ihnen mit diesen Auskünften geholfen zu haben und verbleiben  

mit freundlichen Grüßen,

Anna Pasztor  

HP Computing Support  
==================================================
Comment 79 Jani Nikula 2017-01-20 12:58:58 UTC
(In reply to Robert Wolf from comment #78)
> So I think HP support will not make any progress, until someone finds some
> bug on Windows caused by this BIOS issue. But even then, they tell you first
> disable Legacy Support so all problems disappears. Instead "Legacy Support",
> there should be written "System with bugs":-)

Again, completely unsurprising. Did you ask if they actually support "Legacy Support" with any operating system? If not, there really is no point in trying to use it with Linux.

> So next time, we will sure ask for Linux support before buying any device.
> Otherwise I will refuse install there Linux.

They way OEMs seem to operate, if they supported Linux, I think they would have listed a specific version of a specific distro. Would that have helped you?
Comment 80 Michael Shigorin 2017-02-01 11:33:58 UTC
(In reply to Robert Wolf from comment #77)
> > It's under F10 > BIOS Setup > Advanced > Secure Boot Configuration, right?
> *** Yes, exactly. We use "Legacy Support Disabled and Secure Boot Disabled".
> Does it help for you too or not?
Finally got my hands on 800G2EONA (G4400) again -- yes it does!
Comment 81 Eric Johansson 2017-02-21 12:22:41 UTC
Created attachment 129790 [details]
/sys/kernel/debug/dri/0/i915_vbt for bios and uefi mode
Comment 82 Eric Johansson 2017-02-21 12:26:10 UTC
Comment on attachment 129790 [details]
/sys/kernel/debug/dri/0/i915_vbt for bios and uefi mode

I have an HP EliteOne 800 G2 23-in Non-Touch All-in-One PC which also has the Bang & Olufsen logo at the top left of the screen. I have the exact same problem as described with the graphics. When I switch from BIOS mode (default) on the computer to UEFI mode the graphics started to work as expected.

I am now running Ubuntu 16.04.2 LTS with kernel 4.8.0-36-generic. In case anyone would like to try figure out why the graphic is not working in BIOS mode I got the suggestion of providing /sys/kernel/debug/dri/0/i915_vbt for both modes so I did "cat /sys/kernel/debug/dri/0/i915_vbt > /tmp/i915_vbt-mode" and have attached tar.gz of those two files.

Best regards, Eric
Comment 83 Jani Nikula 2017-02-21 14:32:01 UTC
Created attachment 129793 [details]
diff between VBT dumps for BIOS and UEFI boots

The BIOS provides us with a different Video BIOS Table (VBT) depending on legacy vs. UEFI boot. There are differences in the panel type (really just an index in the tables), device type, timings. It's ridiculous that there are differences to begin with, as if the display hardware required different handling depending on the boot mode. I'm not sure which change (if any) explain the change in behaviour.
Comment 84 Jani Nikula 2017-02-22 09:29:22 UTC
Now here's something to try, not for the faint of heart!

1) Grab /sys/kernel/debug/dri/0/i915_vbt from the working boot mode (UEFI), place it under /lib/firmware

2) Grab kernel from drm-tip branch of https://cgit.freedesktop.org/drm-tip

3) Apply all patches from https://patchwork.freedesktop.org/series/20016/ on top

4) Boot in the failing boot mode (legacy), make sure it still fails ;)

5) Add module parameter i915.vbt_firmware=i915_vbt, cross fingers, and boot in the legacy mode, see what happens

Disclaimer, the last patch hasn't been tested, I don't think it'll eat your kittens, but no warranties either. ;)
Comment 85 Ferry 2017-11-14 11:14:16 UTC
Hi,

we have a case open with HP to see if they will fix the BIOS timing table. Will report back if they do. Same issue occurs on the HP ProOne 600 G2 by the way.

Did also come across this:

https://lab.nexedi.cn/kirr/linux/commit/5a1e5b6c460dccfd189c7e962281c8cce75da728

I'm not sure if it's relevant. Mostly this part might apply:

Judging by comments in the BIOS, if the SDVO LVDS option h40 is enabled,
then we are supposed to query the real panel type via Int15. We don't do
this and so for the Sony Vaio VGC-JS210J which has otherwise default
values, we choose the wrong mode.


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.