All of lore.kernel.org
 help / color / mirror / Atom feed
* [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15  5:40 ` Mike Galbraith
  0 siblings, 0 replies; 22+ messages in thread
From: Mike Galbraith @ 2017-07-15  5:40 UTC (permalink / raw)
  To: dri-devel, nouveau; +Cc: LKML

Greetings,

box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
kernel: master.today (v4.12-11690-gccd5d1b91f22)

lspci -nn -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)

abreviated dmesg:
...
[    3.720990] fb: switching to nouveaufb from VESA VGA
[    3.744489] Console: switching to colour dummy device 80x25
[    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
...
[    3.846963] usbcore: registered new interface driver uas
[    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
[    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
[    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
[    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
[    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
[    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
[    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
[    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
[    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    3.919110] [TTM] Initializing pool allocator
[    3.919120] [TTM] Initializing DMA pool allocator
[    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
[    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
[    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
[    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
[    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
[    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
[    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
[    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
[    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
[    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
[    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
[    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
[    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
[    3.919258] ------------[ cut here ]------------
[    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
[    3.919322] Modules linked in: uas(E) usb_storage(E) hid_generic(E+) usbhid(E) nouveau(E+) wmi(E) video(E) i2c_algo_bit(E) ahci(E+) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fops(E) firewire_ohci(E) libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E+) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
[    3.919360] CPU: 3 PID: 224 Comm: systemd-udevd Tainted: G            E   4.12.0.gccd5d1b-master #186
[    3.919366] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
[    3.919370] task: ffff880211cd3d40 task.stack: ffffc90000714000
[    3.919412] RIP: 0010:nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
[    3.919417] RSP: 0018:ffffc900007177b0 EFLAGS: 00010202
[    3.919421] RAX: ffff88021128fc08 RBX: ffff880211c0aa80 RCX: ffffc90000717870
[    3.919425] RDX: ffffc900007177fc RSI: 0000000000000000 RDI: 0000000000000001
[    3.919429] RBP: ffff88021128fc10 R08: ffff880211c0aa80 R09: ffff880211c0aa80
[    3.919433] R10: 0000000000000000 R11: ffffea00084cf980 R12: ffff8802130f5500
[    3.919437] R13: ffff880211c0a9d0 R14: 0000000000000003 R15: 0000000000000004
[    3.919442] FS:  00007fe2035b68c0(0000) GS:ffff88022fd80000(0000) knlGS:0000000000000000
[    3.919448] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    3.919452] CR2: 00007fe203586000 CR3: 00000002133e3000 CR4: 00000000000006e0
[    3.919456] Call Trace:
[    3.919500]  nvkm_outp_ctor+0x105/0x130 [nouveau]
[    3.919508]  ? kmem_cache_alloc_trace+0x135/0x140
[    3.919550]  nvkm_disp_oneinit+0x132/0x510 [nouveau]
[    3.919583]  nvkm_engine_init+0x74/0x1d0 [nouveau]
[    3.919617]  nvkm_subdev_init+0xaf/0x200 [nouveau]
[    3.919648]  nvkm_engine_ref+0x4a/0x70 [nouveau]
[    3.919681]  nvkm_ioctl_new+0x118/0x280 [nouveau]
[    3.919705]  ? drm_property_create+0x100/0x150 [drm]
[    3.919746]  ? nvkm_udevice_map+0x40/0x40 [nouveau]
[    3.919779]  nvkm_ioctl+0x13c/0x230 [nouveau]
[    3.919785]  ? try_to_grab_pending+0xa7/0x130
[    3.919816]  nvif_object_init+0xc0/0x130 [nouveau]
[    3.919859]  nouveau_display_create+0x13e/0x630 [nouveau]
[    3.919903]  nouveau_drm_load+0x1e2/0x8d0 [nouveau]
[    3.919910]  ? sysfs_do_create_link_sd.isra.2+0x6b/0xb0
[    3.919924]  drm_dev_register+0x139/0x1d0 [drm]
[    3.919930]  ? pci_read_config_word.part.9+0x47/0x60
[    3.919944]  drm_get_pci_dev+0x94/0x170 [drm]
[    3.919987]  nouveau_drm_probe+0x1dc/0x240 [nouveau]
[    3.919992]  pci_device_probe+0xc4/0x140
[    3.919998]  driver_probe_device+0x298/0x450
[    3.920003]  __driver_attach+0xd6/0xe0
[    3.920007]  ? driver_probe_device+0x450/0x450
[    3.920011]  bus_for_each_dev+0x58/0x90
[    3.920015]  bus_add_driver+0x41/0x270
[    3.920020]  driver_register+0x5b/0xd0
[    3.920024]  ? 0xffffffffa0495000
[    3.920028]  do_one_initcall+0x3d/0x170
[    3.920033]  ? kmem_cache_alloc_trace+0x31/0x140
[    3.920039]  do_init_module+0x5a/0x1fc
[    3.920048]  load_module+0x215e/0x2980
[    3.920052]  ? m_show+0x190/0x190
[    3.920057]  ? kernel_read+0x3b/0x50
[    3.920062]  SYSC_finit_module+0x80/0xb0
[    3.920068]  entry_SYSCALL_64_fastpath+0x1a/0xa5
[    3.920072] RIP: 0033:0x7fe202436659
[    3.920076] RSP: 002b:00007fff0a3bed58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    3.920083] RAX: ffffffffffffffda RBX: 000000a6f4922750 RCX: 00007fe202436659
[    3.920087] RDX: 0000000000000000 RSI: 00007fe202921561 RDI: 0000000000000017
[    3.920091] RBP: 00007fe202921561 R08: 0000000000000000 R09: 000000a6f4922e40
[    3.920095] R10: 0000000000000017 R11: 0000000000000246 R12: 000000a6f4920280
[    3.920099] R13: 0000000000000000 R14: 0000000000020000 R15: 0000000000000000
[    3.920106] Code: 00 00 00 00 00 66 66 66 66 90 40 84 f6 74 24 40 80 fe 01 75 16 83 ff 02 74 05 83 ff 06 75 0c c7 02 02 00 00 00 b8 01 00 00 00 c3 <0f> ff b8 04 00 00 00 c3 83 ff 02 74 28 7e 19 83 ff 03 74 2d 83 
[    3.920140] ---[ end trace 6b7e5ebfa79000db ]---
[    3.924806] nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
[    3.924812] nouveau 0000:01:00.0: DRM: TV-1 has no encoders, removing
[    3.941591] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.941599] [drm] Driver supports precise vblank timestamp query.
...
[    4.202451] nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
[    4.244341] nouveau 0000:01:00.0: DRM: allocated 1280x1024 fb: 0x50000, bo ffff88022fc6f000
[    4.245156] fbcon: nouveaufb (fb0) is primary device
...
[    4.342819] Console: switching to colour frame buffer device 160x64
[    4.410317] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    4.425591] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0
...
[  321.422970] PM: Preparing system for sleep (mem)
[  321.423164] Freezing user space processes ... (elapsed 0.001 seconds) done.
[  321.424841] OOM killer disabled.
[  321.424843] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  321.425916] PM: Suspending system (mem)
[  321.425947] Suspending console(s) (use no_console_suspend to debug)
[  321.426334] sd 4:0:0:0: [sdf] Synchronizing SCSI cache
[  321.426398] sd 2:0:0:0: [sde] Synchronizing SCSI cache
[  321.426448] sd 4:0:0:0: [sdf] Stopping disk
[  321.426671] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  321.426765] sd 0:0:0:0: [sda] Stopping disk
[  321.450030] serial 00:03: disabled
[  321.450165] serial 00:02: disabled
[  321.450262] nouveau 0000:01:00.0: DRM: suspending console...
[  321.450265] nouveau 0000:01:00.0: DRM: suspending display...
[  321.450462] e1000e: EEE TX LPI TIMER: 00000000
[  321.450501] br0: port 1(eth0) entered disabled state
[  321.473838] ------------[ cut here ]------------
[  321.473863] WARNING: CPU: 1 PID: 4786 at drivers/gpu/drm/drm_vblank.c:608 drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
[  321.473864] Modules linked in: ebtable_filter(E) ebtables(E) fuse(E) rpcsec_gss_krb5(E) nfsv4(E) dns_resolver(E) nfs(E) fscache(E) af_packet(E) bridge(E) stp(E) llc(E) iscsi_ibft(E) iscsi_boot_sysfs(E) ip6t_REJECT(E) xt_tcpudp(E) nf_conntrack_ipv6(E) nf_defrag_ipv6(E) ip6table_raw(E) ipt_REJECT(E) iptable_raw(E) iptable_filter(E) ip6table_mangle(E) nf_conntrack_netbios_ns(E) nf_conntrack_broadcast(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) ip_tables(E) xt_conntrack(E) nf_conntrack(E) ip6table_filter(E) ip6_tables(E) x_tables(E) saa7134_alsa(E) tda1004x(E) saa7134_dvb(E) videobuf2_dvb(E) dvb_core(E) arc4(E) rt2800usb(E) rt2x00usb(E) rt2800lib(E) crc_ccitt(E) rt2x00lib(E) mac80211(E) cfg80211(E) rc_medion_x10_or2x(E) rfkill(E) ati_remote(E) tda827x(E) tda8290(E) tuner(E) snd_hda_codec_realtek(E) saa7134(E)
[  321.473905]  snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hwdep(E) tveeprom(E) coretemp(E) videobuf2_dma_sg(E) videobuf2_memops(E) snd_hda_core(E) videobuf2_v4l2(E) kvm_intel(E) snd_pcm(E) kvm(E) videobuf2_core(E) snd_timer(E) rc_core(E) v4l2_common(E) snd(E) videodev(E) iTCO_wdt(E) media(E) e1000e(E) iTCO_vendor_support(E) ptp(E) pps_core(E) shpchp(E) soundcore(E) i2c_i801(E) lpc_ich(E) mfd_core(E) irqbypass(E) pcspkr(E) thermal(E) acpi_cpufreq(E) fan(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) ext4(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) sr_mod(E) cdrom(E) sd_mod(E) uas(E) usb_storage(E) hid_generic(E) usbhid(E) nouveau(E) wmi(E) video(E) i2c_algo_bit(E) ahci(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fops(E) firewire_ohci(E)
[  321.473950]  libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
[  321.473966] CPU: 1 PID: 4786 Comm: kworker/u8:17 Tainted: G        W   E   4.12.0.gccd5d1b-master #186
[  321.473968] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
[  321.473972] Workqueue: events_unbound async_run_entry_fn
[  321.473974] task: ffff8801daf93d40 task.stack: ffffc90003edc000
[  321.473990] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
[  321.473992] RSP: 0018:ffffc90003edfb00 EFLAGS: 00010082
[  321.473994] RAX: ffffffffa03e6100 RBX: ffff880211140000 RCX: 0000000000000001
[  321.473995] RDX: ffffffffa01dd8c8 RSI: 0000000000000001 RDI: ffffffffa01c8023
[  321.473996] RBP: ffffc90003edfb80 R08: 0000000000000000 R09: ffffffffa01b0920
[  321.473998] R10: ffffffffa0376e60 R11: ffff8802131399f8 R12: 0000000000000001
[  321.473999] R13: ffff880213139800 R14: ffffc90003edfb94 R15: ffffc90003edfbd0
[  321.474001] FS:  0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000
[  321.474003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  321.474004] CR2: 00007fdd82e8f810 CR3: 0000000214683000 CR4: 00000000000006e0
[  321.474005] Call Trace:
[  321.474068]  ? nv50_head_vblank_put+0x22/0x50 [nouveau]
[  321.474085]  drm_get_last_vbltimestamp+0x41/0x70 [drm]
[  321.474102]  drm_update_vblank_count+0x61/0x230 [drm]
[  321.474118]  drm_vblank_disable_and_save+0x59/0xc0 [drm]
[  321.474134]  drm_crtc_vblank_off+0x1d5/0x210 [drm]
[  321.474152]  ? drm_modeset_drop_locks+0x4e/0x60 [drm]
[  321.474203]  nouveau_display_fini+0x56/0xd0 [nouveau]
[  321.474254]  nouveau_display_suspend+0x4f/0x110 [nouveau]
[  321.474304]  nouveau_do_suspend+0x7c/0x1e0 [nouveau]
[  321.474355]  nouveau_pmops_suspend+0x2d/0x70 [nouveau]
[  321.474358]  pci_pm_suspend+0x70/0x130
[  321.474360]  ? pci_pm_resume+0x90/0x90
[  321.474364]  dpm_run_callback+0x4d/0x150
[  321.474366]  __device_suspend+0x121/0x3b0
[  321.474369]  ? pm_dev_dbg+0x70/0x70
[  321.474370]  async_suspend+0x1a/0x90
[  321.474373]  async_run_entry_fn+0x33/0x160
[  321.474376]  process_one_work+0x141/0x340
[  321.474378]  worker_thread+0x47/0x3b0
[  321.474381]  kthread+0xfc/0x130
[  321.474384]  ? rescuer_thread+0x360/0x360
[  321.474386]  ? kthread_park+0x60/0x60
[  321.474389]  ret_from_fork+0x25/0x30
[  321.474391] Code: e1 48 c7 c2 c8 d8 1d a0 be 01 00 00 00 48 c7 c7 23 80 1c a0 e8 83 7f fe ff 48 8b 83 70 03 00 00 48 83 78 20 00 0f 84 de fe ff ff <0f> ff 31 c0 e9 d7 fe ff ff 44 89 d0 be d3 4d 62 10 48 c7 c7 23 
[  321.474425] ---[ end trace 6b7e5ebfa79000dc ]---
[  321.474436] nouveau 0000:01:00.0: DRM: evicting buffers...
[  321.607070] sd 2:0:0:0: [sde] Stopping disk
[  321.669140] nouveau 0000:01:00.0: DRM: waiting for kernel channels to go idle...
[  321.669147] nouveau 0000:01:00.0: DRM: suspending fence...
[  321.669275] nouveau 0000:01:00.0: DRM: suspending object tree...
[  325.124778] PM: suspend of devices complete after 3698.373 msecs
[  325.125130] PM: late suspend of devices complete after 0.349 msecs
[  325.146080] PM: noirq suspend of devices complete after 20.945 msecs
[  325.146589] ACPI: Preparing to enter system sleep state S3
[  325.147040] PM: Saving platform NVS memory
[  325.147331] Disabling non-boot CPUs ...
[  325.158486] smpboot: CPU 1 is now offline
[  325.186875] smpboot: CPU 2 is now offline
[  325.207412] smpboot: CPU 3 is now offline
[  325.209031] ACPI: Low-level resume complete
[  325.209078] PM: Restoring platform NVS memory
[  325.209463] Suspended for 5.000 seconds
[  325.215104] Enabling non-boot CPUs ...
[  325.215144] x86: Booting SMP configuration:
[  325.215145] smpboot: Booting Node 0 Processor 1 APIC 0x1
[  325.221217]  cache: parent cpu1 should not be sleeping
[  325.221306] microcode: sig=0x6fb, pf=0x10, revision=0xbc
[  325.221507] CPU1 is up
[  325.221533] smpboot: Booting Node 0 Processor 2 APIC 0x3
[  325.227693]  cache: parent cpu2 should not be sleeping
[  325.228069] CPU2 is up
[  325.228085] smpboot: Booting Node 0 Processor 3 APIC 0x2
[  325.234420]  cache: parent cpu3 should not be sleeping
[  325.234804] CPU3 is up
[  325.238138] ACPI: Waking up from system sleep state S3
[  325.262589] PM: noirq resume of devices complete after 23.907 msecs
[  325.263102] PM: early resume of devices complete after 0.495 msecs
[  325.263173] usb usb1: root hub lost power or was reset
[  325.263214] usb usb2: root hub lost power or was reset
[  325.263268] usb usb3: root hub lost power or was reset
[  325.263300] usb usb4: root hub lost power or was reset
[  325.263329] usb usb5: root hub lost power or was reset
[  325.263343] usb usb6: root hub lost power or was reset
[  325.263363] nouveau 0000:01:00.0: DRM: resuming object tree...
[  325.263368] saa7134: saa7133[0]: board init: gpio is 0
[  325.263998] serial 00:02: activated
[  325.264517] serial 00:03: activated
[  325.288519] sd 0:0:0:0: [sda] Starting disk
[  325.293481] sd 2:0:0:0: [sde] Starting disk
[  325.293491] sd 4:0:0:0: [sdf] Starting disk
[  325.467742] nouveau 0000:01:00.0: DRM: resuming fence...
[  325.467750] nouveau 0000:01:00.0: DRM: resuming display...
[  325.488166] nouveau 0000:01:00.0: DRM: resuming console...
[  325.668771] ata4: SATA link down (SStatus 0 SControl 300)
[  325.668799] ata6: SATA link down (SStatus 0 SControl 300)
[  325.750427] usb 4-1: reset low-speed USB device number 3 using uhci_hcd
[  325.778447] usb 2-2: reset low-speed USB device number 3 using uhci_hcd
[  325.782416] usb 3-2: reset low-speed USB device number 4 using uhci_hcd
[  325.830432] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  325.837017] ata2.00: configured for UDMA/100
[  325.850425] firewire_core 0000:02:02.0: rediscovered device fw0
[  326.026464] usb 4-1: device descriptor read/64, error -71
[  326.815715] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[  326.815718] e1000e 0000:00:19.0 eth0: 10/100 speed: disabling TSO
[  326.815750] br0: port 1(eth0) entered blocking state
[  326.815752] br0: port 1(eth0) entered forwarding state
[  330.690748] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[  330.864349] ata3.00: ATA Identify Device Log not supported
[  330.864351] ata3.00: Security Log not supported
[  330.870943] ata3.00: ATA Identify Device Log not supported
[  330.870945] ata3.00: Security Log not supported
[  330.870949] ata3.00: configured for UDMA/133
[  331.290835] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  331.453464] ata5.00: ATA Identify Device Log not supported
[  331.453466] ata5.00: Security Log not supported
[  331.520126] ata5.00: ATA Identify Device Log not supported
[  331.520128] ata5.00: Security Log not supported
[  331.520132] ata5.00: configured for UDMA/133
[  331.826874] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[  331.848230] ata1.00: ATA Identify Device Log not supported
[  331.848231] ata1.00: Security Log not supported
[  331.849334] ata1.00: ATA Identify Device Log not supported
[  331.849335] ata1.00: Security Log not supported
[  331.849339] ata1.00: configured for UDMA/133
[  331.853134] PM: resume of devices complete after 6589.643 msecs
[  331.853396] usb 3-2:1.0: rebind failed: -517
[  331.864922] PM: Finishing wakeup.
[  331.864925] OOM killer enabled.
[  331.864927] Restarting tasks ... done.
[  332.293462] Registered IR keymap rc-medion-x10-or2x
[  332.293530] rc rc0: X10 WTI RF receiver as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/rc/rc0
[  332.293600] input: X10 WTI RF receiver as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/rc/rc0/input25
[  332.294274] input: X10 WTI RF receiver mouse as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/input/input26

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15  5:40 ` Mike Galbraith
  0 siblings, 0 replies; 22+ messages in thread
From: Mike Galbraith @ 2017-07-15  5:40 UTC (permalink / raw)
  To: dri-devel, nouveau; +Cc: LKML

Greetings,

box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
kernel: master.today (v4.12-11690-gccd5d1b91f22)

lspci -nn -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)

abreviated dmesg:
...
[    3.720990] fb: switching to nouveaufb from VESA VGA
[    3.744489] Console: switching to colour dummy device 80x25
[    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
...
[    3.846963] usbcore: registered new interface driver uas
[    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
[    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
[    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
[    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
[    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
[    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
[    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
[    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
[    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    3.919110] [TTM] Initializing pool allocator
[    3.919120] [TTM] Initializing DMA pool allocator
[    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
[    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
[    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
[    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
[    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
[    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
[    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
[    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
[    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
[    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
[    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
[    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
[    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
[    3.919258] ------------[ cut here ]------------
[    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
[    3.919322] Modules linked in: uas(E) usb_storage(E) hid_generic(E+) usbhid(E) nouveau(E+) wmi(E) video(E) i2c_algo_bit(E) ahci(E+) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fops(E) firewire_ohci(E) libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E+) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
[    3.919360] CPU: 3 PID: 224 Comm: systemd-udevd Tainted: G            E   4.12.0.gccd5d1b-master #186
[    3.919366] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
[    3.919370] task: ffff880211cd3d40 task.stack: ffffc90000714000
[    3.919412] RIP: 0010:nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
[    3.919417] RSP: 0018:ffffc900007177b0 EFLAGS: 00010202
[    3.919421] RAX: ffff88021128fc08 RBX: ffff880211c0aa80 RCX: ffffc90000717870
[    3.919425] RDX: ffffc900007177fc RSI: 0000000000000000 RDI: 0000000000000001
[    3.919429] RBP: ffff88021128fc10 R08: ffff880211c0aa80 R09: ffff880211c0aa80
[    3.919433] R10: 0000000000000000 R11: ffffea00084cf980 R12: ffff8802130f5500
[    3.919437] R13: ffff880211c0a9d0 R14: 0000000000000003 R15: 0000000000000004
[    3.919442] FS:  00007fe2035b68c0(0000) GS:ffff88022fd80000(0000) knlGS:0000000000000000
[    3.919448] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    3.919452] CR2: 00007fe203586000 CR3: 00000002133e3000 CR4: 00000000000006e0
[    3.919456] Call Trace:
[    3.919500]  nvkm_outp_ctor+0x105/0x130 [nouveau]
[    3.919508]  ? kmem_cache_alloc_trace+0x135/0x140
[    3.919550]  nvkm_disp_oneinit+0x132/0x510 [nouveau]
[    3.919583]  nvkm_engine_init+0x74/0x1d0 [nouveau]
[    3.919617]  nvkm_subdev_init+0xaf/0x200 [nouveau]
[    3.919648]  nvkm_engine_ref+0x4a/0x70 [nouveau]
[    3.919681]  nvkm_ioctl_new+0x118/0x280 [nouveau]
[    3.919705]  ? drm_property_create+0x100/0x150 [drm]
[    3.919746]  ? nvkm_udevice_map+0x40/0x40 [nouveau]
[    3.919779]  nvkm_ioctl+0x13c/0x230 [nouveau]
[    3.919785]  ? try_to_grab_pending+0xa7/0x130
[    3.919816]  nvif_object_init+0xc0/0x130 [nouveau]
[    3.919859]  nouveau_display_create+0x13e/0x630 [nouveau]
[    3.919903]  nouveau_drm_load+0x1e2/0x8d0 [nouveau]
[    3.919910]  ? sysfs_do_create_link_sd.isra.2+0x6b/0xb0
[    3.919924]  drm_dev_register+0x139/0x1d0 [drm]
[    3.919930]  ? pci_read_config_word.part.9+0x47/0x60
[    3.919944]  drm_get_pci_dev+0x94/0x170 [drm]
[    3.919987]  nouveau_drm_probe+0x1dc/0x240 [nouveau]
[    3.919992]  pci_device_probe+0xc4/0x140
[    3.919998]  driver_probe_device+0x298/0x450
[    3.920003]  __driver_attach+0xd6/0xe0
[    3.920007]  ? driver_probe_device+0x450/0x450
[    3.920011]  bus_for_each_dev+0x58/0x90
[    3.920015]  bus_add_driver+0x41/0x270
[    3.920020]  driver_register+0x5b/0xd0
[    3.920024]  ? 0xffffffffa0495000
[    3.920028]  do_one_initcall+0x3d/0x170
[    3.920033]  ? kmem_cache_alloc_trace+0x31/0x140
[    3.920039]  do_init_module+0x5a/0x1fc
[    3.920048]  load_module+0x215e/0x2980
[    3.920052]  ? m_show+0x190/0x190
[    3.920057]  ? kernel_read+0x3b/0x50
[    3.920062]  SYSC_finit_module+0x80/0xb0
[    3.920068]  entry_SYSCALL_64_fastpath+0x1a/0xa5
[    3.920072] RIP: 0033:0x7fe202436659
[    3.920076] RSP: 002b:00007fff0a3bed58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    3.920083] RAX: ffffffffffffffda RBX: 000000a6f4922750 RCX: 00007fe202436659
[    3.920087] RDX: 0000000000000000 RSI: 00007fe202921561 RDI: 0000000000000017
[    3.920091] RBP: 00007fe202921561 R08: 0000000000000000 R09: 000000a6f4922e40
[    3.920095] R10: 0000000000000017 R11: 0000000000000246 R12: 000000a6f4920280
[    3.920099] R13: 0000000000000000 R14: 0000000000020000 R15: 0000000000000000
[    3.920106] Code: 00 00 00 00 00 66 66 66 66 90 40 84 f6 74 24 40 80 fe 01 75 16 83 ff 02 74 05 83 ff 06 75 0c c7 02 02 00 00 00 b8 01 00 00 00 c3 <0f> ff b8 04 00 00 00 c3 83 ff 02 74 28 7e 19 83 ff 03 74 2d 83 
[    3.920140] ---[ end trace 6b7e5ebfa79000db ]---
[    3.924806] nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
[    3.924812] nouveau 0000:01:00.0: DRM: TV-1 has no encoders, removing
[    3.941591] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.941599] [drm] Driver supports precise vblank timestamp query.
...
[    4.202451] nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
[    4.244341] nouveau 0000:01:00.0: DRM: allocated 1280x1024 fb: 0x50000, bo ffff88022fc6f000
[    4.245156] fbcon: nouveaufb (fb0) is primary device
...
[    4.342819] Console: switching to colour frame buffer device 160x64
[    4.410317] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    4.425591] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0
...
[  321.422970] PM: Preparing system for sleep (mem)
[  321.423164] Freezing user space processes ... (elapsed 0.001 seconds) done.
[  321.424841] OOM killer disabled.
[  321.424843] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  321.425916] PM: Suspending system (mem)
[  321.425947] Suspending console(s) (use no_console_suspend to debug)
[  321.426334] sd 4:0:0:0: [sdf] Synchronizing SCSI cache
[  321.426398] sd 2:0:0:0: [sde] Synchronizing SCSI cache
[  321.426448] sd 4:0:0:0: [sdf] Stopping disk
[  321.426671] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  321.426765] sd 0:0:0:0: [sda] Stopping disk
[  321.450030] serial 00:03: disabled
[  321.450165] serial 00:02: disabled
[  321.450262] nouveau 0000:01:00.0: DRM: suspending console...
[  321.450265] nouveau 0000:01:00.0: DRM: suspending display...
[  321.450462] e1000e: EEE TX LPI TIMER: 00000000
[  321.450501] br0: port 1(eth0) entered disabled state
[  321.473838] ------------[ cut here ]------------
[  321.473863] WARNING: CPU: 1 PID: 4786 at drivers/gpu/drm/drm_vblank.c:608 drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
[  321.473864] Modules linked in: ebtable_filter(E) ebtables(E) fuse(E) rpcsec_gss_krb5(E) nfsv4(E) dns_resolver(E) nfs(E) fscache(E) af_packet(E) bridge(E) stp(E) llc(E) iscsi_ibft(E) iscsi_boot_sysfs(E) ip6t_REJECT(E) xt_tcpudp(E) nf_conntrack_ipv6(E) nf_defrag_ipv6(E) ip6table_raw(E) ipt_REJECT(E) iptable_raw(E) iptable_filter(E) ip6table_mangle(E) nf_conntrack_netbios_ns(E) nf_conntrack_broadcast(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) ip_tables(E) xt_conntrack(E) nf_conntrack(E) ip6table_filter(E) ip6_tables(E) x_tables(E) saa7134_alsa(E) tda1004x(E) saa7134_dvb(E) videobuf2_dvb(E) dvb_core(E) arc4(E) rt2800usb(E) rt2x00usb(E) rt2800lib(E) crc_ccitt(E) rt2x00lib(E) mac80211(E) cfg80211(E) rc_medion_x10_or2x(E) rfkill(E) ati_remote(E) tda827x(E) tda8290(E) tuner(E) snd_hda_codec_real
 tek(E) saa7134(E)
[  321.473905]  snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hwdep(E) tveeprom(E) coretemp(E) videobuf2_dma_sg(E) videobuf2_memops(E) snd_hda_core(E) videobuf2_v4l2(E) kvm_intel(E) snd_pcm(E) kvm(E) videobuf2_core(E) snd_timer(E) rc_core(E) v4l2_common(E) snd(E) videodev(E) iTCO_wdt(E) media(E) e1000e(E) iTCO_vendor_support(E) ptp(E) pps_core(E) shpchp(E) soundcore(E) i2c_i801(E) lpc_ich(E) mfd_core(E) irqbypass(E) pcspkr(E) thermal(E) acpi_cpufreq(E) fan(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) ext4(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) sr_mod(E) cdrom(E) sd_mod(E) uas(E) usb_storage(E) hid_generic(E) usbhid(E) nouveau(E) wmi(E) video(E) i2c_algo_bit(E) ahci(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fop
 s(E) firewire_ohci(E)
[  321.473950]  libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
[  321.473966] CPU: 1 PID: 4786 Comm: kworker/u8:17 Tainted: G        W   E   4.12.0.gccd5d1b-master #186
[  321.473968] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
[  321.473972] Workqueue: events_unbound async_run_entry_fn
[  321.473974] task: ffff8801daf93d40 task.stack: ffffc90003edc000
[  321.473990] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
[  321.473992] RSP: 0018:ffffc90003edfb00 EFLAGS: 00010082
[  321.473994] RAX: ffffffffa03e6100 RBX: ffff880211140000 RCX: 0000000000000001
[  321.473995] RDX: ffffffffa01dd8c8 RSI: 0000000000000001 RDI: ffffffffa01c8023
[  321.473996] RBP: ffffc90003edfb80 R08: 0000000000000000 R09: ffffffffa01b0920
[  321.473998] R10: ffffffffa0376e60 R11: ffff8802131399f8 R12: 0000000000000001
[  321.473999] R13: ffff880213139800 R14: ffffc90003edfb94 R15: ffffc90003edfbd0
[  321.474001] FS:  0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000
[  321.474003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  321.474004] CR2: 00007fdd82e8f810 CR3: 0000000214683000 CR4: 00000000000006e0
[  321.474005] Call Trace:
[  321.474068]  ? nv50_head_vblank_put+0x22/0x50 [nouveau]
[  321.474085]  drm_get_last_vbltimestamp+0x41/0x70 [drm]
[  321.474102]  drm_update_vblank_count+0x61/0x230 [drm]
[  321.474118]  drm_vblank_disable_and_save+0x59/0xc0 [drm]
[  321.474134]  drm_crtc_vblank_off+0x1d5/0x210 [drm]
[  321.474152]  ? drm_modeset_drop_locks+0x4e/0x60 [drm]
[  321.474203]  nouveau_display_fini+0x56/0xd0 [nouveau]
[  321.474254]  nouveau_display_suspend+0x4f/0x110 [nouveau]
[  321.474304]  nouveau_do_suspend+0x7c/0x1e0 [nouveau]
[  321.474355]  nouveau_pmops_suspend+0x2d/0x70 [nouveau]
[  321.474358]  pci_pm_suspend+0x70/0x130
[  321.474360]  ? pci_pm_resume+0x90/0x90
[  321.474364]  dpm_run_callback+0x4d/0x150
[  321.474366]  __device_suspend+0x121/0x3b0
[  321.474369]  ? pm_dev_dbg+0x70/0x70
[  321.474370]  async_suspend+0x1a/0x90
[  321.474373]  async_run_entry_fn+0x33/0x160
[  321.474376]  process_one_work+0x141/0x340
[  321.474378]  worker_thread+0x47/0x3b0
[  321.474381]  kthread+0xfc/0x130
[  321.474384]  ? rescuer_thread+0x360/0x360
[  321.474386]  ? kthread_park+0x60/0x60
[  321.474389]  ret_from_fork+0x25/0x30
[  321.474391] Code: e1 48 c7 c2 c8 d8 1d a0 be 01 00 00 00 48 c7 c7 23 80 1c a0 e8 83 7f fe ff 48 8b 83 70 03 00 00 48 83 78 20 00 0f 84 de fe ff ff <0f> ff 31 c0 e9 d7 fe ff ff 44 89 d0 be d3 4d 62 10 48 c7 c7 23 
[  321.474425] ---[ end trace 6b7e5ebfa79000dc ]---
[  321.474436] nouveau 0000:01:00.0: DRM: evicting buffers...
[  321.607070] sd 2:0:0:0: [sde] Stopping disk
[  321.669140] nouveau 0000:01:00.0: DRM: waiting for kernel channels to go idle...
[  321.669147] nouveau 0000:01:00.0: DRM: suspending fence...
[  321.669275] nouveau 0000:01:00.0: DRM: suspending object tree...
[  325.124778] PM: suspend of devices complete after 3698.373 msecs
[  325.125130] PM: late suspend of devices complete after 0.349 msecs
[  325.146080] PM: noirq suspend of devices complete after 20.945 msecs
[  325.146589] ACPI: Preparing to enter system sleep state S3
[  325.147040] PM: Saving platform NVS memory
[  325.147331] Disabling non-boot CPUs ...
[  325.158486] smpboot: CPU 1 is now offline
[  325.186875] smpboot: CPU 2 is now offline
[  325.207412] smpboot: CPU 3 is now offline
[  325.209031] ACPI: Low-level resume complete
[  325.209078] PM: Restoring platform NVS memory
[  325.209463] Suspended for 5.000 seconds
[  325.215104] Enabling non-boot CPUs ...
[  325.215144] x86: Booting SMP configuration:
[  325.215145] smpboot: Booting Node 0 Processor 1 APIC 0x1
[  325.221217]  cache: parent cpu1 should not be sleeping
[  325.221306] microcode: sig=0x6fb, pf=0x10, revision=0xbc
[  325.221507] CPU1 is up
[  325.221533] smpboot: Booting Node 0 Processor 2 APIC 0x3
[  325.227693]  cache: parent cpu2 should not be sleeping
[  325.228069] CPU2 is up
[  325.228085] smpboot: Booting Node 0 Processor 3 APIC 0x2
[  325.234420]  cache: parent cpu3 should not be sleeping
[  325.234804] CPU3 is up
[  325.238138] ACPI: Waking up from system sleep state S3
[  325.262589] PM: noirq resume of devices complete after 23.907 msecs
[  325.263102] PM: early resume of devices complete after 0.495 msecs
[  325.263173] usb usb1: root hub lost power or was reset
[  325.263214] usb usb2: root hub lost power or was reset
[  325.263268] usb usb3: root hub lost power or was reset
[  325.263300] usb usb4: root hub lost power or was reset
[  325.263329] usb usb5: root hub lost power or was reset
[  325.263343] usb usb6: root hub lost power or was reset
[  325.263363] nouveau 0000:01:00.0: DRM: resuming object tree...
[  325.263368] saa7134: saa7133[0]: board init: gpio is 0
[  325.263998] serial 00:02: activated
[  325.264517] serial 00:03: activated
[  325.288519] sd 0:0:0:0: [sda] Starting disk
[  325.293481] sd 2:0:0:0: [sde] Starting disk
[  325.293491] sd 4:0:0:0: [sdf] Starting disk
[  325.467742] nouveau 0000:01:00.0: DRM: resuming fence...
[  325.467750] nouveau 0000:01:00.0: DRM: resuming display...
[  325.488166] nouveau 0000:01:00.0: DRM: resuming console...
[  325.668771] ata4: SATA link down (SStatus 0 SControl 300)
[  325.668799] ata6: SATA link down (SStatus 0 SControl 300)
[  325.750427] usb 4-1: reset low-speed USB device number 3 using uhci_hcd
[  325.778447] usb 2-2: reset low-speed USB device number 3 using uhci_hcd
[  325.782416] usb 3-2: reset low-speed USB device number 4 using uhci_hcd
[  325.830432] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  325.837017] ata2.00: configured for UDMA/100
[  325.850425] firewire_core 0000:02:02.0: rediscovered device fw0
[  326.026464] usb 4-1: device descriptor read/64, error -71
[  326.815715] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[  326.815718] e1000e 0000:00:19.0 eth0: 10/100 speed: disabling TSO
[  326.815750] br0: port 1(eth0) entered blocking state
[  326.815752] br0: port 1(eth0) entered forwarding state
[  330.690748] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[  330.864349] ata3.00: ATA Identify Device Log not supported
[  330.864351] ata3.00: Security Log not supported
[  330.870943] ata3.00: ATA Identify Device Log not supported
[  330.870945] ata3.00: Security Log not supported
[  330.870949] ata3.00: configured for UDMA/133
[  331.290835] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  331.453464] ata5.00: ATA Identify Device Log not supported
[  331.453466] ata5.00: Security Log not supported
[  331.520126] ata5.00: ATA Identify Device Log not supported
[  331.520128] ata5.00: Security Log not supported
[  331.520132] ata5.00: configured for UDMA/133
[  331.826874] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[  331.848230] ata1.00: ATA Identify Device Log not supported
[  331.848231] ata1.00: Security Log not supported
[  331.849334] ata1.00: ATA Identify Device Log not supported
[  331.849335] ata1.00: Security Log not supported
[  331.849339] ata1.00: configured for UDMA/133
[  331.853134] PM: resume of devices complete after 6589.643 msecs
[  331.853396] usb 3-2:1.0: rebind failed: -517
[  331.864922] PM: Finishing wakeup.
[  331.864925] OOM killer enabled.
[  331.864927] Restarting tasks ... done.
[  332.293462] Registered IR keymap rc-medion-x10-or2x
[  332.293530] rc rc0: X10 WTI RF receiver as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/rc/rc0
[  332.293600] input: X10 WTI RF receiver as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/rc/rc0/input25
[  332.294274] input: X10 WTI RF receiver mouse as /devices/pci0000:00/0000:00:1a.2/usb3/3-2/3-2:1.0/input/input26

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15 16:14   ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 16:14 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: dri-devel, nouveau, LKML

On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
> Greetings,
>
> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>
> lspci -nn -d 10de:
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>
> abreviated dmesg:
> ...
> [    3.720990] fb: switching to nouveaufb from VESA VGA
> [    3.744489] Console: switching to colour dummy device 80x25
> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
> ...
> [    3.846963] usbcore: registered new interface driver uas
> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
> [    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
> [    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
> [    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
> [    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
> [    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
> [    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
> [    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
> [    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
> [    3.919110] [TTM] Initializing pool allocator
> [    3.919120] [TTM] Initializing DMA pool allocator
> [    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
> [    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
> [    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
> [    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
> [    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
> [    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
> [    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
> [    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
> [    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
> [    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
> [    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
> [    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
> [    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
> [    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
> [    3.919258] ------------[ cut here ]------------
> [    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]

The code in question is

static enum nvkm_ior_proto
nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
{
        switch (outp->info.location) {
        case 0:
                switch (outp->info.type) {
                case DCB_OUTPUT_ANALOG: *type = DAC; return  CRT;
                case DCB_OUTPUT_TMDS  : *type = SOR; return TMDS;
                case DCB_OUTPUT_LVDS  : *type = SOR; return LVDS;
                case DCB_OUTPUT_DP    : *type = SOR; return   DP;
                default:
                        break;
                }
                break;
        case 1:
                switch (outp->info.type) {
                case DCB_OUTPUT_TMDS: *type = PIOR; return TMDS;
                case DCB_OUTPUT_DP  : *type = PIOR; return TMDS; /* not a bug */
                default:
                        break;
                }
                break;
        default:
                break;
        }
        WARN_ON(1);
        return UNKNOWN;
}

Looks like someone forgot about TV S-Video/Composite outputs (which
existed up until the GT21x's).

> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083

And there ya go (the type is the lowest nibble of the first dword). We
don't support TV outputs on nv50+, so you could just add a

case DCB_OUTPUT_TV: return UNKNOWN;

in the location == 0 case.

I don't think that's related to the issue you're seeing on suspend
though, as the TV connector isn't created anyways, it's just an
"annoyance" warn, and you were also seeing it on your GM20x which has
no such thing.

  -ilia

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15 16:14   ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 16:14 UTC (permalink / raw)
  To: Mike Galbraith
  Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, LKML,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
> Greetings,
>
> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>
> lspci -nn -d 10de:
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>
> abreviated dmesg:
> ...
> [    3.720990] fb: switching to nouveaufb from VESA VGA
> [    3.744489] Console: switching to colour dummy device 80x25
> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
> ...
> [    3.846963] usbcore: registered new interface driver uas
> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
> [    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
> [    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
> [    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
> [    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
> [    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
> [    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
> [    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
> [    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
> [    3.919110] [TTM] Initializing pool allocator
> [    3.919120] [TTM] Initializing DMA pool allocator
> [    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
> [    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
> [    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
> [    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
> [    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
> [    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
> [    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
> [    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
> [    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
> [    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
> [    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
> [    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
> [    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
> [    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
> [    3.919258] ------------[ cut here ]------------
> [    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]

The code in question is

static enum nvkm_ior_proto
nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
{
        switch (outp->info.location) {
        case 0:
                switch (outp->info.type) {
                case DCB_OUTPUT_ANALOG: *type = DAC; return  CRT;
                case DCB_OUTPUT_TMDS  : *type = SOR; return TMDS;
                case DCB_OUTPUT_LVDS  : *type = SOR; return LVDS;
                case DCB_OUTPUT_DP    : *type = SOR; return   DP;
                default:
                        break;
                }
                break;
        case 1:
                switch (outp->info.type) {
                case DCB_OUTPUT_TMDS: *type = PIOR; return TMDS;
                case DCB_OUTPUT_DP  : *type = PIOR; return TMDS; /* not a bug */
                default:
                        break;
                }
                break;
        default:
                break;
        }
        WARN_ON(1);
        return UNKNOWN;
}

Looks like someone forgot about TV S-Video/Composite outputs (which
existed up until the GT21x's).

> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083

And there ya go (the type is the lowest nibble of the first dword). We
don't support TV outputs on nv50+, so you could just add a

case DCB_OUTPUT_TV: return UNKNOWN;

in the location == 0 case.

I don't think that's related to the issue you're seeing on suspend
though, as the TV connector isn't created anyways, it's just an
"annoyance" warn, and you were also seeing it on your GM20x which has
no such thing.

  -ilia
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15 18:12     ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 18:12 UTC (permalink / raw)
  To: Mike Galbraith, Ben Skeggs; +Cc: dri-devel, nouveau, LKML

On Sat, Jul 15, 2017 at 12:14 PM, Ilia Mirkin <imirkin@alum.mit.edu> wrote:
> On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
>> Greetings,
>>
>> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
>> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>>
>> lspci -nn -d 10de:
>> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>>
>> abreviated dmesg:
>> ...
>> [    3.720990] fb: switching to nouveaufb from VESA VGA
>> [    3.744489] Console: switching to colour dummy device 80x25
>> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
>> ...
>> [    3.846963] usbcore: registered new interface driver uas
>> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
>> [    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
>> [    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
>> [    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
>> [    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
>> [    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
>> [    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
>> [    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
>> [    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
>> [    3.919110] [TTM] Initializing pool allocator
>> [    3.919120] [TTM] Initializing DMA pool allocator
>> [    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
>> [    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
>> [    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
>> [    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
>> [    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
>> [    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
>> [    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
>> [    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
>> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
>> [    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
>> [    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
>> [    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
>> [    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
>> [    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
>> [    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
>> [    3.919258] ------------[ cut here ]------------
>> [    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
>
> The code in question is
>
> static enum nvkm_ior_proto
> nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
> {
>         switch (outp->info.location) {
>         case 0:
>                 switch (outp->info.type) {
>                 case DCB_OUTPUT_ANALOG: *type = DAC; return  CRT;
>                 case DCB_OUTPUT_TMDS  : *type = SOR; return TMDS;
>                 case DCB_OUTPUT_LVDS  : *type = SOR; return LVDS;
>                 case DCB_OUTPUT_DP    : *type = SOR; return   DP;
>                 default:
>                         break;
>                 }
>                 break;
>         case 1:
>                 switch (outp->info.type) {
>                 case DCB_OUTPUT_TMDS: *type = PIOR; return TMDS;
>                 case DCB_OUTPUT_DP  : *type = PIOR; return TMDS; /* not a bug */
>                 default:
>                         break;
>                 }
>                 break;
>         default:
>                 break;
>         }
>         WARN_ON(1);
>         return UNKNOWN;
> }
>
> Looks like someone forgot about TV S-Video/Composite outputs (which
> existed up until the GT21x's).
>
>> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
>
> And there ya go (the type is the lowest nibble of the first dword). We
> don't support TV outputs on nv50+, so you could just add a
>
> case DCB_OUTPUT_TV: return UNKNOWN;
>
> in the location == 0 case.
>
> I don't think that's related to the issue you're seeing on suspend
> though, as the TV connector isn't created anyways, it's just an
> "annoyance" warn, and you were also seeing it on your GM20x which has
> no such thing.

Actually while this may fix things for you in the short term, this is
all generic code, not chip-specific, and we do support TV outputs on
pre-nv50 chips, so it needs to be fixed for real.

Ben - I'm very weak on all these concepts of OR/etc - is the right
move to add a new nvkm_ior_proto/type for TV? (There's also a
DCB_OUTPUT_EOL type, no clue what that is.) I guess it should get type
= DAC and add a new nvkm_ior_proto for TV?

  -ilia

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15 18:12     ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 18:12 UTC (permalink / raw)
  To: Mike Galbraith, Ben Skeggs
  Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, LKML,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On Sat, Jul 15, 2017 at 12:14 PM, Ilia Mirkin <imirkin@alum.mit.edu> wrote:
> On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
>> Greetings,
>>
>> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
>> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>>
>> lspci -nn -d 10de:
>> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>>
>> abreviated dmesg:
>> ...
>> [    3.720990] fb: switching to nouveaufb from VESA VGA
>> [    3.744489] Console: switching to colour dummy device 80x25
>> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
>> ...
>> [    3.846963] usbcore: registered new interface driver uas
>> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
>> [    3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
>> [    3.870773] nouveau 0000:01:00.0: bios: M0203T not found
>> [    3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
>> [    3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
>> [    3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
>> [    3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
>> [    3.919101] [TTM] Zone  kernel: Available graphics memory: 3881208 kiB
>> [    3.919106] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
>> [    3.919110] [TTM] Initializing pool allocator
>> [    3.919120] [TTM] Initializing DMA pool allocator
>> [    3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
>> [    3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
>> [    3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
>> [    3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
>> [    3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
>> [    3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
>> [    3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
>> [    3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
>> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
>> [    3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
>> [    3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
>> [    3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
>> [    3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
>> [    3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
>> [    3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
>> [    3.919258] ------------[ cut here ]------------
>> [    3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]
>
> The code in question is
>
> static enum nvkm_ior_proto
> nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
> {
>         switch (outp->info.location) {
>         case 0:
>                 switch (outp->info.type) {
>                 case DCB_OUTPUT_ANALOG: *type = DAC; return  CRT;
>                 case DCB_OUTPUT_TMDS  : *type = SOR; return TMDS;
>                 case DCB_OUTPUT_LVDS  : *type = SOR; return LVDS;
>                 case DCB_OUTPUT_DP    : *type = SOR; return   DP;
>                 default:
>                         break;
>                 }
>                 break;
>         case 1:
>                 switch (outp->info.type) {
>                 case DCB_OUTPUT_TMDS: *type = PIOR; return TMDS;
>                 case DCB_OUTPUT_DP  : *type = PIOR; return TMDS; /* not a bug */
>                 default:
>                         break;
>                 }
>                 break;
>         default:
>                 break;
>         }
>         WARN_ON(1);
>         return UNKNOWN;
> }
>
> Looks like someone forgot about TV S-Video/Composite outputs (which
> existed up until the GT21x's).
>
>> [    3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
>
> And there ya go (the type is the lowest nibble of the first dword). We
> don't support TV outputs on nv50+, so you could just add a
>
> case DCB_OUTPUT_TV: return UNKNOWN;
>
> in the location == 0 case.
>
> I don't think that's related to the issue you're seeing on suspend
> though, as the TV connector isn't created anyways, it's just an
> "annoyance" warn, and you were also seeing it on your GM20x which has
> no such thing.

Actually while this may fix things for you in the short term, this is
all generic code, not chip-specific, and we do support TV outputs on
pre-nv50 chips, so it needs to be fixed for real.

Ben - I'm very weak on all these concepts of OR/etc - is the right
move to add a new nvkm_ior_proto/type for TV? (There's also a
DCB_OUTPUT_EOL type, no clue what that is.) I guess it should get type
= DAC and add a new nvkm_ior_proto for TV?

  -ilia
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
  2017-07-15  5:40 ` Mike Galbraith
@ 2017-07-15 18:52   ` Ilia Mirkin
  -1 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 18:52 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: dri-devel, nouveau, LKML

On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
> Greetings,
>
> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>
> lspci -nn -d 10de:
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>
> abreviated dmesg:
> ...
> [    3.720990] fb: switching to nouveaufb from VESA VGA
> [    3.744489] Console: switching to colour dummy device 80x25
> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
> ...
> [    3.846963] usbcore: registered new interface driver uas
> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
> [  321.450262] nouveau 0000:01:00.0: DRM: suspending console...
> [  321.450265] nouveau 0000:01:00.0: DRM: suspending display...
> [  321.450462] e1000e: EEE TX LPI TIMER: 00000000
> [  321.450501] br0: port 1(eth0) entered disabled state
> [  321.473838] ------------[ cut here ]------------
> [  321.473863] WARNING: CPU: 1 PID: 4786 at drivers/gpu/drm/drm_vblank.c:608 drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
> [  321.473864] Modules linked in: ebtable_filter(E) ebtables(E) fuse(E) rpcsec_gss_krb5(E) nfsv4(E) dns_resolver(E) nfs(E) fscache(E) af_packet(E) bridge(E) stp(E) llc(E) iscsi_ibft(E) iscsi_boot_sysfs(E) ip6t_REJECT(E) xt_tcpudp(E) nf_conntrack_ipv6(E) nf_defrag_ipv6(E) ip6table_raw(E) ipt_REJECT(E) iptable_raw(E) iptable_filter(E) ip6table_mangle(E) nf_conntrack_netbios_ns(E) nf_conntrack_broadcast(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) ip_tables(E) xt_conntrack(E) nf_conntrack(E) ip6table_filter(E) ip6_tables(E) x_tables(E) saa7134_alsa(E) tda1004x(E) saa7134_dvb(E) videobuf2_dvb(E) dvb_core(E) arc4(E) rt2800usb(E) rt2x00usb(E) rt2800lib(E) crc_ccitt(E) rt2x00lib(E) mac80211(E) cfg80211(E) rc_medion_x10_or2x(E) rfkill(E) ati_remote(E) tda827x(E) tda8290(E) tuner(E) snd_hda_codec_realtek(E) saa7134(E)
> [  321.473905]  snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hwdep(E) tveeprom(E) coretemp(E) videobuf2_dma_sg(E) videobuf2_memops(E) snd_hda_core(E) videobuf2_v4l2(E) kvm_intel(E) snd_pcm(E) kvm(E) videobuf2_core(E) snd_timer(E) rc_core(E) v4l2_common(E) snd(E) videodev(E) iTCO_wdt(E) media(E) e1000e(E) iTCO_vendor_support(E) ptp(E) pps_core(E) shpchp(E) soundcore(E) i2c_i801(E) lpc_ich(E) mfd_core(E) irqbypass(E) pcspkr(E) thermal(E) acpi_cpufreq(E) fan(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) ext4(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) sr_mod(E) cdrom(E) sd_mod(E) uas(E) usb_storage(E) hid_generic(E) usbhid(E) nouveau(E) wmi(E) video(E) i2c_algo_bit(E) ahci(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fops(E) firewire_ohci(E)
> [  321.473950]  libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
> [  321.473966] CPU: 1 PID: 4786 Comm: kworker/u8:17 Tainted: G        W   E   4.12.0.gccd5d1b-master #186
> [  321.473968] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
> [  321.473972] Workqueue: events_unbound async_run_entry_fn
> [  321.473974] task: ffff8801daf93d40 task.stack: ffffc90003edc000
> [  321.473990] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
> [  321.473992] RSP: 0018:ffffc90003edfb00 EFLAGS: 00010082
> [  321.473994] RAX: ffffffffa03e6100 RBX: ffff880211140000 RCX: 0000000000000001
> [  321.473995] RDX: ffffffffa01dd8c8 RSI: 0000000000000001 RDI: ffffffffa01c8023
> [  321.473996] RBP: ffffc90003edfb80 R08: 0000000000000000 R09: ffffffffa01b0920
> [  321.473998] R10: ffffffffa0376e60 R11: ffff8802131399f8 R12: 0000000000000001
> [  321.473999] R13: ffff880213139800 R14: ffffc90003edfb94 R15: ffffc90003edfbd0
> [  321.474001] FS:  0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000
> [  321.474003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  321.474004] CR2: 00007fdd82e8f810 CR3: 0000000214683000 CR4: 00000000000006e0
> [  321.474005] Call Trace:
> [  321.474068]  ? nv50_head_vblank_put+0x22/0x50 [nouveau]
> [  321.474085]  drm_get_last_vbltimestamp+0x41/0x70 [drm]
> [  321.474102]  drm_update_vblank_count+0x61/0x230 [drm]
> [  321.474118]  drm_vblank_disable_and_save+0x59/0xc0 [drm]
> [  321.474134]  drm_crtc_vblank_off+0x1d5/0x210 [drm]
> [  321.474152]  ? drm_modeset_drop_locks+0x4e/0x60 [drm]
> [  321.474203]  nouveau_display_fini+0x56/0xd0 [nouveau]
> [  321.474254]  nouveau_display_suspend+0x4f/0x110 [nouveau]
> [  321.474304]  nouveau_do_suspend+0x7c/0x1e0 [nouveau]
> [  321.474355]  nouveau_pmops_suspend+0x2d/0x70 [nouveau]
> [  321.474358]  pci_pm_suspend+0x70/0x130
> [  321.474360]  ? pci_pm_resume+0x90/0x90
> [  321.474364]  dpm_run_callback+0x4d/0x150
> [  321.474366]  __device_suspend+0x121/0x3b0
> [  321.474369]  ? pm_dev_dbg+0x70/0x70
> [  321.474370]  async_suspend+0x1a/0x90
> [  321.474373]  async_run_entry_fn+0x33/0x160
> [  321.474376]  process_one_work+0x141/0x340
> [  321.474378]  worker_thread+0x47/0x3b0
> [  321.474381]  kthread+0xfc/0x130
> [  321.474384]  ? rescuer_thread+0x360/0x360
> [  321.474386]  ? kthread_park+0x60/0x60
> [  321.474389]  ret_from_fork+0x25/0x30
> [  321.474391] Code: e1 48 c7 c2 c8 d8 1d a0 be 01 00 00 00 48 c7 c7 23 80 1c a0 e8 83 7f fe ff 48 8b 83 70 03 00 00 48 83 78 20 00 0f 84 de fe ff ff <0f> ff 31 c0 e9 d7 fe ff ff 44 89 d0 be d3 4d 62 10 48 c7 c7 23
> [  321.474425] ---[ end trace 6b7e5ebfa79000dc ]---
> [  321.474436] nouveau 0000:01:00.0: DRM: evicting buffers...
> [  321.607070] sd 2:0:0:0: [sde] Stopping disk
> [  321.669140] nouveau 0000:01:00.0: DRM: waiting for kernel channels to go idle...
> [  321.669147] nouveau 0000:01:00.0: DRM: suspending fence...
> [  321.669275] nouveau 0000:01:00.0: DRM: suspending object tree...
> [  325.124778] PM: suspend of devices complete after 3698.373 msecs
> [  325.125130] PM: late suspend of devices complete after 0.349 msecs
> [  325.146080] PM: noirq suspend of devices complete after 20.945 msecs
> [  325.146589] ACPI: Preparing to enter system sleep state S3

OK, so this issue appears to be that we're calling
drm_crtc_vblank_off() on a crtc for which vblank is already disabled.
My guess is that this happens because the crtc is disabled.

Not sure what the proper check is to see if vblanks are already disabled...

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-15 18:52   ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-15 18:52 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: nouveau, LKML, dri-devel

On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@gmx.de> wrote:
> Greetings,
>
> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>
> lspci -nn -d 10de:
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>
> abreviated dmesg:
> ...
> [    3.720990] fb: switching to nouveaufb from VESA VGA
> [    3.744489] Console: switching to colour dummy device 80x25
> [    3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
> ...
> [    3.846963] usbcore: registered new interface driver uas
> [    3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
> [  321.450262] nouveau 0000:01:00.0: DRM: suspending console...
> [  321.450265] nouveau 0000:01:00.0: DRM: suspending display...
> [  321.450462] e1000e: EEE TX LPI TIMER: 00000000
> [  321.450501] br0: port 1(eth0) entered disabled state
> [  321.473838] ------------[ cut here ]------------
> [  321.473863] WARNING: CPU: 1 PID: 4786 at drivers/gpu/drm/drm_vblank.c:608 drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
> [  321.473864] Modules linked in: ebtable_filter(E) ebtables(E) fuse(E) rpcsec_gss_krb5(E) nfsv4(E) dns_resolver(E) nfs(E) fscache(E) af_packet(E) bridge(E) stp(E) llc(E) iscsi_ibft(E) iscsi_boot_sysfs(E) ip6t_REJECT(E) xt_tcpudp(E) nf_conntrack_ipv6(E) nf_defrag_ipv6(E) ip6table_raw(E) ipt_REJECT(E) iptable_raw(E) iptable_filter(E) ip6table_mangle(E) nf_conntrack_netbios_ns(E) nf_conntrack_broadcast(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) ip_tables(E) xt_conntrack(E) nf_conntrack(E) ip6table_filter(E) ip6_tables(E) x_tables(E) saa7134_alsa(E) tda1004x(E) saa7134_dvb(E) videobuf2_dvb(E) dvb_core(E) arc4(E) rt2800usb(E) rt2x00usb(E) rt2800lib(E) crc_ccitt(E) rt2x00lib(E) mac80211(E) cfg80211(E) rc_medion_x10_or2x(E) rfkill(E) ati_remote(E) tda827x(E) tda8290(E) tuner(E) snd_hda_codec_realtek(E) saa7134(E)
> [  321.473905]  snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hwdep(E) tveeprom(E) coretemp(E) videobuf2_dma_sg(E) videobuf2_memops(E) snd_hda_core(E) videobuf2_v4l2(E) kvm_intel(E) snd_pcm(E) kvm(E) videobuf2_core(E) snd_timer(E) rc_core(E) v4l2_common(E) snd(E) videodev(E) iTCO_wdt(E) media(E) e1000e(E) iTCO_vendor_support(E) ptp(E) pps_core(E) shpchp(E) soundcore(E) i2c_i801(E) lpc_ich(E) mfd_core(E) irqbypass(E) pcspkr(E) thermal(E) acpi_cpufreq(E) fan(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) ext4(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) sr_mod(E) cdrom(E) sd_mod(E) uas(E) usb_storage(E) hid_generic(E) usbhid(E) nouveau(E) wmi(E) video(E) i2c_algo_bit(E) ahci(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) libahci(E) sysimgblt(E) fb_sys_fops(E) firewire_ohci(E)
> [  321.473950]  libata(E) firewire_core(E) crc_itu_t(E) ehci_pci(E) serio_raw(E) ttm(E) button(E) drm(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E) autofs4(E)
> [  321.473966] CPU: 1 PID: 4786 Comm: kworker/u8:17 Tainted: G        W   E   4.12.0.gccd5d1b-master #186
> [  321.473968] Hardware name: MEDIONPC MS-7502/MS-7502, BIOS 6.00 PG 12/26/2007
> [  321.473972] Workqueue: events_unbound async_run_entry_fn
> [  321.473974] task: ffff8801daf93d40 task.stack: ffffc90003edc000
> [  321.473990] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x14f/0x330 [drm]
> [  321.473992] RSP: 0018:ffffc90003edfb00 EFLAGS: 00010082
> [  321.473994] RAX: ffffffffa03e6100 RBX: ffff880211140000 RCX: 0000000000000001
> [  321.473995] RDX: ffffffffa01dd8c8 RSI: 0000000000000001 RDI: ffffffffa01c8023
> [  321.473996] RBP: ffffc90003edfb80 R08: 0000000000000000 R09: ffffffffa01b0920
> [  321.473998] R10: ffffffffa0376e60 R11: ffff8802131399f8 R12: 0000000000000001
> [  321.473999] R13: ffff880213139800 R14: ffffc90003edfb94 R15: ffffc90003edfbd0
> [  321.474001] FS:  0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000
> [  321.474003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  321.474004] CR2: 00007fdd82e8f810 CR3: 0000000214683000 CR4: 00000000000006e0
> [  321.474005] Call Trace:
> [  321.474068]  ? nv50_head_vblank_put+0x22/0x50 [nouveau]
> [  321.474085]  drm_get_last_vbltimestamp+0x41/0x70 [drm]
> [  321.474102]  drm_update_vblank_count+0x61/0x230 [drm]
> [  321.474118]  drm_vblank_disable_and_save+0x59/0xc0 [drm]
> [  321.474134]  drm_crtc_vblank_off+0x1d5/0x210 [drm]
> [  321.474152]  ? drm_modeset_drop_locks+0x4e/0x60 [drm]
> [  321.474203]  nouveau_display_fini+0x56/0xd0 [nouveau]
> [  321.474254]  nouveau_display_suspend+0x4f/0x110 [nouveau]
> [  321.474304]  nouveau_do_suspend+0x7c/0x1e0 [nouveau]
> [  321.474355]  nouveau_pmops_suspend+0x2d/0x70 [nouveau]
> [  321.474358]  pci_pm_suspend+0x70/0x130
> [  321.474360]  ? pci_pm_resume+0x90/0x90
> [  321.474364]  dpm_run_callback+0x4d/0x150
> [  321.474366]  __device_suspend+0x121/0x3b0
> [  321.474369]  ? pm_dev_dbg+0x70/0x70
> [  321.474370]  async_suspend+0x1a/0x90
> [  321.474373]  async_run_entry_fn+0x33/0x160
> [  321.474376]  process_one_work+0x141/0x340
> [  321.474378]  worker_thread+0x47/0x3b0
> [  321.474381]  kthread+0xfc/0x130
> [  321.474384]  ? rescuer_thread+0x360/0x360
> [  321.474386]  ? kthread_park+0x60/0x60
> [  321.474389]  ret_from_fork+0x25/0x30
> [  321.474391] Code: e1 48 c7 c2 c8 d8 1d a0 be 01 00 00 00 48 c7 c7 23 80 1c a0 e8 83 7f fe ff 48 8b 83 70 03 00 00 48 83 78 20 00 0f 84 de fe ff ff <0f> ff 31 c0 e9 d7 fe ff ff 44 89 d0 be d3 4d 62 10 48 c7 c7 23
> [  321.474425] ---[ end trace 6b7e5ebfa79000dc ]---
> [  321.474436] nouveau 0000:01:00.0: DRM: evicting buffers...
> [  321.607070] sd 2:0:0:0: [sde] Stopping disk
> [  321.669140] nouveau 0000:01:00.0: DRM: waiting for kernel channels to go idle...
> [  321.669147] nouveau 0000:01:00.0: DRM: suspending fence...
> [  321.669275] nouveau 0000:01:00.0: DRM: suspending object tree...
> [  325.124778] PM: suspend of devices complete after 3698.373 msecs
> [  325.125130] PM: late suspend of devices complete after 0.349 msecs
> [  325.146080] PM: noirq suspend of devices complete after 20.945 msecs
> [  325.146589] ACPI: Preparing to enter system sleep state S3

OK, so this issue appears to be that we're calling
drm_crtc_vblank_off() on a crtc for which vblank is already disabled.
My guess is that this happens because the crtc is disabled.

Not sure what the proper check is to see if vblanks are already disabled...
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
  2017-07-15 18:52   ` Ilia Mirkin
  (?)
@ 2017-07-16  4:43   ` Mike Galbraith
  2017-07-16 15:59       ` Ilia Mirkin
  2017-07-19 17:25       ` Tobias Klausmann
  -1 siblings, 2 replies; 22+ messages in thread
From: Mike Galbraith @ 2017-07-16  4:43 UTC (permalink / raw)
  To: Ilia Mirkin; +Cc: dri-devel, nouveau, LKML

On Sat, 2017-07-15 at 14:52 -0400, Ilia Mirkin wrote:
> 
> OK, so this issue appears to be that we're calling
> drm_crtc_vblank_off() on a crtc for which vblank is already disabled.
> My guess is that this happens because the crtc is disabled.
> 
> Not sure what the proper check is to see if vblanks are already disabled...

Seems so, the below shut up suspend for both 8600 GT and GTX 980.

---
 drivers/gpu/drm/drm_vblank.c |   18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -323,6 +323,14 @@ void drm_vblank_disable_and_save(struct
 	spin_lock_irqsave(&dev->vblank_time_lock, irqflags);
 
 	/*
+	 * Always update the count and timestamp to maintain the
+	 * appearance that the counter has been ticking all along until
+	 * this time. This makes the count account for the entire time
+	 * between drm_crtc_vblank_on() and drm_crtc_vblank_off().
+	 */
+	drm_update_vblank_count(dev, pipe, false);
+
+	/*
 	 * Only disable vblank interrupts if they're enabled. This avoids
 	 * calling the ->disable_vblank() operation in atomic context with the
 	 * hardware potentially runtime suspended.
@@ -332,14 +340,6 @@ void drm_vblank_disable_and_save(struct
 		vblank->enabled = false;
 	}
 
-	/*
-	 * Always update the count and timestamp to maintain the
-	 * appearance that the counter has been ticking all along until
-	 * this time. This makes the count account for the entire time
-	 * between drm_crtc_vblank_on() and drm_crtc_vblank_off().
-	 */
-	drm_update_vblank_count(dev, pipe, false);
-
 	spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
 }
 
@@ -605,7 +605,7 @@ bool drm_calc_vbltimestamp_from_scanoutp
 	 */
 	if (mode->crtc_clock == 0) {
 		DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe);
-		WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev));
+		WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev) && vblank->enabled);
 
 		return false;
 	}

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
  2017-07-16  4:43   ` Mike Galbraith
@ 2017-07-16 15:59       ` Ilia Mirkin
  2017-07-19 17:25       ` Tobias Klausmann
  1 sibling, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-16 15:59 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: dri-devel, nouveau, LKML

On Sun, Jul 16, 2017 at 12:43 AM, Mike Galbraith <efault@gmx.de> wrote:
> On Sat, 2017-07-15 at 14:52 -0400, Ilia Mirkin wrote:
>>
>> OK, so this issue appears to be that we're calling
>> drm_crtc_vblank_off() on a crtc for which vblank is already disabled.
>> My guess is that this happens because the crtc is disabled.
>>
>> Not sure what the proper check is to see if vblanks are already disabled...
>
> Seems so, the below shut up suspend for both 8600 GT and GTX 980.

The modeset done by drm_atomic_helper_suspend (called previously to
that *_fini) should already take care of disabling vblanks, I think.
So the vblank_off calls can just be done when we're not doing an
atomic modeset [drm_drv_uses_atomic_modeset(dev)] -- this is all very
confusing since pre-nv50 uses legacy modesets, while nv50+ has been
moved to atomic, but they share a bunch of helpers =/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling
@ 2017-07-16 15:59       ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-16 15:59 UTC (permalink / raw)
  To: Mike Galbraith; +Cc: nouveau, LKML, dri-devel

On Sun, Jul 16, 2017 at 12:43 AM, Mike Galbraith <efault@gmx.de> wrote:
> On Sat, 2017-07-15 at 14:52 -0400, Ilia Mirkin wrote:
>>
>> OK, so this issue appears to be that we're calling
>> drm_crtc_vblank_off() on a crtc for which vblank is already disabled.
>> My guess is that this happens because the crtc is disabled.
>>
>> Not sure what the proper check is to see if vblanks are already disabled...
>
> Seems so, the below shut up suspend for both 8600 GT and GTX 980.

The modeset done by drm_atomic_helper_suspend (called previously to
that *_fini) should already take care of disabling vblanks, I think.
So the vblank_off calls can just be done when we're not doing an
atomic modeset [drm_drv_uses_atomic_modeset(dev)] -- this is all very
confusing since pre-nv50 uses legacy modesets, while nv50+ has been
moved to atomic, but they share a bunch of helpers =/
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH] drm: disable vblank only if it got previously enabled
  2017-07-16  4:43   ` Mike Galbraith
@ 2017-07-19 17:25       ` Tobias Klausmann
  2017-07-19 17:25       ` Tobias Klausmann
  1 sibling, 0 replies; 22+ messages in thread
From: Tobias Klausmann @ 2017-07-19 17:25 UTC (permalink / raw)
  To: nouveau, dri-devel, linux-kernel; +Cc: Tobias Klausmann

mimic the behavior of vblank_disable_fn(), another caller of
drm_vblank_disable_and_save().

This avoids oopsing, while trying to disable vblank on a not connected display:

[   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
[   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
[   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
[   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
[   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
[   12.768164] Workqueue: pm pm_runtime_work
[   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
[   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
[   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
[   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
[   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
[   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
[   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
[   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
[   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
[   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
[   12.768193] Call Trace:
[   12.768198]  ? enqueue_task_fair+0x64/0x600
[   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
[   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
[   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
[   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
[   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
[   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
[   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
[   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
[   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
[   12.768419]  ? __rpm_callback+0xb6/0x1e0
[   12.768423]  ? kobject_uevent_env+0x111/0x5e0
[   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768427]  ? rpm_callback+0x1f/0x70
[   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768431]  ? rpm_suspend+0x11f/0x640
[   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
[   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
[   12.768449]  ? pm_runtime_work+0x64/0xa0
[   12.768453]  ? process_one_work+0x1db/0x410
[   12.768456]  ? worker_thread+0x47/0x3d0
[   12.768459]  ? process_one_work+0x410/0x410
[   12.768461]  ? kthread+0x117/0x130
[   12.768463]  ? kthread_create_on_node+0x40/0x40
[   12.768466]  ? ret_from_fork+0x25/0x30
[   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
[   12.768508] ---[ end trace d9bb853af3659bd5 ]---

Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
---
 drivers/gpu/drm/drm_vblank.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index a233a6be934a..4a21756bf2bd 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
 
 	/* Avoid redundant vblank disables without previous
 	 * drm_crtc_vblank_on(). */
-	if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
+		vblank->enabled)) {
+		DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
 		drm_vblank_disable_and_save(dev, pipe);
+	}
 
 	wake_up(&vblank->queue);
 
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-19 17:25       ` Tobias Klausmann
  0 siblings, 0 replies; 22+ messages in thread
From: Tobias Klausmann @ 2017-07-19 17:25 UTC (permalink / raw)
  To: nouveau, dri-devel, linux-kernel; +Cc: Tobias Klausmann

mimic the behavior of vblank_disable_fn(), another caller of
drm_vblank_disable_and_save().

This avoids oopsing, while trying to disable vblank on a not connected display:

[   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
[   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_
 pch_thermal
[   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
[   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
[   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
[   12.768164] Workqueue: pm pm_runtime_work
[   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
[   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
[   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
[   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
[   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
[   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
[   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
[   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
[   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
[   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
[   12.768193] Call Trace:
[   12.768198]  ? enqueue_task_fair+0x64/0x600
[   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
[   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
[   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
[   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
[   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
[   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
[   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
[   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
[   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
[   12.768419]  ? __rpm_callback+0xb6/0x1e0
[   12.768423]  ? kobject_uevent_env+0x111/0x5e0
[   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768427]  ? rpm_callback+0x1f/0x70
[   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
[   12.768431]  ? rpm_suspend+0x11f/0x640
[   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
[   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
[   12.768449]  ? pm_runtime_work+0x64/0xa0
[   12.768453]  ? process_one_work+0x1db/0x410
[   12.768456]  ? worker_thread+0x47/0x3d0
[   12.768459]  ? process_one_work+0x410/0x410
[   12.768461]  ? kthread+0x117/0x130
[   12.768463]  ? kthread_create_on_node+0x40/0x40
[   12.768466]  ? ret_from_fork+0x25/0x30
[   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
[   12.768508] ---[ end trace d9bb853af3659bd5 ]---

Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
---
 drivers/gpu/drm/drm_vblank.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index a233a6be934a..4a21756bf2bd 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
 
 	/* Avoid redundant vblank disables without previous
 	 * drm_crtc_vblank_on(). */
-	if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
+		vblank->enabled)) {
+		DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
 		drm_vblank_disable_and_save(dev, pipe);
+	}
 
 	wake_up(&vblank->queue);
 
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
  2017-07-19 17:25       ` Tobias Klausmann
@ 2017-07-19 20:10         ` Ilia Mirkin
  -1 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-19 20:10 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: nouveau, dri-devel, linux-kernel

I believe the solution is to not call drm_crtc_vblank_off for atomic
modesetting in nouveau_display_fini. I think Ben's working on it.

On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> mimic the behavior of vblank_disable_fn(), another caller of
> drm_vblank_disable_and_save().
>
> This avoids oopsing, while trying to disable vblank on a not connected display:
>
> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
> [   12.768164] Workqueue: pm pm_runtime_work
> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
> [   12.768193] Call Trace:
> [   12.768198]  ? enqueue_task_fair+0x64/0x600
> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768427]  ? rpm_callback+0x1f/0x70
> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768431]  ? rpm_suspend+0x11f/0x640
> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
> [   12.768449]  ? pm_runtime_work+0x64/0xa0
> [   12.768453]  ? process_one_work+0x1db/0x410
> [   12.768456]  ? worker_thread+0x47/0x3d0
> [   12.768459]  ? process_one_work+0x410/0x410
> [   12.768461]  ? kthread+0x117/0x130
> [   12.768463]  ? kthread_create_on_node+0x40/0x40
> [   12.768466]  ? ret_from_fork+0x25/0x30
> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> ---
>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index a233a6be934a..4a21756bf2bd 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>
>         /* Avoid redundant vblank disables without previous
>          * drm_crtc_vblank_on(). */
> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
> +               vblank->enabled)) {
> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>                 drm_vblank_disable_and_save(dev, pipe);
> +       }
>
>         wake_up(&vblank->queue);
>
> --
> 2.13.2
>
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-19 20:10         ` Ilia Mirkin
  0 siblings, 0 replies; 22+ messages in thread
From: Ilia Mirkin @ 2017-07-19 20:10 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: nouveau, linux-kernel, dri-devel

I believe the solution is to not call drm_crtc_vblank_off for atomic
modesetting in nouveau_display_fini. I think Ben's working on it.

On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> mimic the behavior of vblank_disable_fn(), another caller of
> drm_vblank_disable_and_save().
>
> This avoids oopsing, while trying to disable vblank on a not connected display:
>
> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
> [   12.768164] Workqueue: pm pm_runtime_work
> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
> [   12.768193] Call Trace:
> [   12.768198]  ? enqueue_task_fair+0x64/0x600
> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768427]  ? rpm_callback+0x1f/0x70
> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
> [   12.768431]  ? rpm_suspend+0x11f/0x640
> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
> [   12.768449]  ? pm_runtime_work+0x64/0xa0
> [   12.768453]  ? process_one_work+0x1db/0x410
> [   12.768456]  ? worker_thread+0x47/0x3d0
> [   12.768459]  ? process_one_work+0x410/0x410
> [   12.768461]  ? kthread+0x117/0x130
> [   12.768463]  ? kthread_create_on_node+0x40/0x40
> [   12.768466]  ? ret_from_fork+0x25/0x30
> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> ---
>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index a233a6be934a..4a21756bf2bd 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>
>         /* Avoid redundant vblank disables without previous
>          * drm_crtc_vblank_on(). */
> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
> +               vblank->enabled)) {
> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>                 drm_vblank_disable_and_save(dev, pipe);
> +       }
>
>         wake_up(&vblank->queue);
>
> --
> 2.13.2
>
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-20  8:13           ` Daniel Vetter
  0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2017-07-20  8:13 UTC (permalink / raw)
  To: Ilia Mirkin; +Cc: Tobias Klausmann, nouveau, linux-kernel, dri-devel

On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
> I believe the solution is to not call drm_crtc_vblank_off for atomic
> modesetting in nouveau_display_fini. I think Ben's working on it.

Yes, the goal of vblank_on/off was very much to not paper over driver bugs
with clever tricks like these. If the driver cant keep track of its
vblank, something has gone wrong, and the core should _not_ fix it up.
Otherwise we're back to the old style vblank horror show.

Thanks, Daniel

> 
> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
> <tobias.johannes.klausmann@mni.thm.de> wrote:
> > mimic the behavior of vblank_disable_fn(), another caller of
> > drm_vblank_disable_and_save().
> >
> > This avoids oopsing, while trying to disable vblank on a not connected display:
> >
> > [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> > [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
> > [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
> > [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
> > [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
> > [   12.768164] Workqueue: pm pm_runtime_work
> > [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
> > [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> > [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
> > [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
> > [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
> > [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
> > [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
> > [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
> > [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
> > [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
> > [   12.768193] Call Trace:
> > [   12.768198]  ? enqueue_task_fair+0x64/0x600
> > [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
> > [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
> > [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
> > [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
> > [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
> > [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
> > [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
> > [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
> > [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
> > [   12.768419]  ? __rpm_callback+0xb6/0x1e0
> > [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
> > [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768427]  ? rpm_callback+0x1f/0x70
> > [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768431]  ? rpm_suspend+0x11f/0x640
> > [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
> > [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
> > [   12.768449]  ? pm_runtime_work+0x64/0xa0
> > [   12.768453]  ? process_one_work+0x1db/0x410
> > [   12.768456]  ? worker_thread+0x47/0x3d0
> > [   12.768459]  ? process_one_work+0x410/0x410
> > [   12.768461]  ? kthread+0x117/0x130
> > [   12.768463]  ? kthread_create_on_node+0x40/0x40
> > [   12.768466]  ? ret_from_fork+0x25/0x30
> > [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
> > [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
> >
> > Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> > ---
> >  drivers/gpu/drm/drm_vblank.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index a233a6be934a..4a21756bf2bd 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
> >
> >         /* Avoid redundant vblank disables without previous
> >          * drm_crtc_vblank_on(). */
> > -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
> > +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
> > +               vblank->enabled)) {
> > +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
> >                 drm_vblank_disable_and_save(dev, pipe);
> > +       }
> >
> >         wake_up(&vblank->queue);
> >
> > --
> > 2.13.2
> >
> > _______________________________________________
> > Nouveau mailing list
> > Nouveau@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/nouveau
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-20  8:13           ` Daniel Vetter
  0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2017-07-20  8:13 UTC (permalink / raw)
  To: Ilia Mirkin
  Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
> I believe the solution is to not call drm_crtc_vblank_off for atomic
> modesetting in nouveau_display_fini. I think Ben's working on it.

Yes, the goal of vblank_on/off was very much to not paper over driver bugs
with clever tricks like these. If the driver cant keep track of its
vblank, something has gone wrong, and the core should _not_ fix it up.
Otherwise we're back to the old style vblank horror show.

Thanks, Daniel

> 
> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
> <tobias.johannes.klausmann@mni.thm.de> wrote:
> > mimic the behavior of vblank_disable_fn(), another caller of
> > drm_vblank_disable_and_save().
> >
> > This avoids oopsing, while trying to disable vblank on a not connected display:
> >
> > [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> > [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
> > [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
> > [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
> > [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
> > [   12.768164] Workqueue: pm pm_runtime_work
> > [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
> > [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
> > [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
> > [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
> > [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
> > [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
> > [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
> > [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
> > [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
> > [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
> > [   12.768193] Call Trace:
> > [   12.768198]  ? enqueue_task_fair+0x64/0x600
> > [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
> > [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
> > [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
> > [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
> > [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
> > [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
> > [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
> > [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
> > [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
> > [   12.768419]  ? __rpm_callback+0xb6/0x1e0
> > [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
> > [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768427]  ? rpm_callback+0x1f/0x70
> > [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
> > [   12.768431]  ? rpm_suspend+0x11f/0x640
> > [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
> > [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
> > [   12.768449]  ? pm_runtime_work+0x64/0xa0
> > [   12.768453]  ? process_one_work+0x1db/0x410
> > [   12.768456]  ? worker_thread+0x47/0x3d0
> > [   12.768459]  ? process_one_work+0x410/0x410
> > [   12.768461]  ? kthread+0x117/0x130
> > [   12.768463]  ? kthread_create_on_node+0x40/0x40
> > [   12.768466]  ? ret_from_fork+0x25/0x30
> > [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
> > [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
> >
> > Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> > ---
> >  drivers/gpu/drm/drm_vblank.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index a233a6be934a..4a21756bf2bd 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
> >
> >         /* Avoid redundant vblank disables without previous
> >          * drm_crtc_vblank_on(). */
> > -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
> > +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
> > +               vblank->enabled)) {
> > +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
> >                 drm_vblank_disable_and_save(dev, pipe);
> > +       }
> >
> >         wake_up(&vblank->queue);
> >
> > --
> > 2.13.2
> >
> > _______________________________________________
> > Nouveau mailing list
> > Nouveau@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/nouveau
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
  2017-07-20  8:13           ` Daniel Vetter
@ 2017-07-20 21:58             ` Tobias Klausmann
  -1 siblings, 0 replies; 22+ messages in thread
From: Tobias Klausmann @ 2017-07-20 21:58 UTC (permalink / raw)
  To: Ilia Mirkin, nouveau, linux-kernel, dri-devel

Mh ok,

paper over in nouveau_display_fini until Ben comes up with a better idea
then?!


Greetings,

Tobias


On 7/20/17 10:13 AM, Daniel Vetter wrote:
> On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
>> I believe the solution is to not call drm_crtc_vblank_off for atomic
>> modesetting in nouveau_display_fini. I think Ben's working on it.
> Yes, the goal of vblank_on/off was very much to not paper over driver bugs
> with clever tricks like these. If the driver cant keep track of its
> vblank, something has gone wrong, and the core should _not_ fix it up.
> Otherwise we're back to the old style vblank horror show.
>
> Thanks, Daniel
>
>> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
>> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>> mimic the behavior of vblank_disable_fn(), another caller of
>>> drm_vblank_disable_and_save().
>>>
>>> This avoids oopsing, while trying to disable vblank on a not connected display:
>>>
>>> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
>>> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
>>> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
>>> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
>>> [   12.768164] Workqueue: pm pm_runtime_work
>>> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
>>> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
>>> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
>>> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
>>> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
>>> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
>>> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
>>> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
>>> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
>>> [   12.768193] Call Trace:
>>> [   12.768198]  ? enqueue_task_fair+0x64/0x600
>>> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
>>> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
>>> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
>>> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
>>> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
>>> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
>>> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
>>> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
>>> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
>>> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
>>> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
>>> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768427]  ? rpm_callback+0x1f/0x70
>>> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768431]  ? rpm_suspend+0x11f/0x640
>>> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
>>> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
>>> [   12.768449]  ? pm_runtime_work+0x64/0xa0
>>> [   12.768453]  ? process_one_work+0x1db/0x410
>>> [   12.768456]  ? worker_thread+0x47/0x3d0
>>> [   12.768459]  ? process_one_work+0x410/0x410
>>> [   12.768461]  ? kthread+0x117/0x130
>>> [   12.768463]  ? kthread_create_on_node+0x40/0x40
>>> [   12.768466]  ? ret_from_fork+0x25/0x30
>>> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
>>> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>>>
>>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
>>> ---
>>>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>>> index a233a6be934a..4a21756bf2bd 100644
>>> --- a/drivers/gpu/drm/drm_vblank.c
>>> +++ b/drivers/gpu/drm/drm_vblank.c
>>> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>>>
>>>         /* Avoid redundant vblank disables without previous
>>>          * drm_crtc_vblank_on(). */
>>> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
>>> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
>>> +               vblank->enabled)) {
>>> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>>>                 drm_vblank_disable_and_save(dev, pipe);
>>> +       }
>>>
>>>         wake_up(&vblank->queue);
>>>
>>> --
>>> 2.13.2
>>>
>>> _______________________________________________
>>> Nouveau mailing list
>>> Nouveau@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-20 21:58             ` Tobias Klausmann
  0 siblings, 0 replies; 22+ messages in thread
From: Tobias Klausmann @ 2017-07-20 21:58 UTC (permalink / raw)
  To: Ilia Mirkin, nouveau, linux-kernel, dri-devel

Mh ok,

paper over in nouveau_display_fini until Ben comes up with a better idea
then?!


Greetings,

Tobias


On 7/20/17 10:13 AM, Daniel Vetter wrote:
> On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
>> I believe the solution is to not call drm_crtc_vblank_off for atomic
>> modesetting in nouveau_display_fini. I think Ben's working on it.
> Yes, the goal of vblank_on/off was very much to not paper over driver bugs
> with clever tricks like these. If the driver cant keep track of its
> vblank, something has gone wrong, and the core should _not_ fix it up.
> Otherwise we're back to the old style vblank horror show.
>
> Thanks, Daniel
>
>> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
>> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>> mimic the behavior of vblank_disable_fn(), another caller of
>>> drm_vblank_disable_and_save().
>>>
>>> This avoids oopsing, while trying to disable vblank on a not connected display:
>>>
>>> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci in
 tel_pch_thermal
>>> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
>>> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
>>> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
>>> [   12.768164] Workqueue: pm pm_runtime_work
>>> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
>>> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
>>> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
>>> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
>>> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
>>> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
>>> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
>>> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
>>> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
>>> [   12.768193] Call Trace:
>>> [   12.768198]  ? enqueue_task_fair+0x64/0x600
>>> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
>>> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
>>> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
>>> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
>>> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
>>> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
>>> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
>>> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
>>> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
>>> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
>>> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
>>> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768427]  ? rpm_callback+0x1f/0x70
>>> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
>>> [   12.768431]  ? rpm_suspend+0x11f/0x640
>>> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
>>> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
>>> [   12.768449]  ? pm_runtime_work+0x64/0xa0
>>> [   12.768453]  ? process_one_work+0x1db/0x410
>>> [   12.768456]  ? worker_thread+0x47/0x3d0
>>> [   12.768459]  ? process_one_work+0x410/0x410
>>> [   12.768461]  ? kthread+0x117/0x130
>>> [   12.768463]  ? kthread_create_on_node+0x40/0x40
>>> [   12.768466]  ? ret_from_fork+0x25/0x30
>>> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
>>> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>>>
>>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
>>> ---
>>>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>>> index a233a6be934a..4a21756bf2bd 100644
>>> --- a/drivers/gpu/drm/drm_vblank.c
>>> +++ b/drivers/gpu/drm/drm_vblank.c
>>> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>>>
>>>         /* Avoid redundant vblank disables without previous
>>>          * drm_crtc_vblank_on(). */
>>> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
>>> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
>>> +               vblank->enabled)) {
>>> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>>>                 drm_vblank_disable_and_save(dev, pipe);
>>> +       }
>>>
>>>         wake_up(&vblank->queue);
>>>
>>> --
>>> 2.13.2
>>>
>>> _______________________________________________
>>> Nouveau mailing list
>>> Nouveau@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
  2017-07-20 21:58             ` Tobias Klausmann
@ 2017-07-20 22:05               ` Daniel Vetter
  -1 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2017-07-20 22:05 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: Ilia Mirkin, nouveau, linux-kernel, dri-devel

On Thu, Jul 20, 2017 at 11:58 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> Mh ok,
>
> paper over in nouveau_display_fini until Ben comes up with a better idea
> then?!

No paper needed, just don't call drm_vblank_off for the atomic case.
Not sure why that patch isn't landed yet, it should be simple.
-Daniel

>
> Greetings,
>
> Tobias
>
>
> On 7/20/17 10:13 AM, Daniel Vetter wrote:
>> On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
>>> I believe the solution is to not call drm_crtc_vblank_off for atomic
>>> modesetting in nouveau_display_fini. I think Ben's working on it.
>> Yes, the goal of vblank_on/off was very much to not paper over driver bugs
>> with clever tricks like these. If the driver cant keep track of its
>> vblank, something has gone wrong, and the core should _not_ fix it up.
>> Otherwise we're back to the old style vblank horror show.
>>
>> Thanks, Daniel
>>
>>> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
>>> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>>> mimic the behavior of vblank_disable_fn(), another caller of
>>>> drm_vblank_disable_and_save().
>>>>
>>>> This avoids oopsing, while trying to disable vblank on a not connected display:
>>>>
>>>> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
>>>> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
>>>> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
>>>> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
>>>> [   12.768164] Workqueue: pm pm_runtime_work
>>>> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
>>>> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
>>>> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
>>>> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
>>>> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
>>>> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
>>>> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
>>>> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
>>>> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>>> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
>>>> [   12.768193] Call Trace:
>>>> [   12.768198]  ? enqueue_task_fair+0x64/0x600
>>>> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
>>>> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
>>>> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
>>>> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
>>>> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
>>>> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
>>>> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
>>>> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
>>>> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
>>>> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
>>>> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
>>>> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768427]  ? rpm_callback+0x1f/0x70
>>>> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768431]  ? rpm_suspend+0x11f/0x640
>>>> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
>>>> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
>>>> [   12.768449]  ? pm_runtime_work+0x64/0xa0
>>>> [   12.768453]  ? process_one_work+0x1db/0x410
>>>> [   12.768456]  ? worker_thread+0x47/0x3d0
>>>> [   12.768459]  ? process_one_work+0x410/0x410
>>>> [   12.768461]  ? kthread+0x117/0x130
>>>> [   12.768463]  ? kthread_create_on_node+0x40/0x40
>>>> [   12.768466]  ? ret_from_fork+0x25/0x30
>>>> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
>>>> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>>>>
>>>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
>>>> ---
>>>>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>>>> index a233a6be934a..4a21756bf2bd 100644
>>>> --- a/drivers/gpu/drm/drm_vblank.c
>>>> +++ b/drivers/gpu/drm/drm_vblank.c
>>>> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>>>>
>>>>         /* Avoid redundant vblank disables without previous
>>>>          * drm_crtc_vblank_on(). */
>>>> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
>>>> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
>>>> +               vblank->enabled)) {
>>>> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>>>>                 drm_vblank_disable_and_save(dev, pipe);
>>>> +       }
>>>>
>>>>         wake_up(&vblank->queue);
>>>>
>>>> --
>>>> 2.13.2
>>>>
>>>> _______________________________________________
>>>> Nouveau mailing list
>>>> Nouveau@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>>> _______________________________________________
>>> Nouveau mailing list
>>> Nouveau@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Nouveau] [PATCH] drm: disable vblank only if it got previously enabled
@ 2017-07-20 22:05               ` Daniel Vetter
  0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2017-07-20 22:05 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: nouveau, dri-devel, linux-kernel

On Thu, Jul 20, 2017 at 11:58 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> Mh ok,
>
> paper over in nouveau_display_fini until Ben comes up with a better idea
> then?!

No paper needed, just don't call drm_vblank_off for the atomic case.
Not sure why that patch isn't landed yet, it should be simple.
-Daniel

>
> Greetings,
>
> Tobias
>
>
> On 7/20/17 10:13 AM, Daniel Vetter wrote:
>> On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
>>> I believe the solution is to not call drm_crtc_vblank_off for atomic
>>> modesetting in nouveau_display_fini. I think Ben's working on it.
>> Yes, the goal of vblank_on/off was very much to not paper over driver bugs
>> with clever tricks like these. If the driver cant keep track of its
>> vblank, something has gone wrong, and the core should _not_ fix it up.
>> Otherwise we're back to the old style vblank horror show.
>>
>> Thanks, Daniel
>>
>>> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
>>> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>>> mimic the behavior of vblank_disable_fn(), another caller of
>>>> drm_vblank_disable_and_save().
>>>>
>>>> This avoids oopsing, while trying to disable vblank on a not connected display:
>>>>
>>>> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
>>>> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
>>>> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
>>>> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
>>>> [   12.768164] Workqueue: pm pm_runtime_work
>>>> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
>>>> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
>>>> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
>>>> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
>>>> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
>>>> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
>>>> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
>>>> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
>>>> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>>> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
>>>> [   12.768193] Call Trace:
>>>> [   12.768198]  ? enqueue_task_fair+0x64/0x600
>>>> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
>>>> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
>>>> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
>>>> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
>>>> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
>>>> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
>>>> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
>>>> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
>>>> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
>>>> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
>>>> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
>>>> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768427]  ? rpm_callback+0x1f/0x70
>>>> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>> [   12.768431]  ? rpm_suspend+0x11f/0x640
>>>> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
>>>> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
>>>> [   12.768449]  ? pm_runtime_work+0x64/0xa0
>>>> [   12.768453]  ? process_one_work+0x1db/0x410
>>>> [   12.768456]  ? worker_thread+0x47/0x3d0
>>>> [   12.768459]  ? process_one_work+0x410/0x410
>>>> [   12.768461]  ? kthread+0x117/0x130
>>>> [   12.768463]  ? kthread_create_on_node+0x40/0x40
>>>> [   12.768466]  ? ret_from_fork+0x25/0x30
>>>> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
>>>> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>>>>
>>>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
>>>> ---
>>>>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>>>> index a233a6be934a..4a21756bf2bd 100644
>>>> --- a/drivers/gpu/drm/drm_vblank.c
>>>> +++ b/drivers/gpu/drm/drm_vblank.c
>>>> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>>>>
>>>>         /* Avoid redundant vblank disables without previous
>>>>          * drm_crtc_vblank_on(). */
>>>> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
>>>> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
>>>> +               vblank->enabled)) {
>>>> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>>>>                 drm_vblank_disable_and_save(dev, pipe);
>>>> +       }
>>>>
>>>>         wake_up(&vblank->queue);
>>>>
>>>> --
>>>> 2.13.2
>>>>
>>>> _______________________________________________
>>>> Nouveau mailing list
>>>> Nouveau@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>>> _______________________________________________
>>> Nouveau mailing list
>>> Nouveau@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] drm: disable vblank only if it got previously enabled
       [not found]               ` <CAKMK7uF=peNM1Ua16OhwivAfmaN+PdFLPWWSJv4jyzsnOp0XNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2017-07-20 22:33                 ` Ben Skeggs
  0 siblings, 0 replies; 22+ messages in thread
From: Ben Skeggs @ 2017-07-20 22:33 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW


[-- Attachment #1.1.1: Type: text/plain, Size: 7580 bytes --]

On 07/21/2017 08:05 AM, Daniel Vetter wrote:
> On Thu, Jul 20, 2017 at 11:58 PM, Tobias Klausmann
> <tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org> wrote:
>> Mh ok,
>>
>> paper over in nouveau_display_fini until Ben comes up with a better idea
>> then?!
> 
> No paper needed, just don't call drm_vblank_off for the atomic case.
> Not sure why that patch isn't landed yet, it should be simple.
I'll be sending at least that part out today.

Ben.
> -Daniel
> 
>>
>> Greetings,
>>
>> Tobias
>>
>>
>> On 7/20/17 10:13 AM, Daniel Vetter wrote:
>>> On Wed, Jul 19, 2017 at 04:10:50PM -0400, Ilia Mirkin wrote:
>>>> I believe the solution is to not call drm_crtc_vblank_off for atomic
>>>> modesetting in nouveau_display_fini. I think Ben's working on it.
>>> Yes, the goal of vblank_on/off was very much to not paper over driver bugs
>>> with clever tricks like these. If the driver cant keep track of its
>>> vblank, something has gone wrong, and the core should _not_ fix it up.
>>> Otherwise we're back to the old style vblank horror show.
>>>
>>> Thanks, Daniel
>>>
>>>> On Wed, Jul 19, 2017 at 1:25 PM, Tobias Klausmann
>>>> <tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org> wrote:
>>>>> mimic the behavior of vblank_disable_fn(), another caller of
>>>>> drm_vblank_disable_and_save().
>>>>>
>>>>> This avoids oopsing, while trying to disable vblank on a not connected display:
>>>>>
>>>>> [   12.768079] WARNING: CPU: 0 PID: 274 at drivers/gpu/drm/drm_vblank.c:609 drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>>> [   12.768080] Modules linked in: bnep snd_hda_codec_hdmi rtsx_usb_sdmmc uvcvideo rtsx_usb_ms mmc_core videobuf2_vmalloc memstick videobuf2_memops videobuf2_v4l2 videobuf2_core rtsx_usb videodev btusb btrtl arc4 snd_hda_codec_realtek snd_hda_codec_generic joydev nls_iso8859_1 hid_multitouch nls_cp437 intel_rapl x86_pkg_temp_thermal intel_powerclamp vfat coretemp fat kvm_intel iTCO_wdt iTCO_vendor_support kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc aesni_intel ath10k_pci snd_hda_intel ath10k_core aes_x86_64 snd_hda_codec crypto_simd ath glue_helper cryptd snd_hda_core mac80211 snd_hwdep snd_pcm pcspkr r8169 cfg80211 mii snd_timer acer_wmi snd sparse_keymap wmi_bmof idma64 hci_uart virt_dma mei_me soundcore i2c_i801 mei btbcm shpchp intel_lpss_pci intel_pch_thermal
>>>>> [   12.768130]  serdev btqca ucsi_acpi btintel typec_ucsi thermal typec bluetooth ecdh_generic battery ac pinctrl_sunrisepoint rfkill intel_lpss_acpi pinctrl_intel intel_lpss acpi_pad nouveau serio_raw i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper xhci_pci syscopyarea sysfillrect sysimgblt xhci_hcd fb_sys_fops usbcore drm i2c_hid wmi video button sg efivarfs
>>>>> [   12.768158] CPU: 0 PID: 274 Comm: kworker/0:2 Not tainted 4.12.0-desktop-debug-drm+ #2
>>>>> [   12.768160] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.04 03/30/2017
>>>>> [   12.768164] Workqueue: pm pm_runtime_work
>>>>> [   12.768166] task: ffff889bf1627040 task.stack: ffff9541013e4000
>>>>> [   12.768180] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x296/0x320 [drm]
>>>>> [   12.768181] RSP: 0018:ffff9541013e7b30 EFLAGS: 00010086
>>>>> [   12.768183] RAX: 000000000000001c RBX: ffff889b4cebd000 RCX: 0000000000000004
>>>>> [   12.768184] RDX: 0000000080000004 RSI: ffffffff87a2d952 RDI: 00000000ffffffff
>>>>> [   12.768186] RBP: ffff9541013e7b90 R08: 0000000000000001 R09: 000000000000039f
>>>>> [   12.768187] R10: ffffffffc05fe530 R11: 0000000000000000 R12: 0000000000000000
>>>>> [   12.768188] R13: ffff9541013e7ba4 R14: ffff889bf0426088 R15: ffff889bf0426000
>>>>> [   12.768190] FS:  0000000000000000(0000) GS:ffff889bfec00000(0000) knlGS:0000000000000000
>>>>> [   12.768191] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>>>> [   12.768192] CR2: 000000edb16580b8 CR3: 000000020cc09000 CR4: 00000000003406f0
>>>>> [   12.768193] Call Trace:
>>>>> [   12.768198]  ? enqueue_task_fair+0x64/0x600
>>>>> [   12.768211]  ? drm_get_last_vbltimestamp+0x47/0x70 [drm]
>>>>> [   12.768223]  ? drm_update_vblank_count+0x65/0x240 [drm]
>>>>> [   12.768227]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>>> [   12.768238]  ? drm_vblank_disable_and_save+0x55/0xc0 [drm]
>>>>> [   12.768250]  ? drm_crtc_vblank_off+0xa9/0x1e0 [drm]
>>>>> [   12.768253]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>>> [   12.768299]  ? nouveau_display_fini+0x56/0xd0 [nouveau]
>>>>> [   12.768339]  ? nouveau_display_suspend+0x51/0x110 [nouveau]
>>>>> [   12.768378]  ? nouveau_do_suspend+0x76/0x1c0 [nouveau]
>>>>> [   12.768413]  ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau]
>>>>> [   12.768416]  ? pci_pm_runtime_suspend+0x5c/0x160
>>>>> [   12.768419]  ? __rpm_callback+0xb6/0x1e0
>>>>> [   12.768423]  ? kobject_uevent_env+0x111/0x5e0
>>>>> [   12.768425]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>>> [   12.768427]  ? rpm_callback+0x1f/0x70
>>>>> [   12.768429]  ? pci_pm_runtime_resume+0xa0/0xa0
>>>>> [   12.768431]  ? rpm_suspend+0x11f/0x640
>>>>> [   12.768441]  ? drm_fb_helper_hotplug_event+0x9a/0xe0 [drm_kms_helper]
>>>>> [   12.768447]  ? output_poll_execute+0x17b/0x1a0 [drm_kms_helper]
>>>>> [   12.768449]  ? pm_runtime_work+0x64/0xa0
>>>>> [   12.768453]  ? process_one_work+0x1db/0x410
>>>>> [   12.768456]  ? worker_thread+0x47/0x3d0
>>>>> [   12.768459]  ? process_one_work+0x410/0x410
>>>>> [   12.768461]  ? kthread+0x117/0x130
>>>>> [   12.768463]  ? kthread_create_on_node+0x40/0x40
>>>>> [   12.768466]  ? ret_from_fork+0x25/0x30
>>>>> [   12.768468] Code: 80 3d 26 f3 01 00 00 0f 85 ad fd ff ff 48 8b 43 20 48 c7 c7 31 a2 20 c0 c6 05 0e f3 01 00 01 48 8b b0 60 01 00 00 e8 75 2e ec c6 <0f> ff e9 88 fd ff ff 31 f6 44 88 55 b0 e8 38 fa ed c6 44 0f b6
>>>>> [   12.768508] ---[ end trace d9bb853af3659bd5 ]---
>>>>>
>>>>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann-AqjdNwhu20c@public.gmane.orgde>
>>>>> ---
>>>>>  drivers/gpu/drm/drm_vblank.c | 5 ++++-
>>>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>>>>> index a233a6be934a..4a21756bf2bd 100644
>>>>> --- a/drivers/gpu/drm/drm_vblank.c
>>>>> +++ b/drivers/gpu/drm/drm_vblank.c
>>>>> @@ -1140,8 +1140,11 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
>>>>>
>>>>>         /* Avoid redundant vblank disables without previous
>>>>>          * drm_crtc_vblank_on(). */
>>>>> -       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset)
>>>>> +       if (drm_core_check_feature(dev, DRIVER_ATOMIC) || (!vblank->inmodeset &&
>>>>> +               vblank->enabled)) {
>>>>> +               DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
>>>>>                 drm_vblank_disable_and_save(dev, pipe);
>>>>> +       }
>>>>>
>>>>>         wake_up(&vblank->queue);
>>>>>
>>>>> --
>>>>> 2.13.2
>>>>>
>>>>> _______________________________________________
>>>>> Nouveau mailing list
>>>>> Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
>>>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>>>> _______________________________________________
>>>> Nouveau mailing list
>>>> Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
>>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau
> 
> 
> 


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2017-07-20 22:33 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-15  5:40 [drm/nouveau] GeForce 8600 GT boot/suspend grumbling Mike Galbraith
2017-07-15  5:40 ` Mike Galbraith
2017-07-15 16:14 ` Ilia Mirkin
2017-07-15 16:14   ` Ilia Mirkin
2017-07-15 18:12   ` Ilia Mirkin
2017-07-15 18:12     ` Ilia Mirkin
2017-07-15 18:52 ` Ilia Mirkin
2017-07-15 18:52   ` Ilia Mirkin
2017-07-16  4:43   ` Mike Galbraith
2017-07-16 15:59     ` Ilia Mirkin
2017-07-16 15:59       ` Ilia Mirkin
2017-07-19 17:25     ` [PATCH] drm: disable vblank only if it got previously enabled Tobias Klausmann
2017-07-19 17:25       ` Tobias Klausmann
2017-07-19 20:10       ` [Nouveau] " Ilia Mirkin
2017-07-19 20:10         ` Ilia Mirkin
2017-07-20  8:13         ` Daniel Vetter
2017-07-20  8:13           ` Daniel Vetter
2017-07-20 21:58           ` [Nouveau] " Tobias Klausmann
2017-07-20 21:58             ` Tobias Klausmann
2017-07-20 22:05             ` Daniel Vetter
2017-07-20 22:05               ` Daniel Vetter
     [not found]               ` <CAKMK7uF=peNM1Ua16OhwivAfmaN+PdFLPWWSJv4jyzsnOp0XNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-07-20 22:33                 ` Ben Skeggs

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.