From: Jaco K. <ja...@kr...> - 2005-12-25 20:32:47
|
Pavel Machek wrote: >>Now, initially when I switch back to X I get the correct image on the >>bottom third of the screen with the top two thirds seemingly corrupted. >> This is pretty normal and is identical to what I normally see when >>switching between consoles and X. This lasts for about half a second >>before it freezes up and causes a hard-lock. Normally the screen just >>resets itself at the time it now locks up. > > > I'm sorry, there's no way we can help you with fglrx. I'm glad at > least s-t-disk works. Was the ati-agp module in the kernel. Adding some suspend/resume support for that module fixes all and I can now happily suspend-to-ram and successfully resume. I've mailed a patch to the agpgart maintainer and cc'ed the lkml. For refference purposes the patch (based on http://unixhead.org/docs/thinkpad/ati-agp/ati-agp.diff) is as follows, and I'll also make it available on my website: --- linux-2.6.15-rc6/drivers/char/agp/ati-agp.c.orig 2005-12-25 22:21:32.000000000 +0200 +++ linux-2.6.15-rc6/drivers/char/agp/ati-agp.c 2005-12-25 22:23:33.000000000 +0200 @@ -243,6 +243,15 @@ return 0; } +static int ati_resume(struct pci_dev *dev) +{ + return ati_configure(); +} + +static int ati_suspend(struct pci_dev *dev, pm_message_t state) +{ + return 0; +} /* *Since we don't need contigious memory we just try @@ -525,6 +534,8 @@ .id_table = agp_ati_pci_table, .probe = agp_ati_probe, .remove = agp_ati_remove, + .resume = ati_resume, + .suspend = ati_suspend, }; static int __init agp_ati_init(void) -- There are only 10 kinds of people in this world, those that understand binary and those that don't. http://www.kroon.co.za/ |