Re: [REGRESSION] tg3 dead after s2ram
From: Joachim Deguara
Date: Thu Aug 02 2007 - 04:07:03 EST
On Wednesday 01 August 2007 23:00:23 Michael Chan wrote:
> On Wed, 2007-08-01 at 10:47 -0700, Michael Chan wrote:
> > You have 2 Broadcom devices in your system. 07:00.0 is a wireless
> > device, I think. 8:4.0 is the tg3 device.
> >
> > It's clear that the tg3 device is still in D3 state after resume and
> > that explains why all register accesses fail. tg3_resume() should put
> > the device back in D0 state in a very straight forward way and I don't
> > see how that can fail. It worked for me when I tested it last night.
> > Can you add some printk() to tg3_resume() to see what's happening? Let
> > me know if you want me to send you some debug patches to do that.
>
> I misread the PCI registers below. The power state was ok.
>
> The problem is that memory enable and bus master were not set in PCI
> register 4 after resume. This also explains the register access
> failures.
>
> In tg3_resume(), we call pci_restore_state() which should re-enable
> those 2 bits in PCI register 4. Can you add some printk() to see why
> those bits are not restored after pci_restore_state()?
Reading pci_restore_state() it looks already instrumented. Sorry about the
wrong pci device, looking at my BCM5788 it is pci device 08:04.0 and looking
at the log from my first post there is nothing restored in the first 64
bytes! Otherwise it would have said "PM: Writing back..."
Is this what you are looking for or should I do other printk instrumentation?
-Joachim
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/