Re: 2.6.29-rc3: tg3 dead after resume

Rafael J. Wysocki
2009-02-03T22:15:44Z

On Tuesday 03 February 2009, Parag Warudkar wrote:
>
> On Tue, 3 Feb 2009, Rafael J. Wysocki wrote:
>
> > Did you have a chance to check if the patch from Linus (reproduced
> > below) on top of current -git fixed the problem for you too?
> >
> Hi Rafael,
>
> Yes, the patch below (atop today's git) does work for me.

Good.

Can you also test this one instead and tell me if it still works?

Rafael

---
drivers/pci/pcie/portdrv_pci.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)

Index: linux-2.6/drivers/pci/pcie/portdrv_pci.c
===================================================================
--- linux-2.6.orig/drivers/pci/pcie/portdrv_pci.c
+++ linux-2.6/drivers/pci/pcie/portdrv_pci.c
@@ -55,25 +55,13 @@ static int pcie_portdrv_suspend(struct p

}

-static int pcie_portdrv_suspend_late(struct pci_dev *dev, pm_message_t state)
-{
- return pci_save_state(dev);
-}
-
-static int pcie_portdrv_resume_early(struct pci_dev *dev)
-{
- return pci_restore_state(dev);
-}
-
static int pcie_portdrv_resume(struct pci_dev *dev)
{
- pcie_portdrv_restore_config(dev);
+ pci_set_master(dev);
return pcie_port_device_resume(dev);
}
#else
#define pcie_portdrv_suspend NULL
-#define pcie_portdrv_suspend_late NULL
-#define pcie_portdrv_resume_early NULL
#define pcie_portdrv_resume NULL
#endif

@@ -292,8 +280,6 @@ static struct pci_driver pcie_portdriver
.remove = pcie_portdrv_remove,

.suspend = pcie_portdrv_suspend,
- .suspend_late = pcie_portdrv_suspend_late,
- .resume_early = pcie_portdrv_resume_early,
.resume = pcie_portdrv_resume,

.err_handler = &pcie_portdrv_err_handler,