07-23-2022, 05:50 AM
Hi, I know this is quite an old topic but I've fixed this issue. The problem is that the memory controller didn't give preferential treatment to the video output controller, so if there was a lot of memory activity, it'd miss the required timings.
The fix is to set the quality of service registers in u-boot, I've written a patch that does this and submitted it to u-boot upstream, so that it will hopefully be included in the future.
I have yet to write a patch to the kernel that saves/restores these registers on power domain changes, but this is good enough to fix the issue in most cases now.
As for when this will trickle down to distributions I don't know. If there's interest, I'll write some instructions on how to compile u-boot for rk3328 and put them on the wiki; that way people can use the patch before distributions have it.
The fix is to set the quality of service registers in u-boot, I've written a patch that does this and submitted it to u-boot upstream, so that it will hopefully be included in the future.
I have yet to write a patch to the kernel that saves/restores these registers on power domain changes, but this is good enough to fix the issue in most cases now.
As for when this will trickle down to distributions I don't know. If there's interest, I'll write some instructions on how to compile u-boot for rk3328 and put them on the wiki; that way people can use the patch before distributions have it.
Occasional Linux Kernel Contributor, Avid Wiki Updater, Ask Me About Quartz64
Open Hardware Quartz64 Model A TOSLink Adapter
Pi-bus GPIO Extender For ROCKPro64 And Quartz64 Model A
Plebian GNU/Linux