You are not logged in.

#1 2018-05-14 16:24:06

grimscythe
Member
Registered: 2016-05-05
Posts: 24

[SOLVED] Radeon R7 screen flicker after resume from suspend

I am not sure after which kernel update started occurring but it must have been a couple of month ago. My system used to wake up from sleep without a problem. However now I get weird horizontal flickers on the screen. Not straight after the resume, about a second or two afterwards.

the (I think) important part of dmesg after the reboot:

[29696.493828] WARNING: CPU: 1 PID: 537 at drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services.h:132 generic_reg_update_ex+0x12c/0x160 [amdgpu]
[29696.493829] Modules linked in: btrfs zstd_compress zstd_decompress xxhash xor raid6_pq ufs hfsplus hfs minix ntfs vfat msdos fat jfs xfs dm_mod fuse ipt_MASQUERADE nf_nat_masquerade_ipv4 nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype iptable_filter xt_conntrack nf_nat nf_conntrack libcrc32c br_netfilter bridge stp llc overlay cfg80211 rfkill 8021q mrp hwmon_vid uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common mousedev videodev snd_usb_audio snd_usbmidi_lib media input_leds led_class amdkfd amd_iommu_v2 amdgpu chash edac_mce_amd gpu_sched wmi_bmof r8169 i2c_algo_bit ttm kvm_amd drm_kms_helper ccp drm rng_core snd_hda_codec_hdmi kvm snd_hda_intel agpgart irqbypass snd_hda_codec syscopyarea sysfillrect
[29696.493852]  snd_hda_core snd_virtuoso snd_oxygen_lib sysimgblt mii snd_mpu401_uart snd_rawmidi snd_seq_device k10temp snd_hwdep snd_pcm snd_timer asus_atk0110 snd fb_sys_fops sp5100_tco evdev soundcore rtc_cmos shpchp wmi i2c_piix4 mac_hid acpi_cpufreq crypto_user ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 fscrypto hid_generic usbhid hid sd_mod ohci_pci ata_generic pata_acpi firewire_ohci firewire_core crc_itu_t ahci pata_jmicron libahci pata_atiixp xhci_pci xhci_hcd ehci_pci ehci_hcd ohci_hcd libata usbcore scsi_mod usb_common
[29696.493873] CPU: 1 PID: 537 Comm: kworker/u12:52 Tainted: G        W        4.16.8-1-ARCH #1
[29696.493873] Hardware name: System manufacturer System Product Name/M4A89GTD-PRO/USB3, BIOS 1606    08/24/2010
[29696.493877] Workqueue: events_unbound async_run_entry_fn
[29696.493909] RIP: 0010:generic_reg_update_ex+0x12c/0x160 [amdgpu]
[29696.493910] RSP: 0018:ffffae1384acf958 EFLAGS: 00010246
[29696.493911] RAX: ffffae1384acf978 RBX: ffff9ad52acef7c0 RCX: 0000000000000000
[29696.493911] RDX: 0000000000002a48 RSI: 0000000000000000 RDI: ffff9ad52d232780
[29696.493912] RBP: ffffae1384acf9c0 R08: 0000000000000000 R09: 0000000000000000
[29696.493912] R10: 0000000000000001 R11: 00000000fffffffb R12: 0000000000000000
[29696.493913] R13: 0000000000000000 R14: ffff9ad34ef28000 R15: ffff9ad3981f4000
[29696.493914] FS:  0000000000000000(0000) GS:ffff9ad537c40000(0000) knlGS:0000000000000000
[29696.493914] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[29696.493915] CR2: 0000000000000000 CR3: 00000002149c0000 CR4: 00000000000006e0
[29696.493916] Call Trace:
[29696.493952]  dce110_stream_encoder_update_hdmi_info_packets+0x205/0x3a0 [amdgpu]
[29696.493984]  apply_single_controller_ctx_to_hw+0x1d6/0x390 [amdgpu]
[29696.494016]  dce110_apply_ctx_to_hw+0x482/0x750 [amdgpu]
[29696.494048]  dc_commit_state+0x2ca/0x530 [amdgpu]
[29696.494079]  ? mod_freesync_set_user_enable+0x11b/0x150 [amdgpu]
[29696.494111]  amdgpu_dm_atomic_commit_tail+0x373/0xd90 [amdgpu]
[29696.494135]  ? amdgpu_bo_pin_restricted+0x15e/0x2c0 [amdgpu]
[29696.494166]  ? dm_plane_helper_cleanup_fb+0x120/0x120 [amdgpu]
[29696.494190]  ? amdgpu_gtt_mgr_del+0x56/0x70 [amdgpu]
[29696.494221]  ? dm_plane_helper_prepare_fb+0x1cc/0x240 [amdgpu]
[29696.494231]  commit_tail+0x3d/0x70 [drm_kms_helper]
[29696.494235]  drm_atomic_helper_commit+0x103/0x110 [drm_kms_helper]
[29696.494240]  drm_atomic_helper_commit_duplicated_state+0xd9/0x100 [drm_kms_helper]
[29696.494244]  drm_atomic_helper_resume+0x5c/0xc0 [drm_kms_helper]
[29696.494246]  ? _raw_spin_unlock+0x16/0x30
[29696.494277]  amdgpu_dm_display_resume+0x1f2/0x220 [amdgpu]
[29696.494300]  amdgpu_device_ip_resume_phase2+0x51/0xb0 [amdgpu]
[29696.494322]  amdgpu_device_resume+0xc0/0x3b0 [amdgpu]
[29696.494325]  ? pci_pm_suspend_late+0x30/0x30
[29696.494327]  dpm_run_callback+0x4f/0x150
[29696.494329]  ? device_resume+0xac/0x1f0
[29696.494330]  ? async_resume+0x19/0x30
[29696.494331]  ? async_run_entry_fn+0x37/0x140
[29696.494333]  ? process_one_work+0x1d1/0x3b0
[29696.494334]  ? worker_thread+0x2b/0x3d0
[29696.494336]  ? process_one_work+0x3b0/0x3b0
[29696.494337]  ? kthread+0x112/0x130
[29696.494338]  ? kthread_create_on_node+0x60/0x60
[29696.494339]  ? ret_from_fork+0x22/0x40
[29696.494340] Code: 89 da 48 8b 07 48 8b 40 38 e8 71 8b f7 c2 89 d8 48 8b 74 24 18 65 48 33 34 25 28 00 00 00 75 20 48 83 c4 50 5b 41 5c 41 5d 5d c3 <0f> 0b e9 19 ff ff ff 44 89 e0 4d 89 cd 41 bc 01 00 00 00 eb 99 
[29696.494356] ---[ end trace 039d09076204f09f ]---

Xorg after reboot:

[ 29703.464] (II) AMDGPU(0): EDID vendor "IVM", prod id 22038
[ 29703.487] (II) AMDGPU(0): Using hsync ranges from config file
[ 29703.487] (II) AMDGPU(0): Using vrefresh ranges from config file
[ 29703.487] (II) AMDGPU(0): Printing DDC gathered Modelines:
[ 29703.487] (II) AMDGPU(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[ 29703.487] (II) AMDGPU(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1440x900"x0.0   88.75  1440 1488 1520 1600  900 903 909 926 +hsync -vsync (55.5 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1440x900"x0.0  136.75  1440 1536 1688 1936  900 903 909 942 -hsync +vsync (70.6 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1600x1200"x0.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
[ 29703.487] (II) AMDGPU(0): Modeline "1680x1050"x0.0  119.00  1680 1728 1760 1840  1050 1053 1059 1080 +hsync -vsync (64.7 kHz e)

Last edited by grimscythe (2018-05-15 08:44:03)

Offline

#2 2018-05-14 17:37:24

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,722

Re: [SOLVED] Radeon R7 screen flicker after resume from suspend

As with most problems of this nature, if you don't rely on HDMI audio, try disabling the dc code, add

amdgpu.dc=0

to your kernel params

Online

#3 2018-05-14 18:37:15

grimscythe
Member
Registered: 2016-05-05
Posts: 24

Re: [SOLVED] Radeon R7 screen flicker after resume from suspend

I do not use audio over HDMI. I'll try your solution later. I'll let you know how I got on.

Offline

#4 2018-05-14 22:07:41

grimscythe
Member
Registered: 2016-05-05
Posts: 24

Re: [SOLVED] Radeon R7 screen flicker after resume from suspend

Unfortunatelly setting the kernel parameter did not help. However...what I have just notices is that opening

pavucontrol

stops the flickering. The moment I close the Volume Control panel the flickering starts again! Isnt that just wierd?

Offline

#5 2018-05-14 22:18:46

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,722

Re: [SOLVED] Radeon R7 screen flicker after resume from suspend

Not really no, but it might provide a hint, your card tries to enable some power saving feature leading to the flicker, opening pavucontrol forces the audio output to wake up and the power saving to be deactivated. Do

amdgpu.aspm=0 amdgpu.runpm=0

or even just amdgpu.dpm=1 cause a difference.

Online

#6 2018-05-15 08:43:41

grimscythe
Member
Registered: 2016-05-05
Posts: 24

Re: [SOLVED] Radeon R7 screen flicker after resume from suspend

I ran some tests this morning and

amdgpu.aspm=0 amdgpu.runpm=0

surely did the trick. Thank you very much for you help.

amdgpu.dpm=1

works as well, but my fan goes crazy.

Offline

Board footer

Powered by FluxBB