From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: "Joonwoo Park" <joonwpark81@gmail.com>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Simon Arlott" <simon@fire.lp0.eu>, "Pavel Machek" <pavel@ucw.cz>,
"Kok, Auke" <auke-jan.h.kok@intel.com>,
linux-pm@lists.linux-foundation.org,
linux-pci@atrey.karlin.mff.cuni.cz,
David Brownell <david-b@pacbell.net>
Subject: Re: [PATCH] kexec: fix pci device initialization fail after kexec (2.6.23-rc2). (Related to e1000 doesn't resume properly from standby)
Date: Tue, 7 Aug 2007 15:51:20 +0200 [thread overview]
Message-ID: <200708071551.21264.rjw@sisk.pl> (raw)
In-Reply-To: <b25c3fa70708062130v5176fa9fu4b9300e6a313cf2f@mail.gmail.com>
On Tuesday, 7 August 2007 06:30, Joonwoo Park wrote:
> 2007/8/7, Rafael J. Wysocki <rjw@sisk.pl>:
> > On Monday, 6 August 2007 17:50, Joonwoo Park wrote:
> > > 2007/8/6, Rafael J. Wysocki <rjw@sisk.pl>:
> > > > On Monday, 6 August 2007 15:42, Joonwoo Park wrote:
> > > > > Hi.
> > > > > I think that the pci_set_power_state() has bug.
> > > > > The specification says that some delays is required.
> > > >
> > > > And they are in place, AFAICS (from drivers/pci/pci.c):
> > > >
> > > > /* Mandatory power management transition delays */
> > > > /* see PCI PM 1.1 5.6.1 table 18 */
> > > > if (state == PCI_D3hot || dev->current_state == PCI_D3hot)
> > > > msleep(pci_pm_d3_delay);
> > > > else if (state == PCI_D2 || dev->current_state == PCI_D2)
> > > > udelay(200);
> > > >
> > >
> > > The problem is occurred when state is 'PCI_D0', so those codes can't cover it.
> > > But pci pm specification 5.4.1 says that when programmed to D0 the
> > > equivalent of a warm reset, delay for the duration of the D3hot to D0
> > > Uninitialized state
> > > transition (10ms) to pci signal drivers remain disabled is required.
> >
> > Section 5.4.1 of PCI PM 1.1. spec is about D3_hot. Specifically, it says
> > that if a device in D3_hot is programmed to D0, it performs the equivalent of
> > a warm reset. IOW, this is supposed to happen if the current state is D3_hot
> > and the targed state is D0, which is covered by the code snippet above.
>
> IMHO, it is seems to the spec says just *programmed to D0* not
> *programmed from D3hot to D0*.
But the title of the section is "Software Accessible D3 (D3hot)", isn't it?
And the first paragraph of the section is
"Functions in D3hot must respond to configuration space accesses as long as
power and clock are supplied so that they can be returned to D0 by software."
If this doesn't imply D3hot to D0 transition being discussed in the next
paragraph, then I don't know what it's there for.
> Actually, I got current_state UNKNOWN and state PCI_D0 after kexec's
> start new kernel with dual port 82546EB fiber ethernet card.
IMO, pci_set_power_state() is correct and your problem is related to something
else.
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
prev parent reply other threads:[~2007-08-07 13:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-06 13:42 Joonwoo Park
2007-08-06 14:50 ` Rafael J. Wysocki
2007-08-06 15:50 ` Joonwoo Park
2007-08-06 17:18 ` Simon Arlott
2007-08-06 18:48 ` Rafael J. Wysocki
2007-08-06 20:54 ` [linux-pm] " David Brownell
2007-08-07 4:30 ` Joonwoo Park
2007-08-07 13:51 ` Rafael J. Wysocki [this message]
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=200708071551.21264.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=auke-jan.h.kok@intel.com \
--cc=david-b@pacbell.net \
--cc=joonwpark81@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=linux-pm@lists.linux-foundation.org \
--cc=pavel@ucw.cz \
--cc=simon@fire.lp0.eu \
/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
all inboxes | Powered by JetHome®