Bug 108575 - amd-staging-drm-next, R4 Mullins hdmi monitor wont wake up from S3 - *ERROR* REG_WAIT timeout 1us * 80000 tries - dce_abm_immediate_disable
Summary: amd-staging-drm-next, R4 Mullins hdmi monitor wont wake up from S3 - *ERROR* ...
Status: RESOLVED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/AMDgpu (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-27 10:29 UTC by Przemek
Modified: 2019-02-23 14:06 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
picture of the screen after resume (575.09 KB, image/jpeg)
2018-11-25 08:11 UTC, Przemek
no flags Details
log with drm.debug=0x4 after wake up from suspend (140.69 KB, text/plain)
2018-12-16 20:45 UTC, Przemek
no flags Details

Description Przemek 2018-10-27 10:29:13 UTC
Lenovo G50-45, A6 6310 APU, R4 Mullins, gentoo ~amd64 with amd-staging-drm-next kernel pulled today.

After wake up from S3 hdmi monitor is turned of as there was no signal, but after reconnect of hdmi cable monitor is powered on although the screen is black (no picture).

In KDE system settings monitor is visible and turned on, desktop is stretched as regular (I can blindly move an application to the second part of the desktop into "invisible" screen). Switching to tty's makes no difference.

I dont know if it is related, but there is an error message in dmesg after resuming from sleep:

"
[10999.238780] [5574]: Suspending system...
[10999.238829] PM: suspend entry (deep)
[10999.238831] PM: Syncing filesystems ... done.
[10999.355001] Freezing user space processes ... (elapsed 0.002 seconds) done.
[10999.357885] OOM killer disabled.
[10999.357886] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[10999.359634] Suspending console(s) (use no_console_suspend to debug)
[10999.360321] wlp1s0: deauthenticating from c4:12:f5:5e:4e:67 by local choice (Reason: 3=DEAUTH_LEAVING)
[10999.379673] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[10999.380563] sd 0:0:0:0: [sda] Stopping disk
[10999.421865] switching from power state:
[10999.421867]  ui class: battery
[10999.421868]  internal class: none
[10999.421871]  caps:
[10999.421873]  uvd    vclk: 0 dclk: 0
[10999.421875]          power level 0    sclk: 30000 vddc: 3050
[10999.421876]          power level 1    sclk: 40000 vddc: 3400
[10999.421877]  status: c
[10999.421879] switching to power state:
[10999.421880]  ui class: battery
[10999.421880]  internal class: none
[10999.421882]  caps:
[10999.421884]  uvd    vclk: 0 dclk: 0
[10999.421885]          power level 0    sclk: 30000 vddc: 3050
[10999.421886]          power level 1    sclk: 40000 vddc: 3400
[10999.421887]  status: r
[10999.597203] [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 1us * 80000 tries - dce_abm_immediate_disable line:318
[10999.597307] WARNING: CPU: 3 PID: 14336 at drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.c:249 generic_reg_wait+0xd5/0x140 [amdgpu]
[10999.597309] Modules linked in: rfcomm ebtable_nat ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables overlay squashfs loop bnep ipv6 ath3k btusb btintel bluetooth ecdh_generic rtsx_usb_ms memstick rtsx_usb_sdmmc uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev media rtsx_usb kvm_amd ath9k kvm ath9k_common irqbypass ath9k_hw crc32_pclmul amdgpu ghash_clmulni_intel serio_raw mac80211 ath sdhci_pci cqhci sdhci mfd_core chash gpu_sched mmc_core ttm cfg80211 xhci_pci ehci_pci xhci_hcd ehci_hcd sp5100_tco
[10999.597371] CPU: 3 PID: 14336 Comm: kworker/u8:7 Tainted: G        W         4.19.0-rc1+ #4
[10999.597373] Hardware name: LENOVO 80E3/Lancer 5B2, BIOS A2CN45WW(V2.13) 08/04/2016
[10999.597381] Workqueue: events_unbound async_run_entry_fn
[10999.597441] RIP: 0010:generic_reg_wait+0xd5/0x140 [amdgpu]
[10999.597445] Code: 58 89 de 48 8b 4c 24 50 48 c7 c7 e0 b1 5b c0 8b 54 24 48 44 89 4c 24 08 e8 c8 3c 9e c6 41 83 7c 24 18 01 44 8b 4c 24 08 74 02 <0f> 0b 48 83 c4 10 44 89 c8 5b 5d 41 5c 41 5d 41 5e 41 5f c3 41 0f
[10999.597447] RSP: 0018:ffff9f86c24eb8e8 EFLAGS: 00010297
[10999.597450] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000001
[10999.597452] RDX: 0000000000000000 RSI: 0000000000000086 RDI: 00000000ffffffff
[10999.597454] RBP: 0000000000000000 R08: 000011fa4e0922d1 R09: 0000000000000001
[10999.597456] R10: 0000000000000000 R11: 0000000000025e1c R12: ffff9976d0a9ae80
[10999.597458] R13: 0000000000013881 R14: 0000000000000001 R15: 0000000000000000
[10999.597461] FS:  0000000000000000(0000) GS:ffff9976d7b80000(0000) knlGS:0000000000000000
[10999.597463] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[10999.597465] CR2: 00007f7bcc7c5018 CR3: 000000020eb25000 CR4: 00000000000406e0
[10999.597467] Call Trace:
[10999.597549]  dce_abm_immediate_disable+0x41/0x170 [amdgpu]
[10999.597615]  dc_link_set_abm_disable+0x31/0x40 [amdgpu]
[10999.597679]  dce110_blank_stream+0x6f/0x78 [amdgpu]
[10999.597742]  core_link_disable_stream+0x4f/0x218 [amdgpu]
[10999.597749]  ? preempt_count_add+0x44/0x98
[10999.597754]  ? wake_up_klogd+0x4a/0x68
[10999.597757]  ? vprintk_emit+0x8c/0x1a0
[10999.597822]  dce110_reset_hw_ctx_wrap+0xbb/0x1e8 [amdgpu]
[10999.597889]  dce110_apply_ctx_to_hw+0x3f/0x480 [amdgpu]
[10999.597955]  ? amdgpu_pm_compute_clocks+0x31c/0x530 [amdgpu]
[10999.598035]  ? dm_pp_apply_display_requirements+0x192/0x1a0 [amdgpu]
[10999.598099]  dc_commit_state+0x2d7/0x560 [amdgpu]
[10999.598182]  amdgpu_dm_atomic_commit_tail+0x29f/0xd20 [amdgpu]
[10999.598190]  ? preempt_count_add+0x63/0x98
[10999.598196]  ? _raw_spin_lock_irq+0xf/0x30
[10999.598199]  ? _raw_spin_unlock_irq+0xe/0x20
[10999.598203]  ? wait_for_completion_timeout+0x101/0x128
[10999.598206]  ? _raw_spin_lock_irq+0xf/0x30
[10999.598209]  ? _raw_spin_unlock_irq+0xe/0x20
[10999.598213]  ? wait_for_completion_interruptible+0xde/0x168
[10999.598291]  ? dm_plane_helper_prepare_fb+0x1e2/0x2f8 [amdgpu]
[10999.598299]  commit_tail+0x38/0x60
[10999.598304]  drm_atomic_helper_commit+0x102/0x110
[10999.598309]  __drm_atomic_helper_disable_all.constprop.30+0x13d/0x150
[10999.598314]  drm_atomic_helper_suspend+0x4c/0xd0
[10999.598396]  dm_suspend+0x2d/0x50 [amdgpu]
[10999.598458]  amdgpu_device_ip_suspend_phase1+0x8e/0xc0 [amdgpu]
[10999.598522]  amdgpu_device_suspend+0x234/0x3c8 [amdgpu]
[10999.598531]  pci_pm_suspend+0x76/0x128
[10999.598535]  ? pci_pm_freeze+0xc8/0xc8
[10999.598541]  dpm_run_callback+0x2a/0x110
[10999.598546]  __device_suspend+0xe5/0x3d0
[10999.598552]  async_suspend+0x15/0x88
[10999.598556]  async_run_entry_fn+0x32/0xd8
[10999.598562]  process_one_work+0x1f4/0x3e0
[10999.598567]  worker_thread+0x28/0x3c0
[10999.598571]  ? rescuer_thread+0x330/0x330
[10999.598575]  kthread+0x118/0x130
[10999.598580]  ? kthread_create_worker_on_cpu+0x60/0x60
[10999.598585]  ret_from_fork+0x22/0x40
[10999.598593] ---[ end trace c54e6357600c238a ]---
[10999.677339] switching from power state:
[10999.677344]  ui class: battery
[10999.677345]  internal class: none
[10999.677348]  caps:
[10999.677352]  uvd    vclk: 0 dclk: 0
[10999.677356]          power level 0    sclk: 30000 vddc: 3050
[10999.677358]          power level 1    sclk: 40000 vddc: 3400
[10999.677359]  status: c
[10999.677361] switching to power state:
[10999.677363]  ui class: battery
[10999.677363]  internal class: none
[10999.677366]  caps:
[10999.677368]  uvd    vclk: 0 dclk: 0
[10999.677370]          power level 0    sclk: 30000 vddc: 3050
[10999.677372]          power level 1    sclk: 40000 vddc: 3400
[10999.677373]  status: r
[10999.960951] ACPI: EC: interrupt blocked
[10999.993118] ACPI: Preparing to enter system sleep state S3
[10999.993742] ACPI: EC: event blocked
[10999.993743] ACPI: EC: EC stopped
[10999.993744] PM: Saving platform NVS memory
[10999.995709] Disabling non-boot CPUs ...
[11000.021421] smpboot: CPU 1 is now offline
[11000.041259] smpboot: CPU 2 is now offline
[11000.058009] smpboot: CPU 3 is now offline
[11000.058921] ACPI: Low-level resume complete
[11000.058962] ACPI: EC: EC started
[11000.058963] PM: Restoring platform NVS memory
[11000.059780] LVT offset 0 assigned for vector 0x400
[11000.060027] LVT offset 1 assigned for vector 0xf9
[11000.060104] Enabling non-boot CPUs ...
[11000.060177] x86: Booting SMP configuration:
[11000.060178] smpboot: Booting Node 0 Processor 1 APIC 0x1
[11000.062909]  cache: parent cpu1 should not be sleeping
[11000.062988] microcode: CPU1: patch_level=0x07030105
[11000.063131] CPU1 is up
[11000.063179] smpboot: Booting Node 0 Processor 2 APIC 0x2
[11000.065741]  cache: parent cpu2 should not be sleeping
[11000.065830] microcode: CPU2: patch_level=0x07030105
[11000.065984] CPU2 is up
[11000.066030] smpboot: Booting Node 0 Processor 3 APIC 0x3
[11000.068605]  cache: parent cpu3 should not be sleeping
[11000.068683] microcode: CPU3: patch_level=0x07030105
[11000.068855] CPU3 is up
[11000.069651] ACPI: Waking up from system sleep state S3
[11000.070496] ACPI: EC: interrupt unblocked
[11000.101583] ACPI: EC: event unblocked
[11000.101912] ath: phy0: ASPM enabled: 0x43
[11000.102732] sd 0:0:0:0: [sda] Starting disk
[11000.107729] ACPI: button: The lid device is not compliant to SW_LID.
[11000.112442] [drm] PCIE GART of 1024M enabled (table at 0x000000F42E800000).
[11000.116678] switching from power state:
[11000.116680]  ui class: none
[11000.116681]  internal class: boot
[11000.116684]  caps:
[11000.116687]  uvd    vclk: 0 dclk: 0
[11000.116689]          power level 0    sclk: 20000 vddc: 6100
[11000.116690]  status: c b
[11000.116692] switching to power state:
[11000.116694]  ui class: battery
[11000.116694]  internal class: none
[11000.116696]  caps:
[11000.116698]  uvd    vclk: 0 dclk: 0
[11000.116699]          power level 0    sclk: 30000 vddc: 3050
[11000.116701]          power level 1    sclk: 40000 vddc: 3400
[11000.116701]  status: r
[11000.337623] usb 3-1.2: reset high-speed USB device number 3 using ehci-pci
[11000.357628] usb 1-1.3: reset high-speed USB device number 3 using ehci-pci
[11000.540954] usb 3-1.3: reset full-speed USB device number 5 using ehci-pci
[11000.574225] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[11000.574251] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[11000.576376] ata2.00: configured for UDMA/100
[11000.609687] ata1.00: configured for UDMA/133
[11000.610077] ata1.00: Enabling discard_zeroes_data
[11000.634279] [drm] Fence fallback timer expired on ring sdma0
[11000.634291] switching from power state:
[11000.634294]  ui class: battery
[11000.634295]  internal class: none
[11000.634297]  caps:
[11000.634299]  uvd    vclk: 0 dclk: 0
[11000.634301]          power level 0    sclk: 30000 vddc: 3050
[11000.634303]          power level 1    sclk: 40000 vddc: 3400
[11000.634303]  status: c
[11000.634305] switching to power state:
[11000.634306]  ui class: battery
[11000.634306]  internal class: none
[11000.634308]  caps:
[11000.634309]  uvd    vclk: 0 dclk: 0
[11000.634311]          power level 0    sclk: 30000 vddc: 3050
[11000.634312]          power level 1    sclk: 40000 vddc: 3400
[11000.634312]  status: r
[11000.654538] usb 3-1.3: device firmware changed
[11000.955331] psmouse serio1: synaptics: queried max coordinates: x [..5674], y [..4802]
[11001.002203] psmouse serio1: synaptics: queried min coordinates: x [1268..], y [1052..]
[11001.140967] [drm] Fence fallback timer expired on ring sdma0
[11001.140990] switching from power state:
[11001.140993]  ui class: battery
[11001.140994]  internal class: none
[11001.140996]  caps:
[11001.140998]  uvd    vclk: 0 dclk: 0
[11001.141000]          power level 0    sclk: 30000 vddc: 3050
[11001.141001]          power level 1    sclk: 40000 vddc: 3400
[11001.141001]  status: c
[11001.141003] switching to power state:
[11001.141004]  ui class: battery
[11001.141004]  internal class: none
[11001.141006]  caps:
[11001.141007]  uvd    vclk: 0 dclk: 0
[11001.141008]          power level 0    sclk: 30000 vddc: 3050
[11001.141009]          power level 1    sclk: 40000 vddc: 3400
[11001.141010]  status: r
[11001.647540] [drm] Fence fallback timer expired on ring sdma0
[11001.647573] switching from power state:
[11001.647576]  ui class: battery
[11001.647576]  internal class: none
[11001.647579]  caps:
[11001.647582]  uvd    vclk: 0 dclk: 0
[11001.647585]          power level 0    sclk: 30000 vddc: 3050
[11001.647586]          power level 1    sclk: 40000 vddc: 3400
[11001.647587]  status: c
[11001.647589] switching to power state:
[11001.647590]  ui class: battery
[11001.647591]  internal class: none
[11001.647592]  caps:
[11001.647594]  uvd    vclk: 0 dclk: 0
[11001.647596]          power level 0    sclk: 30000 vddc: 3050
[11001.647597]          power level 1    sclk: 40000 vddc: 3400
[11001.647598]  status: r
[11001.670332] [drm] UVD initialized successfully.
[11001.781338] [drm] VCE initialized successfully.
[11001.790020] OOM killer enabled.
[11001.790022] Restarting tasks ... done.
[11001.809736] usb 3-1.3: USB disconnect, device number 5
[11001.814936] PM: suspend exit
[11001.814971] [5574]: System resumed.
"

and in Xorg.0.log there is an error:
"[ 11003.233] (EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter"

Thanks,
Przemek.
Comment 1 Przemek 2018-11-25 08:11:15 UTC
Created attachment 142606 [details]
picture of the screen after resume

With latest (yesterday's) amd-staging-drm-next repo pull situation gets worse.
After fresh boot and when drm amdgpu fb gets initialized laptop internal screen gets off and picture appears on external monitor connected to hdmi output.

After sddm login, when plasma desktop fires up picture appears on eDP screen and both (hdmi and internal) are working properly until suspending (s3).

After resume from suspend there is no picture on hdmi monitor, brightess level is reset to 0, on eDP picture is shuttered and full of glitches as you can see on attached photo (it does no matter if it is xorg or tty, both have those glitches).
Thanks,
Przemek.
Comment 2 Przemek 2018-12-16 20:45:20 UTC
Created attachment 142828 [details]
log with drm.debug=0x4 after wake up from suspend

Glitched screen issue has been resolved (I think - Thank you very much), but the issue with black screens still persist in amd-staging-drm-next repo synced on 15th of December.
There is a strange output in attached syslog, amdgpu is saying that hdmi monitor is disconnected while it's not true. It is connected and powered on, but its look like connector doesn't see it.

Thanks,
Przemek.
Comment 3 Przemek 2018-12-16 20:59:23 UTC
It seems also, that WARNING from the first comment is not related to this situation, it occurs, but less often tough, so in this case should we change the title of this bug report or leave it as is? 

Thanks,
Przemek.
Comment 4 Przemek 2019-02-16 09:31:07 UTC
Yesterday I have observed a strange behavior.

After suspend/resume cycle HDMI screen is turned off, but when you trigger hibernate/resume after suspend/resume HDMI output is turned back on and is working properly.
(Yes, hibernation works on CIK and amdgpu now!! Thank you so much!!)
 
As given above a question arise,
are there other-different triggers/resets in suspend/resume and hibernate/resume cycles for those asics?

Thanks,
Przemek.
Comment 5 Przemek 2019-02-23 14:06:06 UTC
As for today's git pull everything (suspend/hibernate/resume) seems to work just fine.

I have connected SAMSUNG TV to HDMI output and it wakes up properly.

The problem occurs only on hdmi -> vga display adapter which I'm using to connect my old PHILIPS 170C lcd monitor. (VGA connector is not implemented on amdgpu).

I'm closing this bug report as FIXED, but still wondering why adapter has to be replugged to make monitor wake up/being discovered by amdgpu driver, tough.

Thank you very much.
Przemek


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.