kernel-3.18.0-rc3.git-03dca70-drm-fixes+ http://cgit.freedesktop.org/~airlied/linux/log/?h=drm-fixes & http://cgit.freedesktop.org/~darktama/nouveau commit ae69cfbb13c0bd8426aa8fbb2e1f346149f5b22c Author: Roy Spliet Date: Thu Oct 30 22:57:45 2014 +0100 nv50/disp: Fix modeset on G94 Commit 1dce6264045cd23e9c07574ed0bb31c7dce9354f introduced a regression spotted on several G94 (FDObz #85160). This device seems to expect the vblank period to be set after setting scale instead of before. V2: shove this in a separate function This is a candidate bug-fix for 3.18 Signed-off-by: Roy Spliet Tested-by: Zlatko Calusic Tested-by: Michael Riesch Tested-by: "poma" Tested-by: Adam Williamson Signed-off-by: Ben Skeggs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ git clone -b drm-fixes git://people.freedesktop.org/~airlied/linux $ cd drm-fixes/ $ make menuconfig ... $ make [-j [steve]] bzImage && make [-j [steve]] modules $ su # make [-j [steve]] install && make [-j [steve]] modules_install # cat /etc/modprobe.d/blacklist-nouveau.conf blacklist nouveau # systemctl reboot ... .. . .. ... [ 0.000000] Linux version 3.18.0-rc3.git-03dca70-drm-fixes+ (poma@lnx) (gcc version 4.9.2 20141101 (Red Hat 4.9.2-1) (GCC) ) #8 SMP Tue Nov 11 12:57:52 CET 2014 $ uname -r 3.18.0-rc3.git-03dca70-drm-fixes+ $ git clone git://people.freedesktop.org/~darktama/nouveau $ cd nouveau/drm/ $ make [-j [steve]] $ su # mkdir /lib/modules/3.18.0-rc3.git-03dca70-drm-fixes+/updates # cp nouveau.ko /lib/modules/3.18.0-rc3.git-03dca70-drm-fixes+/updates/ # depmod # modprobe nouveau [ 82.280198] [drm] Initialized drm 1.1.0 20060810 [ 83.402797] nouveau: module verification failed: signature and/or required key missing - tainting kernel [ 83.408322] checking generic (f7000000 e00000) vs hw (d0000000 10000000) [ 83.408326] checking generic (f7000000 e00000) vs hw (f6000000 2000000) [ 83.408328] fb: switching to nouveaufb from VESA VGA [ 83.408444] Console: switching to colour dummy device 80x25 [ 83.410023] nouveau [ DEVICE][0000:02:00.0] BOOT0 : 0x098200a2 [ 83.410038] nouveau [ DEVICE][0000:02:00.0] Chipset: G98 (NV98) [ 83.410047] nouveau [ DEVICE][0000:02:00.0] Family : NV50 [ 83.526100] nouveau [ VBIOS][0000:02:00.0] using image from PRAMIN [ 83.526558] nouveau [ VBIOS][0000:02:00.0] BIT signature found [ 83.526573] nouveau [ VBIOS][0000:02:00.0] version 62.98.2c.00.00 [ 83.547537] nouveau 0000:02:00.0: irq 25 for MSI/MSI-X [ 83.547566] nouveau [ PMC][0000:02:00.0] MSI interrupts enabled [ 83.547636] nouveau [ PFB][0000:02:00.0] RAM type: DDR2 [ 83.547646] nouveau [ PFB][0000:02:00.0] RAM size: 512 MiB [ 83.547655] nouveau [ PFB][0000:02:00.0] ZCOMP: 960 tags [ 86.470924] nouveau [ PTHERM][0000:02:00.0] FAN control: none / external [ 86.470976] nouveau [ PTHERM][0000:02:00.0] fan management: automatic [ 86.470990] nouveau [ PTHERM][0000:02:00.0] internal sensor: yes [ 86.491074] nouveau [ CLK][0000:02:00.0] 0f: core 567 MHz shader 1400 MHz memory 400 MHz [ 86.491148] nouveau [ CLK][0000:02:00.0] --: core 566 MHz shader 1400 MHz memory 399 MHz [ 86.491544] [TTM] Zone kernel: Available graphics memory: 1892948 kiB [ 86.491561] [TTM] Initializing pool allocator [ 86.491579] [TTM] Initializing DMA pool allocator [ 86.491610] nouveau [ DRM] VRAM: 512 MiB [ 86.491619] nouveau [ DRM] GART: 1048576 MiB [ 86.491632] nouveau [ DRM] TMDS table version 2.0 [ 86.491640] nouveau [ DRM] DCB version 4.0 [ 86.491649] nouveau [ DRM] DCB outp 00: 02000300 00000028 [ 86.491659] nouveau [ DRM] DCB outp 01: 01000302 00020030 [ 86.491667] nouveau [ DRM] DCB outp 02: 04011310 00000028 [ 86.491676] nouveau [ DRM] DCB outp 03: 010223f1 00c0c080 [ 86.491684] nouveau [ DRM] DCB conn 00: 00001030 [ 86.491694] nouveau [ DRM] DCB conn 01: 00000100 [ 86.491702] nouveau [ DRM] DCB conn 02: 00000210 [ 86.491709] nouveau [ DRM] DCB conn 03: 00000211 [ 86.491717] nouveau [ DRM] DCB conn 04: 00000213 [ 86.508043] nouveau W[ DRM] failed to create encoder 0/1/0: -19 [ 86.508060] nouveau W[ DRM] TV-1 has no encoders, removing [ 86.508204] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 86.508213] [drm] Driver supports precise vblank timestamp query. [ 86.530047] nouveau [ DRM] MM: using M2MF for buffer copies [ 86.616667] nouveau [ DRM] allocated 1024x768 fb: 0x60000, bo ffff88007f421000 [ 86.616759] fbcon: nouveaufb (fb0) is primary device [ 86.683782] Console: switching to colour frame buffer device 128x48 [ 86.684085] nouveau 0000:02:00.0: fb0: nouveaufb frame buffer device [ 86.684095] nouveau 0000:02:00.0: registered panic notifier [ 86.689950] [drm] Initialized nouveau 1.2.1 20120801 for 0000:02:00.0 on minor 0 # systemctl suspend [ 143.895926] PM: Syncing filesystems ... done. [ 144.539885] PM: Preparing system for mem sleep [ 144.721072] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 144.722740] Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done. [ 144.723546] PM: Entering mem sleep [ 144.723560] Suspending console(s) (use no_console_suspend to debug) [ 144.742904] nouveau [ DRM] suspending console... [ 144.742919] nouveau [ DRM] suspending display... [ 144.742998] nouveau [ DRM] evicting buffers... [ 145.521278] nouveau [ DRM] waiting for kernel channels to go idle... [ 145.521287] nouveau [ DRM] suspending client object trees... [ 145.521840] nouveau [ DRM] suspending kernel object tree... [ 147.214726] PM: suspend of devices complete after 2490.870 msecs [ 147.215879] PM: late suspend of devices complete after 1.146 msecs [ 147.227738] PM: noirq suspend of devices complete after 11.850 msecs [ 147.229025] ACPI: Preparing to enter system sleep state S3 [ 147.230039] PM: Saving platform NVS memory & RESUME [ 147.237703] ACPI: Low-level resume complete [ 147.237768] PM: Restoring platform NVS memory [ 147.283090] ACPI: Waking up from system sleep state S3 [ 147.294615] PM: noirq resume of devices complete after 11.354 msecs [ 147.295060] PM: early resume of devices complete after 0.408 msecs [ 147.295124] nouveau [ DRM] re-enabling device... [ 147.295131] nouveau [ DRM] resuming kernel object tree... [ 147.295163] nouveau [ VBIOS][0000:02:00.0] running init tables [ 147.390219] nouveau [ PTHERM][0000:02:00.0] fan management: automatic [ 147.410268] nouveau [ CLK][0000:02:00.0] --: core 566 MHz shader 1400 MHz memory 399 MHz [ 147.410752] nouveau [ DRM] resuming client object trees... [ 147.411008] nouveau [ DRM] resuming display... [ 147.461545] nouveau [ DRM] resuming console... [ 147.461563] PM: resume of devices complete after 166.489 msecs [ 147.472302] PM: Finishing wakeup. [ 147.472308] Restarting tasks ... # systemctl hibernate [ 192.873533] PM: Hibernation mode set to 'platform' [ 193.114874] PM: Syncing filesystems ... done. [ 193.779621] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 193.782215] PM: Marking nosave pages: [mem 0x00000000-0x00000fff] [ 193.782219] PM: Marking nosave pages: [mem 0x0009e000-0x000fffff] [ 193.782223] PM: Marking nosave pages: [mem 0xcfef0000-0xffffffff] [ 193.782875] PM: Basic memory bitmaps created [ 193.782890] PM: Preallocating image memory... done (allocated 641942 pages) [ 194.159073] PM: Allocated 2567768 kbytes in 0.37 seconds (6939.91 MB/s) [ 194.159203] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 194.161613] Suspending console(s) (use no_console_suspend to debug) [ 194.162821] nouveau [ DRM] suspending console... [ 194.162832] nouveau [ DRM] suspending display... [ 194.162911] nouveau [ DRM] evicting buffers... [ 195.114966] nouveau [ DRM] waiting for kernel channels to go idle... [ 195.114988] nouveau [ DRM] suspending client object trees... [ 195.115529] nouveau [ DRM] suspending kernel object tree... [ 196.474981] PM: freeze of devices complete after 2312.732 msecs [ 196.476063] PM: late freeze of devices complete after 1.075 msecs [ 196.477671] PM: noirq freeze of devices complete after 1.602 msecs [ 196.479011] ACPI: Preparing to enter system sleep state S4 [ 196.480139] PM: Saving platform NVS memory [ 196.487203] PM: Creating hibernation image: [ 196.704071] PM: Need to copy 373106 pages [ 196.704078] PM: Normal pages needed: 373106 + 1024, available pages: 675002 & THAW [ 196.488297] PM: Restoring platform NVS memory [ 196.533641] ACPI: Waking up from system sleep state S4 [ 196.534800] PM: noirq restore of devices complete after 1.041 msecs [ 196.535218] PM: early restore of devices complete after 0.380 msecs [ 196.584996] nouveau [ DRM] re-enabling device... [ 196.585004] nouveau [ DRM] resuming kernel object tree... [ 196.585016] nouveau [ VBIOS][0000:02:00.0] running init tables [ 196.679905] nouveau [ PTHERM][0000:02:00.0] fan management: automatic [ 196.699955] nouveau [ CLK][0000:02:00.0] --: core 566 MHz shader 1400 MHz memory 399 MHz [ 196.700463] nouveau [ DRM] resuming client object trees... [ 196.700716] nouveau [ DRM] resuming display... [ 196.751182] nouveau [ DRM] resuming console... [ 197.295267] PM: restore of devices complete after 710.395 msecs [ 197.314605] PM: Image restored successfully. [ 197.314626] PM: Basic memory bitmaps freed [ 197.314635] Restarting tasks ... [ 197.319733] done. # echo core > /sys/power/pm_test # echo mem > /sys/power/state [ 5499.160111] PM: Syncing filesystems ... done. [ 5499.450171] PM: Preparing system for mem sleep [ 5499.634741] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 5499.636531] Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done. [ 5499.637552] PM: Entering mem sleep [ 5499.637570] Suspending console(s) (use no_console_suspend to debug) [ 5499.657091] nouveau [ DRM] suspending console... [ 5499.657096] nouveau [ DRM] suspending display... [ 5499.657143] nouveau [ DRM] evicting buffers... [ 5500.434827] nouveau [ DRM] waiting for kernel channels to go idle... [ 5500.434833] nouveau [ DRM] suspending client object trees... [ 5500.435215] nouveau [ DRM] suspending kernel object tree... [ 5502.127550] PM: suspend of devices complete after 2489.492 msecs [ 5502.128256] PM: late suspend of devices complete after 0.703 msecs [ 5502.140541] PM: noirq suspend of devices complete after 12.275 msecs [ 5502.141831] ACPI: Preparing to enter system sleep state S3 [ 5502.142877] PM: Saving platform NVS memory [ 5502.149485] suspend debug: Waiting for 5 seconds. & RESUME [ 5507.199529] ACPI: Waking up from system sleep state S3 [ 5507.211617] PM: noirq resume of devices complete after 11.814 msecs [ 5507.212340] PM: early resume of devices complete after 0.681 msecs [ 5507.212462] nouveau [ DRM] re-enabling device... [ 5507.212474] nouveau [ DRM] resuming kernel object tree... [ 5507.212547] nouveau [ VBIOS][0000:02:00.0] running init tables [ 5507.393346] nouveau [ PTHERM][0000:02:00.0] fan management: automatic [ 5507.413412] nouveau [ CLK][0000:02:00.0] --: core 566 MHz shader 1400 MHz memory 399 MHz [ 5507.414217] nouveau [ DRM] resuming client object trees... [ 5507.414601] nouveau [ DRM] resuming display... [ 5507.465164] nouveau [ DRM] resuming console... [ 5507.465184] PM: resume of devices complete after 252.824 msecs [ 5507.492183] PM: Finishing wakeup. [ 5507.492193] Restarting tasks ... [ 5507.499081] done. # echo core > /sys/power/pm_test # echo disk > /sys/power/state [ 5803.765019] PM: Syncing filesystems ... done. [ 5803.995050] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 5803.998169] PM: Marking nosave pages: [mem 0x00000000-0x00000fff] [ 5803.998178] PM: Marking nosave pages: [mem 0x0009e000-0x000fffff] [ 5803.998188] PM: Marking nosave pages: [mem 0xcfef0000-0xffffffff] [ 5803.999885] PM: Basic memory bitmaps created [ 5803.999931] PM: Preallocating image memory... done (allocated 641906 pages) [ 5804.746398] PM: Allocated 2567624 kbytes in 0.74 seconds (3469.76 MB/s) [ 5804.746533] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 5804.748966] Suspending console(s) (use no_console_suspend to debug) [ 5804.750279] nouveau [ DRM] suspending console... [ 5804.750291] nouveau [ DRM] suspending display... [ 5804.750341] nouveau [ DRM] evicting buffers... [ 5805.616204] nouveau [ DRM] waiting for kernel channels to go idle... [ 5805.616210] nouveau [ DRM] suspending client object trees... [ 5805.616596] nouveau [ DRM] suspending kernel object tree... [ 5806.923651] PM: freeze of devices complete after 2174.051 msecs [ 5806.924288] PM: late freeze of devices complete after 0.634 msecs [ 5806.925541] PM: noirq freeze of devices complete after 1.251 msecs [ 5806.926182] ACPI: Preparing to enter system sleep state S4 [ 5806.927112] PM: Saving platform NVS memory [ 5806.934085] hibernation debug: Waiting for 5 seconds. & THAW [ 5811.987148] ACPI: Waking up from system sleep state S4 [ 5811.988618] PM: noirq restore of devices complete after 1.342 msecs [ 5811.989544] PM: early restore of devices complete after 0.867 msecs [ 5812.148663] nouveau [ DRM] re-enabling device... [ 5812.148671] nouveau [ DRM] resuming kernel object tree... [ 5812.148686] nouveau [ VBIOS][0000:02:00.0] running init tables [ 5812.253931] nouveau [ PTHERM][0000:02:00.0] fan management: automatic [ 5812.273982] nouveau [ CLK][0000:02:00.0] --: core 566 MHz shader 1400 MHz memory 399 MHz [ 5812.274769] nouveau [ DRM] resuming client object trees... [ 5812.275153] nouveau [ DRM] resuming display... [ 5812.325826] nouveau [ DRM] resuming console... [ 5812.851746] PM: restore of devices complete after 703.247 msecs [ 5812.871214] PM: Image restored successfully. [ 5812.871282] PM: Basic memory bitmaps freed [ 5812.871296] Restarting tasks ... [ 5812.872316] done. == ALL TESTS PASSED ==