So not a microcode issue, then it is kernel only.
You will need to get a journalctl output from when you invoke the suspend & trying to resume. Without those logs, not possible to check upstream for bug reports/fixes.
EDIT:
One thing to try too is running a wayland session, see if any difference with that.