https://bugzilla.kernel.org/show_bug.cgi?id=111271
Bug ID: 111271 Summary: Black stripe on screen with MGAG200 (PowerEdge R320) and modesetting Product: Drivers Version: 2.5 Kernel Version: 4.4 Hardware: x86-64 OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: jean-yves.faye@c-s.fr Regression: No
Created attachment 201391 --> https://bugzilla.kernel.org/attachment.cgi?id=201391&action=edit dmesg
I use Xorg with modesetting driver on a R320 PowerEdge Dell server.
I've upgraded kernel from 3.10.40 to a newer version.
With the upgrade, a black horizontal stripe appears next to the pointer when moving the mouse to the left edge of the screen. The stripe darker and wider on a CRT screen than a LCD screen it seems.
I've tested on 4.4 and the problem is still present.
I'm using Xorg with the modesetting driver, and the MGAG200 kernel module (dmesg and Xorg.log attached)
I've run a git bisect on the kernel and identified the commit causing the regression :
# first bad commit: [9125e6186822b2698da17690416cd1b55c030115] drm: Add drm_plane_force_disable()
Unfortunately I'm not familiar with the GPU/DRM part of the kernel, so I can't get this any further.
https://bugzilla.kernel.org/show_bug.cgi?id=111271
--- Comment #1 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 201401 --> https://bugzilla.kernel.org/attachment.cgi?id=201401&action=edit Xorg.0.log (4.4 kernel, disregard kernel command line)
https://bugzilla.kernel.org/show_bug.cgi?id=111271
--- Comment #2 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 201411 --> https://bugzilla.kernel.org/attachment.cgi?id=201411&action=edit kernel config for our Dell R320 (no module)
https://bugzilla.kernel.org/show_bug.cgi?id=111271
--- Comment #3 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 201421 --> https://bugzilla.kernel.org/attachment.cgi?id=201421&action=edit bisect log
I've ran bisect between 3.10.40 and 3.18, but still present on 4.4
Linux localhost.adm 4.4.0 #21 SMP Mon Jan 25 16:08:56 CET 2016 x86_64 Intel(R) Xeon(R) CPU E5-1410 v2 @ 2.80GHz GenuineIntel GNU/Linux
https://bugzilla.kernel.org/show_bug.cgi?id=111271
Ville Syrjala ville.syrjala@linux.intel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ville.syrjala@linux.intel.c | |om
--- Comment #4 from Ville Syrjala ville.syrjala@linux.intel.com --- commit 9125e6186822b2698da17690416cd1b55c030115 Author: Ville Syrjälä ville.syrjala@linux.intel.com Date: Mon Jun 3 16:10:40 2013 +0300
drm: Add drm_plane_force_disable()
just moves code around. So can't see how it could be related to this.
Well, actually it does add a plane->fb NULL check, so I suppose that could be somehow related if something else is buggy and clears plane->fb while the plane is still enabled. But actually, the mgag200 driver doesn't even do planes (nor is the hardware even capable of turning off the primary plane independent of the crtc) so not sure why this would have anything to do with the problem.
Without a picture it's a bit hard to know, but black horizontal lines at the left edge of the screen has a feel of underruns. I have seen such things plenty of times on my G550 when using the video overlay with eg. 1920x1080 mode with reduced blanking, if the overlay is postioned too close to the left edge of the screen. It's possible the hw cursor might suffer from similar issues.
Looking at the driver the hiprilvl computations seem a bit dubious at best. Possibly by tweaking that stuff it might be possible to eliminate the underruns, but no guarantees.
https://bugzilla.kernel.org/show_bug.cgi?id=111271
--- Comment #5 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 201431 --> https://bugzilla.kernel.org/attachment.cgi?id=201431&action=edit Picture of screen
This was caught on a CRT monitor and is quite visible. The strip follow the mouse cursor on the edge. The white section of screen outside what should be the drawing zone may help you too.
https://bugzilla.kernel.org/show_bug.cgi?id=111271
Jean-Yves Faye jean-yves.faye@c-s.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #201421|0 |1 is obsolete| |
--- Comment #6 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 202001 --> https://bugzilla.kernel.org/attachment.cgi?id=202001&action=edit bisect log
After trying to printk around this commit, I noticed some strange behavior, just adding debug statements making the stripe disappear. I suspected some side effects in the compilation process.
I've redone the bisect using mrproper instead of make clean between builds, copying my .config each time. I use make -j20 too.
Bisect results makes much more send now
Author: Christopher Harvey charvey@matrox.com Date: Wed Jun 5 15:24:26 2013 -0400
drm/mgag200: Hardware cursor support
https://bugzilla.kernel.org/show_bug.cgi?id=111271
--- Comment #7 from Jean-Yves Faye jean-yves.faye@c-s.fr --- Created attachment 202021 --> https://bugzilla.kernel.org/attachment.cgi?id=202021&action=edit dumb patch
Some experimentation lead me to this patch, this seems to resolve the problem, but I have no idead what this function should write in the register so I'm hoping for someone here to explain the problem.
dri-devel@lists.freedesktop.org