yesterday, starting with some pointers from mjg59, i tried to find the cause of my macbook crashing on wakeup from sleep.
i narrowed it down to the code which resumes the pci bridge. as it turns out, the kernel restores the pci configuration space by copying in the values it had before the suspend. it does this in a bad order though, and the card becomes enabled before it is fully configured.
reversing the order fixed the problem — sleep now works on the macbook.
benc has merged the fix into the dapper git tree and the changes will be available with the next dapper kernel release.
there are still two small problems (one with a very easy fix). the harder once is acpi. when returning from sleep a random irq9 is thrown with no handler registered causing all further irq9s to be disabled. this means no acpi events get reported. no idea how i’d start fixing this. please help.