Suspend/resume has been broken in various ways on various hardware for years. This makes me wonder whether they're bugs in Linux or bugs in hardware for which each one requires a different workaround. In case of the latter I can imagine why things stay broken for such a long time.