Bug 77674

Summary: [NVE7] "failed to read DPCD" on wake up with external monitor
Product: xorg Reporter: Dzmitry Lazerka <dlazerka>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
kern.log from wake up to crash none

Description Dzmitry Lazerka 2014-04-19 17:25:10 UTC
Hi folks,
I have:

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107GLM [Quadro K1000M] [10de:0ffc] (rev a1)
(one year old thinkpad laptop)

and I'm unable to wake up. Well, not be, but my "Linux 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux" (Mint, Debian Edition, "testing").
Optimus is disabled in BIOS (only discrete is used). On waking up I see four lines:

[ 8618.926501] mei_me 0000:00:16.0: suspend
[ 8623.309085] nouveau E[  PDISP][000:01:00.0] DP:0006:0f48: failed to read DPCD
[ 8625.220708] dpm_run_callback(): usb_dev_resume+0x0/0x10 [usbcore] returns -32
[ 8625.220712] PM: Device 4-1.8.1.1.1 failed to resume async: error -32


Reproducible only with external monitors (via dock station).


Sorry, not sure how to get Nouveau version.
$ apt-cache showpkg xserver-xorg-video-nouveau
...
Dependencies:
1:1.0.10-1 - libc6 (2 2.15) libdrm-nouveau2 (2 2.4.38) libdrm2 (2 2.4.25) libudev1 (2 183) xorg-video-abi-14 (0 (null)) xserver-xorg-core (2 2:1.13.99.901) libgl1-mesa-dri (2 9.0) xserver-xorg-video-nouveau:i386 (0 (null)) " if that helps.
Comment 1 Ilia Mirkin 2014-04-19 17:38:54 UTC
(In reply to comment #0)
> Hi folks,
> I have:
> 
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107GLM
> [Quadro K1000M] [10de:0ffc] (rev a1)
> (one year old thinkpad laptop)
> 
> and I'm unable to wake up. Well, not be, but my "Linux 3.11-2-amd64 #1 SMP
> Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux" (Mint, Debian Edition,
> "testing").
> Optimus is disabled in BIOS (only discrete is used). On waking up I see four
> lines:
> 
> [ 8618.926501] mei_me 0000:00:16.0: suspend
> [ 8623.309085] nouveau E[  PDISP][000:01:00.0] DP:0006:0f48: failed to read
> DPCD
> [ 8625.220708] dpm_run_callback(): usb_dev_resume+0x0/0x10 [usbcore] returns
> -32
> [ 8625.220712] PM: Device 4-1.8.1.1.1 failed to resume async: error -32
> 
> 
> Reproducible only with external monitors (via dock station).

Could you confirm that this still happens with the latest kernel (3.14.1)? If it does, can you grab dmesg when you boot with

nouveau.debug=VBIOS=trace,PDISP=trace drm.debug=0xe

(including the suspend/resume bits).

> 
> 
> Sorry, not sure how to get Nouveau version.
> $ apt-cache showpkg xserver-xorg-video-nouveau
> ...
> Dependencies:
> 1:1.0.10-1 - libc6 (2 2.15)
> libdrm-nouveau2 (2 2.4.38)
> libdrm2 (2 2.4.25)
> libudev1 (2 183)
> xorg-video-abi-14 (0 (null))
> xserver-xorg-core (2 2:1.13.99.901)
> libgl1-mesa-dri (2 9.0)
> xserver-xorg-video-nouveau:i386 (0 (null))
> if that helps.

Not related to your issues, but there have been a lot of 3d driver improvements since mesa 9.0... you might want to upgrade. 10.1 has been out for months now, and 10.1.1 just got released. And if you want optimus to work, get xorg 1.14.3 or later... should give you much better battery life.
Comment 2 Ilia Mirkin 2014-06-11 23:33:15 UTC
There is a substantial DP rework bound for 3.16. Can you give http://cgit.freedesktop.org/~airlied/linux/log/?h=drm-next a shot?
Comment 3 Eric Swanson 2014-06-20 23:50:21 UTC
To add my two cents:

I had this same issue on Arch Linux's 3.14.5-1-ARCH, Linus's v3.15, and linux-3.15.y from the linux-stable tree. imirkin's advice of trying out drm-next (commit bc1dfff04a5d4064ba0db1fab13f84ab4f333d2b) seems to have fixed it for me.

I'm using an active (USB powered) DisplayPort -> Dual Link DVI adapter to drive a 27" 2560x1440 monitor from a Lenovo ThinkPad W530. I don't have a dock.

As another data point, drm-fixes from airlied's tree (commit 884d6147ba19640a40fb45efe64360cdf92cac27) built but did not boot for me - it hung before starting anything on my root drive (initrd seems to have loaded fine).
Comment 4 jason leroy 2014-06-24 14:22:50 UTC
I am experiencing the same issue on ArchLinux. My Hardware:

 * HP EliteBook 8440p
 * VGA compatible controller: NVIDIA Corporation GT218M [NVS 3100M]

Installed software:

 * ArchLinux with all available updates
 * Kernel 3.15.1-1-ARCH
 * nouveau-dri 10.2.1-2
 * xf86-video-nouveau 1.0.10-2
 * lib32-nouveau-dri 10.2.1-3

My Log shows the following for nouveau when I suspend/resume the system:

nouveau  [     DRM] suspending display...
nouveau  [     DRM] unpinning framebuffer(s)...
nouveau  [     DRM] evicting buffers...
nouveau  [     DRM] waiting for kernel channels to go idle...
nouveau  [     DRM] suspending client object trees...
nouveau  [     DRM] suspending kernel object tree...
nouveau  [     DRM] re-enabling device...
nouveau  [     DRM] resuming kernel object tree...
nouveau  [   VBIOS][0000:01:00.0] running init tables
nouveau  [    VOLT][0000:01:00.0] GPU voltage: 850000uv
nouveau  [  PTHERM][0000:01:00.0] fan management: automatic
nouveau  [     CLK][0000:01:00.0] --: core 405 MHz shader 810 MHz memory 405 MHz
nouveau  [     DRM] resuming client object trees...
nouveau  [     DRM] resuming display...
nouveau E[   PDISP][0000:01:00.0] DP:0006:0344: failed to read DPCD
nouveau E[   PDISP][0000:01:00.0] DP:0006:0344: link training failed

In my case there is NO external display and also NO docking station. It's the display of the laptop that remains black.

For me, long-pressing the power button is the only way out of this situation.
Comment 5 Dzmitry Lazerka 2014-06-24 17:58:40 UTC
(In reply to comment #1)
> (In reply to comment #0)
> > Hi folks,
> > I have:
> > 
> > 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107GLM
> > [Quadro K1000M] [10de:0ffc] (rev a1)
> > (one year old thinkpad laptop)
> > 
> > and I'm unable to wake up. Well, not be, but my "Linux 3.11-2-amd64 #1 SMP
> > Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux" (Mint, Debian Edition,
> > "testing").
> > Optimus is disabled in BIOS (only discrete is used). On waking up I see four
> > lines:
> > 
> > [ 8618.926501] mei_me 0000:00:16.0: suspend
> > [ 8623.309085] nouveau E[  PDISP][000:01:00.0] DP:0006:0f48: failed to read
> > DPCD
> > [ 8625.220708] dpm_run_callback(): usb_dev_resume+0x0/0x10 [usbcore] returns
> > -32
> > [ 8625.220712] PM: Device 4-1.8.1.1.1 failed to resume async: error -32
> > 
> > 
> > Reproducible only with external monitors (via dock station).
> 
> Could you confirm that this still happens with the latest kernel (3.14.1)?
> If it does, can you grab dmesg when you boot with
> 
> nouveau.debug=VBIOS=trace,PDISP=trace drm.debug=0xe
> 
> (including the suspend/resume bits).
> 

Hi Ilia, sorry for the late reply. I'll try to update my kernel (although I switched to Nvidia drivers because I needed WebGL). Let me try the new kernel.
What config to put the "nouveau.debug=VBIOS=trace,PDISP=trace drm.debug=0xe" line?

> > 
> > 
> > Sorry, not sure how to get Nouveau version.
> > $ apt-cache showpkg xserver-xorg-video-nouveau
> > ...
> > Dependencies:
> > 1:1.0.10-1 - libc6 (2 2.15)
> > libdrm-nouveau2 (2 2.4.38)
> > libdrm2 (2 2.4.25)
> > libudev1 (2 183)
> > xorg-video-abi-14 (0 (null))
> > xserver-xorg-core (2 2:1.13.99.901)
> > libgl1-mesa-dri (2 9.0)
> > xserver-xorg-video-nouveau:i386 (0 (null))
> > if that helps.
> 
> Not related to your issues, but there have been a lot of 3d driver
> improvements since mesa 9.0... you might want to upgrade. 10.1 has been out
> for months now, and 10.1.1 just got released. And if you want optimus to
> work, get xorg 1.14.3 or later... should give you much better battery life.

Well, that was Mint Debian Edition (based on Debian Testing), I use "apt-get upgrade" tells me to. If I could install newer version through apt-get, that would be cool.
Comment 6 Ilia Mirkin 2014-06-24 18:07:34 UTC
(In reply to comment #5)
> switched to Nvidia drivers because I needed WebGL). Let me try the new
> kernel.

Definitely give 3.16-rc2 a shot.

> What config to put the "nouveau.debug=VBIOS=trace,PDISP=trace drm.debug=0xe"
> line?

If it doesn't work, add

nouveau.debug=VBIOS=trace,PDISP=trace,I2C=trace drm.debug=0xe

to the kernel command line, and report back with the dmesg generated. Not sure how your distro works... I use GRUB, and configure it via /boot/grub/menu.lst
Comment 7 Dominique Dumont 2014-11-18 07:31:49 UTC
Created attachment 109656 [details]
kern.log from wake up to crash
Comment 8 Dominique Dumont 2014-11-18 07:36:03 UTC
Hello

I have a similar problem with my laptop:
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)
kernel: SMP Debian 3.16.7-2 (2014-11-06) x86_64 GNU/Linux

The options nouveau.debug=VBIOS=trace,PDISP=trace,I2C=trace drm.debug=0xe does make the setup more robust, but I has a crash this morning while expanding the screen display to an external monitor connected to a dock station.

For what it's worth, I've attached a kern.log generated with the above trace from the wake up of the machine up to the crash.


Hope this helps
Comment 9 Martin Peres 2019-12-04 08:45:05 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/issues/104.

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.