From: Christian H. <chr...@gm...> - 2006-11-17 20:34:11
|
On Friday 17 November 2006 16:41, Stuffed Crust wrote: > On Fri, Nov 17, 2006 at 01:07:58AM -0500, Stuffed Crust wrote: > > http://www.shaftnet.org/users/pizza/radeonfb-atom-2.6.19-v7-WIP1.diff > > http://www.shaftnet.org/users/pizza/radeonfb-atom-2.6.19-v7-WIP2.diff > > This incorporates the latest round of BenH's fixes and changes, but > backs out the PCI suspend changes, which need independent review and > testing. > > (BenH has promised a little more work before he's ready to sign off, > hence the -WIP2 designation) > > The following patch contains a rewrite of radeonfb's suspend/resume code > to use standard PCI subsystem calls. It applies to 2.6.19-rc6 and also > on top of the v7-WIP2 patch. > > http://www.shaftnet.org/users/pizza/radeonfb-atom-2.6.19-suspend.diff > > Christian, if you could see if the latter patch (on top of the -v6b or > -WIP2 patches) makes a difference for your suspend/resume problems.. > > And with these patches, I'm going to drop offline for a camping trip > over the weekend. I'll pick this stuff back up on Monday. > > - Solomon Hlo, it still locks up.=20 =2E.. =20 pci_set_power_state(pdev, PCI_D0); pci_restore_state(pdev); if (pci_enable_device(pdev)) { rc =3D -ENODEV; printk(KERN_ERR "radeonfb (%s): can't enable PCI device !\n= ", pci_name(pdev)); goto bail; } pci_set_master(pdev); if (pdev->dev.power.power_state.event =3D=3D PM_EVENT_SUSPEND) { /* Wakeup chip. Check from config space if we were powered = off * (todo: additionally, check CLK_PIN_CNTL too) */ if (rinfo->pm_mode & radeon_pm_off) { if (rinfo->reinit_func !=3D NULL) rinfo->reinit_func(rinfo); else { printk(KERN_ERR "radeonfb (%s): can't resum= e=20 radeon from" " D3 cold, need softboot !",=20 pci_name(pdev)); rc =3D -EIO; goto bail; } } /* If we support D2, try to resume... we should check what = was=20 our * state though... (were we really in D2 state ?). Right no= w,=20 this code * is only enable on Macs so it's fine. */ else if (rinfo->pm_mode & radeon_pm_d2) radeon_set_suspend(rinfo, 0); rinfo->asleep =3D 0; } else radeon_engine_idle(); goto bail; When I comment out the rinfo->asleep =3D 0; line, the machine comes back. S= o it=20 seems that rinfo struct is still corrupted somehow. Chris |