Since the upgrade to kernel 2.6.35.7, suspend, which was working nicely on my intel GM45 powered machine before, became unreliable.
Approximately once every four suspend to ram, the suspend process freezes and there is no way to get back other than powering off the machine.
This regression has been reported by kernel developers a while ago (
http://us.generation-nt.com/answer/2...199641631.html) but the fix released was only for the 2.6.36 serie. Currently, there is no fix available in the 2.6.35 serie. The last stable release 2.6.35.10 still suffers from this regression.
The cause of this problem lies in the addition of a feature, the BSD ring buffer v2 to the i915 module. One quick way to fix this is to undefine HAS_BSD(dev) in the file /usr/src/linux/drivers/gpu/drm/i915/i915_drv.h.
Code:
1167- (dev)->pci_device == 0x2A42 || \
1168- (dev)->pci_device == 0x2E42)
1169-
1170:/*#define HAS_BSD(dev) (IS_IRONLAKE(dev) || IS_G4X(dev))*/
1171:#define HAS_BSD(dev) 0
1172-#define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws)
1173-
1174-/* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte
After that, everything works perfectly like before.
I posted a reply to the above thread to notify the developers about this problem and my post is currently in moderation.