From: Parag Warudkar <parag.lkml@gmail.com>
To: Matt Carlson <mcarlson@broadcom.com>
Cc: Parag Warudkar <parag.lkml@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: 2.6.29-rc3: tg3 dead after resume
Date: Fri, 30 Jan 2009 17:50:36 -0500 (EST) [thread overview]
Message-ID: <alpine.DEB.2.00.0901301743410.4989@parag-desktop> (raw)
In-Reply-To: <20090130184030.GA14933@xw6200.broadcom.net>
On Fri, 30 Jan 2009, Matt Carlson wrote:
>
> If the PCI_COMMAND message doesn't match, then it means that the
> PCI_COMMAND register isn't getting restored for some reason. If they do
> On Thu, Jan 29, 2009 at 02:35:44PM -0800, Parag Warudkar wrote:
> >
> >
> > On Thu, 29 Jan 2009, Matt Carlson wrote:
> >
> > > FWIW, I can suspend and resume using the latest linux-2.6 kernel
> > > on a machine with a similar chip here. The problem doesn't seem to
> > > affect all Broadcom devices.
> >
> > It is failing for me on HP xw6600 workstation, if that helps in any way.
> >
> > Parag
>
> O.K. Let's test some more assumptions. Can you apply the following
> patch and observe the system logs when the device is first loaded and
> again after resume. The patch looks at the pci command register to
> verify that memory space IO is indeed enabled. (It should be.) This is
> all that should be needed for MMIO to work.
> On Thu, Jan 29, 2009 at 02:35:44PM -0800, Parag Warudkar wrote:
> >
> >
> > On Thu, 29 Jan 2009, Matt Carlson wrote:
> O.K. Let's test some more assumptions. Can you apply the following
> patch and observe the system logs when the device is first loaded and
> again after resume. The patch looks at the pci command register to
> verify that memory space IO is indeed enabled. (It should be.) This is
> all that should be needed for MMIO to work.
> match, then something else in the system is not getting restored
> correctly.
>
Here is the output after applying the patch (fresh boot btw) -
[ 29.698877] eth0: PCI_COMMAND reg = 0x406 (bit 1 is on)
[ 29.698880] eth0: Reg value at offset 0x0 is 0x167b14e4
[ 29.758169] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 31.295087] tg3: eth0: Link is up at 100 Mbps, full duplex.
[ 31.295090] tg3: eth0: Flow control is off for TX and off for RX.
[ 31.297574] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 41.872007] eth0: no IPv6 routers present
^^^ Pre-Suspend
[ 245.924484] eth0: PCI_COMMAND reg = 0x406 (bit 1 is on)
[ 245.924487] eth0: Reg value at offset 0x0 is 0xffffffff
[ 247.317971] tg3: eth0: No firmware running.
[ 258.710634] ADDRCONF(NETDEV_UP): eth0: link is not ready
^^^ Post-Suspend
So it looks like the memory space IO is enabled before and after suspend.
The device/vendor id goes 0xffffffff after resume - just like before.
Does that one matter? (Firmware may be looking at it?)
>
> diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
> index 8b3f846..67bb29f 100644
> --- a/drivers/net/tg3.c
> +++ b/drivers/net/tg3.c
> @@ -7225,8 +7225,17 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
> */
> static int tg3_init_hw(struct tg3 *tp, int reset_phy)
> {
> + u16 cmd;
> +
> tg3_switch_clocks(tp);
>
> + pci_read_config_word(tp->pdev, PCI_COMMAND, &cmd);
> +
> + printk(KERN_NOTICE "%s: PCI_COMMAND reg = 0x%x (bit 1 is %s)\n",
> + tp->dev->name, cmd, (cmd & PCI_COMMAND_MEMORY) ? "on" : "off");
> + printk(KERN_NOTICE "%s: Reg value at offset 0x0 is 0x%x\n",
> + tp->dev->name, tr32(0x0));
> +
> tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0);
>
> return tg3_reset_hw(tp, reset_phy);
>
>
next prev parent reply other threads:[~2009-01-30 22:50 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-29 0:14 2.6.29-rc3: tg3 dead after resume Parag Warudkar
2009-01-29 1:09 ` Linus Torvalds
2009-01-29 1:49 ` Parag Warudkar
2009-01-29 2:10 ` Linus Torvalds
2009-01-29 2:19 ` Matt Carlson
2009-01-29 22:22 ` Rafael J. Wysocki
2009-01-29 18:42 ` Matt Carlson
2009-01-29 22:06 ` Parag Warudkar
2009-01-29 22:22 ` Matt Carlson
2009-01-29 22:35 ` Parag Warudkar
2009-01-29 23:10 ` Rafael J. Wysocki
2009-01-30 18:40 ` Matt Carlson
2009-01-30 22:50 ` Parag Warudkar [this message]
2009-01-30 23:06 ` Linus Torvalds
2009-01-30 23:33 ` Linus Torvalds
2009-01-30 23:45 ` Parag Warudkar
2009-01-30 23:57 ` Linus Torvalds
2009-01-30 23:59 ` Rafael J. Wysocki
2009-01-31 0:28 ` Parag Warudkar
2009-01-31 0:38 ` Rafael J. Wysocki
2009-01-31 0:44 ` Ingo Molnar
2009-01-31 0:47 ` Rafael J. Wysocki
2009-01-31 1:21 ` Parag Warudkar
2009-01-31 1:37 ` Rafael J. Wysocki
2009-01-31 1:42 ` Parag Warudkar
2009-02-03 9:29 ` Rafael J. Wysocki
2009-02-03 21:27 ` Parag Warudkar
2009-02-03 22:15 ` Rafael J. Wysocki
2009-02-04 0:38 ` Parag Warudkar
2009-02-04 0:41 ` Rafael J. Wysocki
2009-02-07 3:00 ` Linus Torvalds
2009-02-07 18:03 ` Jesse Barnes
2009-01-31 1:46 ` Linus Torvalds
2009-01-31 1:54 ` Parag Warudkar
2009-01-31 2:25 ` Linus Torvalds
2009-01-31 2:40 ` Parag Warudkar
2009-01-31 18:51 ` Rafael J. Wysocki
2009-01-31 2:19 ` Linus Torvalds
2009-01-31 20:45 ` Rafael J. Wysocki
2009-01-31 1:41 ` Linus Torvalds
2009-01-31 21:08 ` Rafael J. Wysocki
2009-01-31 21:42 ` What should PCI core do during suspend-resume? (was: Re: 2.6.29-rc3: tg3 dead after resume) Rafael J. Wysocki
2009-01-31 21:59 ` Linus Torvalds
2009-01-31 23:08 ` Rafael J. Wysocki
2009-01-31 23:27 ` Linus Torvalds
2009-01-31 23:39 ` Linus Torvalds
2009-02-01 0:36 ` Rafael J. Wysocki
2009-02-01 1:06 ` Linus Torvalds
2009-02-01 1:13 ` Linus Torvalds
2009-02-01 1:20 ` Arjan van de Ven
2009-02-01 1:24 ` Rafael J. Wysocki
2009-02-07 9:21 ` Pavel Machek
2009-01-31 21:47 ` 2.6.29-rc3: tg3 dead after resume Linus Torvalds
2009-01-31 22:46 ` Rafael J. Wysocki
2009-01-31 23:01 ` Linus Torvalds
2009-02-01 0:11 ` Rafael J. Wysocki
2009-02-01 0:32 ` Linus Torvalds
2009-02-01 0:41 ` Rafael J. Wysocki
2009-02-01 0:51 ` Linus Torvalds
2009-02-07 3:27 ` Benjamin Herrenschmidt
2009-02-07 3:26 ` Benjamin Herrenschmidt
2009-01-29 23:03 ` Rafael J. Wysocki
2009-01-29 23:41 ` Matt Carlson
2009-01-30 0:10 ` Rafael J. Wysocki
2009-01-30 22:31 ` Parag Warudkar
2009-01-30 22:36 ` Linus Torvalds
2009-01-30 22:54 ` Rafael J. Wysocki
2009-01-30 23:07 ` Linus Torvalds
2009-01-30 23:13 ` Parag Warudkar
2009-01-30 23:31 ` Rafael J. Wysocki
2009-01-30 23:51 ` Linus Torvalds
2009-01-31 0:07 ` Rafael J. Wysocki
2009-01-31 0:34 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.00.0901301743410.4989@parag-desktop \
--to=parag.lkml@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mcarlson@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox