On Wednesday, February 20, 2008 9:17 am Jeff Chua wrote: > On Feb 20, 2008 2:19 PM, Jeff Chua > > > I'll try the "idle=poll" to see if that works and will try some printk > > I don't know what exactly the i915_suspend() and i915_resume() are > supposed to do because it works better without them. > > After inserting "return 0;" right at the top of those two functions, > suspend (and power-off properly), and resume (without green screen) works > just fine. > > I would like to know what they're for. They're for saving and restoring GPU state across suspend/resume. They're particularly useful if your machine doesn't re-POST at resume time. In that case your GPU may be totally uninitialized, so either the kernel or X has to set it up for you (X only does that partially). > Tested suspend-to-ram, and suspend-to-disk, both console and X on notebook > internal LCD display, all works without these two functions. > > But, anyway, got down to just one line in i915_drv.c causing the hang > during suspend. "pci_set_power_state(dev->pdev, PCI_D3hot);". Interesting, which chipset do you have? AFAIK that shouldn't cause a hang. > And green screen problem during resume is caused by i915_restore_vga(dev); I know I fixed that problem in at least one configuration... Can you try: # echo test > /sys/power/disk # echo disk > /sys/power/state and see if that also turns your screen green? Also, getting a GPU register dump would be helpful. The intel_reg_dumper tool is built as part of the xf86-video-driver build (git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel), can you pull that down and try it out? Thanks, Jesse - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html