Bug 71035 - [NV86] PDISP evo flush (?) errors, broken modesetting
Summary: [NV86] PDISP evo flush (?) errors, broken modesetting
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
Depends on:
Reported: 2013-10-30 08:01 UTC by Dominik George
Modified: 2013-10-30 17:33 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

dmesg output (54.97 KB, text/plain)
2013-10-30 08:01 UTC, Dominik George
no flags Details
VBIOS from graphics card (58.00 KB, application/octet-stream)
2013-10-30 08:02 UTC, Dominik George
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dominik George 2013-10-30 08:01:00 UTC
Created attachment 88342 [details]
dmesg output

** Slightly modified version from Debian Bug #728278 **

The nouveau driver fails on this hardware. A talk in #nouveau on
Freenode turned up that the failure is related to the EVO engine
responsible for modesetting. Here are the relevant parts of that chat,
more explanations follow below:

08:02 < imirkin> nouveau E[   PDISP][0000:01:00.0] chid 0 mthd 0x0080 data 0x00000000 0x000d5080
08:02 < Natureshadow> that means?
08:02 < imirkin> that's a bit unfortunate
08:02 < imirkin> dunno, gimme a min
08:02 < Natureshadow> sorry, I am not a kernel hacker ;) ...
08:03 < imirkin> oh, that's the EVO flush
08:03 < imirkin> and the d5080 is probably the fifo position or something
08:03 < imirkin> uhm, silly question... do you have any indication that this hardware actually works?
08:05 < imirkin> (e.g. on windows, or using the nvidia blob or using the nv driver)
08:08 < Natureshadow> imirkin: it works with the nvidia driver
08:08 < imirkin> hm, ok
08:09 < Natureshadow> And GRUB can set the 1440x900 mode
08:09 < Natureshadow> So I assume VESA works as well
08:09 < imirkin> right, but that's a different mechanism
08:09 < Natureshadow> ok
08:09 < imirkin> what makes you say that edid is broken? is it broken with nvidia driver as well?
08:09 < Natureshadow> In any case, installing the nvidia-glx driver and loading the EDID file with X.org rather than at boot (nvidia does
                      not support modesetting) works
08:10 < Natureshadow> imirkin: Yes, it is.
08:10 < imirkin> k
08:10 < Natureshadow> The display EDID is corrupted, I have been loading that EDID file forever with the nvidia driver
08:10 < Natureshadow> But as nouveau works great on all other hardware I have, I wanted to get rid of that unnecessary binary blob ;)
08:11 < imirkin> yeah, for some reason the EVO commands just aren't working
08:11 < Natureshadow> Is that something I can fix ;)?
08:11 < imirkin> (these are commands used to control the display engine, which controls the mode/etc)
08:11 < imirkin> well, if the nvidia driver works, it must be fixable
08:11 < Natureshadow> ok :D
08:11 < imirkin> the question is... how
08:12 < Natureshadow> I'm sure that question is a lot easier for you than for me ;)
08:12 < Natureshadow> I'm ready for any debugging, may it be as crazy as you like .)
08:14 < imirkin> well, the command likely comes from evo_sync() in nv50_display.c
08:14 < imirkin> or perhaps nv50_display_flip_stop
08:15 < imirkin> but why does it error out? who knows. i don't know much about the evo bits.
08:16 < Natureshadow> imirkin: hmm. so, seeing that the nvidia driver works, is this a bug in nouveau I should report, or is it due to my
                      broken hardware?
08:16 < imirkin> given that the nvidia driver can work, it seems likely that it's a bug in nouveau
08:33 < imirkin> it kinda feels like the evo engine isn't being turned on at all
08:34 < imirkin> probably some missed register write somewhere
08:34 < imirkin> (whereby it normally starts out as 'on' for everone except you)

I must add two things:

 1. The display EDID of this device is corrupted, but I have worked
    around that by ...
 2. ... loading a corrected version of the EDID binary from a file. That worked 
    (see dmesg), so I think it is irrelevant for the bug.

The effect of this issue is that when modesetting, some garbage is
written to the screen, the scrollback buffer is scrolled up a bit, but
modesetting never really happens.
Comment 1 Dominik George 2013-10-30 08:02:54 UTC
Created attachment 88343 [details]
VBIOS from graphics card

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.