https://bugs.freedesktop.org/show_bug.cgi?id=102646
--- Comment #58 from tempel.julian@gmail.com --- I've written a small script to only write into pp_dpm_mclk when it's not forced into pstate 2:
#!/bin/bash
if ! cat /sys/class/drm/card0/device/pp_dpm_mclk | grep -xqFe "2: 2250Mhz *" then echo "2" > /sys/class/drm/card0/device/pp_dpm_mclk fi
---
Can be restarted every 1s via systemd:
[Unit] Description=watch-pp_dpm_mclk StartLimitIntervalSec=0
[Service] ExecStart=.../watch-pp_dpm_mclk.sh Restart=always RestartSec=1
[Install] WantedBy=multi-user.target
---
Seems to do the trick without nasty side effects.
Real fixes for the memory clock change flicker and the not sticking pp_dpm_mclk value would of course be better.