All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@parisc-linux.org>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: Grant Grundler <grundler@parisc-linux.org>,
	linux-pci@atrey.karlin.mff.cuni.cz,
	linux-pm <linux-pm@lists.osdl.org>,
	linux-kernel@vger.kernel.org, Greg KH <greg@kroah.com>,
	Adam Belay <ambx1@neo.rr.com>,
	Russell King <rmk+lkml@arm.linux.org.uk>
Subject: Re: [patch 2.6.12 (repost w/ corrected subject)] pci: restore BAR values in pci_enable_device_bars
Date: Mon, 18 Jul 2005 06:17:44 -0600	[thread overview]
Message-ID: <20050718121744.GD8775@colo.lackof.org> (raw)
In-Reply-To: <20050705174617.GB21933@tuxdriver.com>

On Tue, Jul 05, 2005 at 01:46:20PM -0400, John W. Linville wrote:
> On Sat, Jul 02, 2005 at 01:29:54AM -0600, Grant Grundler wrote:
> > On Thu, Jun 30, 2005 at 10:26:37PM -0400, John W. Linville wrote:
> 
> > > +	/* Some devices lose PCI config header data during D3hot->D0
> > 
> > Can you name some of those devices here?
> > I just want to know what sort of devices need to be tested 
> > if this code changes in the future.
> 
> I don't really have a list.  The devices that brought this issue to
> my attention are a 3c905B and a 3c556B, both covered by the 3c59x
> driver.

John,
apologies for the late reply - been offline the past two weeks on holiday.

Just listing the two devices in a comment would be sufficient.

> According to section 5.4.1 of the "PCI BUS POWER MANAGEMENT INTERFACE
> SPECIFICATION, REV. 1.2", a device transitioning from D3hot to D0
> _may_ perform an internal reset, thereby going to "D0 Uninitialized"
> rather than "D0 Initialized".

Including the above paragraph in a comment would be a good thing.
I don't know if this spec is publicly available. But even if it is,
typically only a handful of people will be familiar enough with it
to know where to look in it.

> Since this behaviour is ratified by
> the spec, I think we need to accomodate it.

Yes - sounds reasonable to me too.

> A bit in the PMCSR register indicates how a device will behave in
> this regard.  We could have a test to only execute the BAR restoration
> for those devices that seem to need it.  I left that out because it
> seemed to add needless complexity.  In the meantime the patch has
> gotten bigger and more complex, so maybe that code doesn't make it
> any worse.  Do you want me to add that?

I think I'd keep it simpler until someone proves we need it.
I've read the rest of the thread and don't recall any such proof.

> 
> > 
> > > +	   transition.	Since some firmware leaves devices in D3hot
> > > +	   state at boot, this information needs to be restored.
> > 
> > Again, which firmware?
> > Examples are good since it makes it possible to track down
> > the offending devices for testing.
> 
> The Thinkpad T21 does this.  I don't know of any others specifically,
> but it seems like something laptop BIOSes would be likely to do.

That's fine - just listing the Thinkpad T21 in a comment is helpful.
If you happen to know the firmware version too, that would be even better.

> > The following chunk looks like it will have issues with 64-bit BARs:
> 
> As RMK pointed-out, this code is inspired by setup-res.c; specifically
> that in pci_update_resource.  I'd prefer not to blaze any new trails
> regarding 64-bit BAR support ATM... :-)

After thinking about this more, I'm convinced it's broken if a 64-bit BAR
is present on the PCI device. It doesn't matter if the MMIO value is
greater than 4GB or not. The problem is pci_dev->resource[i] does NOT
map 1:1 with PCI_BASE_ADDRESS_0+(i*4).

> So, is the current patch acceptable?

I don't think so. 64-bit BARs are just too common today.
One solution is to use a seperate variable to track the offset into
PCI config space. ie use "i" to walk through pci_dev->resource[]
and add "unsigned int pcibar_offset" to keep track of 32 vs 64-bit BARs.

> Or shall I add the check for the "no soft reset" bit in the PMCSR register?

I don't see why that's necessary.

thanks,
grant

  reply	other threads:[~2005-07-18 12:17 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-23 19:14 [RFC] firmware leaves device in D3hot at boot John W. Linville
2005-06-23 19:14 ` John W. Linville
2005-06-24  2:28 ` John W. Linville
2005-06-24  2:28   ` John W. Linville
2005-06-30 17:10   ` Greg KH
2005-06-30 17:10     ` Greg KH
2005-07-01  1:41     ` John W. Linville
2005-07-01  1:41       ` John W. Linville
2005-07-01  2:26       ` [patch 2.6.12 (repost w/ corrected subject)] pci: restore BAR values in pci_enable_device_bars John W. Linville
2005-07-01  2:26         ` John W. Linville
2005-07-02  7:29         ` Grant Grundler
2005-07-02  7:29           ` Grant Grundler
2005-07-02  8:09           ` Russell King
2005-07-02  8:09             ` Russell King
2005-07-05 20:05             ` Matthew Wilcox
2005-07-05 20:05               ` Matthew Wilcox
2005-07-05 21:46               ` Russell King
2005-07-05 21:46                 ` Russell King
2005-07-05 23:34                 ` Ivan Kokshaysky
2005-07-05 23:34                   ` Ivan Kokshaysky
2005-07-06  7:46                   ` Russell King
2005-07-06  7:46                     ` Russell King
2005-07-08  0:57                   ` John W. Linville
2005-07-08  0:57                     ` John W. Linville
2005-07-08  0:59                     ` [patch 2.6.13-rc2] pci: restore BAR values in pci_set_power_state for D3hot->D0 John W. Linville
2005-07-08  0:59                       ` John W. Linville
2005-07-08  3:43                       ` [linux-pm] " david-b
2005-07-08  3:43                         ` david-b
2005-07-08 12:37                         ` John W. Linville
2005-07-08 12:37                           ` [linux-pm] " John W. Linville
2005-07-08  3:11                     ` [patch 2.6.12 (repost w/ corrected subject)] pci: restore BAR values in pci_enable_device_bars David S. Miller
2005-07-08  3:11                       ` David S. Miller
2005-07-08  5:51                       ` Ivan Kokshaysky
2005-07-08  5:51                         ` Ivan Kokshaysky
2005-07-08  6:35                         ` David S. Miller
2005-07-08  6:35                           ` David S. Miller
2005-07-08  7:03                           ` Ivan Kokshaysky
2005-07-08  7:03                             ` Ivan Kokshaysky
2005-07-08  7:33                             ` David S. Miller
2005-07-08  7:33                               ` David S. Miller
2005-07-08  8:20                               ` Ivan Kokshaysky
2005-07-08  8:20                                 ` Ivan Kokshaysky
2005-07-08 18:34                                 ` [patch 2.6.13-rc2] pci: restore BAR values from pci_set_power_state for D3hot->D0 John W. Linville
2005-07-08 18:34                                   ` John W. Linville
2005-07-08 19:08                                   ` David S. Miller
2005-07-08 19:08                                     ` David S. Miller
2005-07-10 17:53                                   ` Ivan Kokshaysky
2005-07-10 17:53                                     ` Ivan Kokshaysky
2005-07-11 12:48                                   ` Lennert Buytenhek
2005-07-11 12:48                                     ` Lennert Buytenhek
2005-07-11 13:15                                     ` John W. Linville
2005-07-11 13:15                                       ` John W. Linville
2005-07-11 13:19                                       ` [patch 2.6.13-rc2] PCI: Add symbol exports for pci_restore_bars John W. Linville
2005-07-11 13:19                                         ` John W. Linville
2005-07-11 17:18                                         ` Greg KH
2005-07-11 17:36                                           ` John W. Linville
2005-07-11 17:36                                             ` John W. Linville
2005-07-11 17:38                                             ` [patch 2.6.13-rc2] PCI: Add GPL symbol export " John W. Linville
2005-07-11 17:38                                               ` John W. Linville
2005-07-12  2:28                                   ` [patch 2.6.13-rc2] pci: restore BAR values from pci_set_power_state for D3hot->D0 Adam Belay
2005-07-12  2:28                                     ` Adam Belay
2005-07-13 17:34                                     ` John W. Linville
2005-07-13 17:34                                       ` John W. Linville
2005-07-26 23:49                                   ` Greg KH
2005-07-26 23:49                                     ` Greg KH
2005-07-27  1:36                                     ` John W. Linville
2005-07-27  1:36                                       ` John W. Linville
2005-07-27 14:12                                       ` John W. Linville
2005-07-27 14:12                                         ` John W. Linville
2005-07-27 14:19                                         ` [patch 2.6.13-rc3] pci: restore BAR values after D3hot->D0 for devices that need it John W. Linville
2005-07-27 14:19                                           ` John W. Linville
2005-07-31 19:36                                           ` Ralf Baechle
2005-07-31 19:36                                             ` Ralf Baechle
2005-08-02 17:31                                             ` Greg KH
2005-08-02 17:31                                               ` Greg KH
2005-08-02 16:41                                           ` Jesse Brandeburg
2005-09-14 13:52                                           ` [patch 2.6.14-rc1] pci: only call pci_restore_bars at boot John W. Linville
2005-09-14 13:52                                             ` John W. Linville
2005-09-14 15:08                                             ` Jeff Garzik
2005-09-14 15:08                                               ` Jeff Garzik
2005-09-14 16:26                                               ` David S. Miller
2005-09-14 16:47                                                 ` John W. Linville
2005-09-14 16:47                                                   ` John W. Linville
2005-09-14 18:22                                                 ` Ivan Kokshaysky
2005-09-14 18:22                                                   ` Ivan Kokshaysky
2005-07-05 17:46           ` [patch 2.6.12 (repost w/ corrected subject)] pci: restore BAR values in pci_enable_device_bars John W. Linville
2005-07-05 17:46             ` John W. Linville
2005-07-18 12:17             ` Grant Grundler [this message]
2005-07-01  2:26       ` [patch 2.6.12] pci: restore BAR values in pci_enable_device John W. Linville
2005-07-01  2:26         ` John W. Linville

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=20050718121744.GD8775@colo.lackof.org \
    --to=grundler@parisc-linux.org \
    --cc=ambx1@neo.rr.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=linux-pm@lists.osdl.org \
    --cc=linville@tuxdriver.com \
    --cc=rmk+lkml@arm.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.