From: Don Dutile <ddutile@redhat.com>
To: Myron Stowe <myron.stowe@redhat.com>
Cc: bhelgaas@google.com, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, xudong.hao@linux.intel.com,
yu.zhao@intel.com
Subject: Re: [PATCH 4/4] PCI: Remove redundant capabilities checking in pci_{save, restore}_pcie_state
Date: Fri, 01 Jun 2012 18:00:48 -0400 [thread overview]
Message-ID: <4FC93B90.1010907@redhat.com> (raw)
In-Reply-To: <20120601211643.20328.26918.stgit@amt.stowe>
On 06/01/2012 05:16 PM, Myron Stowe wrote:
> Unlike PCI Express v1's Capabilities Structure, v2's requires the entire
> structure to be implemented. In v2 structures, register fields that are
> not necessarly implemented, are present but hardwired to 0x0. These may
> include: Link Capabilities, Status, and Control; Slot Capabilities,
> Status, and Control; Root Capabilities, Status, and Control; and all of
> the '2' (Device, Link, and Slot) Capabilities, Status, and Control
> registers.
>
> This patch removes the redundant capability checks corresponding to the
> Link 2's and Slot 2's, Capabilities, Status, and Control registers as they
> will be present if Device Capabilities 2's registers are (which explains
> why the macros for each of the three are identical).
>
> Signed-off-by: Myron Stowe<myron.stowe@redhat.com>
> ---
>
> drivers/pci/pci.c | 10 ++++------
> 1 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 26933ff..f9f8036 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -903,12 +903,11 @@ static int pci_save_pcie_state(struct pci_dev *dev)
> pci_read_config_word(dev, pos + PCI_EXP_SLTCTL,&cap[i++]);
> if (pcie_cap_has_rtctl(dev->pcie_type, flags))
> pci_read_config_word(dev, pos + PCI_EXP_RTCTL,&cap[i++]);
> - if (pcie_cap_has_devctl2(dev->pcie_type, flags))
> + if (pcie_cap_has_devctl2(dev->pcie_type, flags)) {
and why not use your new function:
+ pos = pci_pcie_cap2(bridge);
+ if (!pos)
instead of this devctl2-specific check, so it's obvious it's the whole cap-struct (additional regs)?
> pci_read_config_word(dev, pos + PCI_EXP_DEVCTL2,&cap[i++]);
> - if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
> pci_read_config_word(dev, pos + PCI_EXP_LNKCTL2,&cap[i++]);
> - if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
> pci_read_config_word(dev, pos + PCI_EXP_SLTCTL2,&cap[i++]);
> + }
>
> return 0;
> }
> @@ -936,12 +935,11 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
> pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
> if (pcie_cap_has_rtctl(dev->pcie_type, flags))
> pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
> - if (pcie_cap_has_devctl2(dev->pcie_type, flags))
> + if (pcie_cap_has_devctl2(dev->pcie_type, flags)) {
ditto.
> pci_write_config_word(dev, pos + PCI_EXP_DEVCTL2, cap[i++]);
> - if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
> pci_write_config_word(dev, pos + PCI_EXP_LNKCTL2, cap[i++]);
> - if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
> pci_write_config_word(dev, pos + PCI_EXP_SLTCTL2, cap[i++]);
> + }
> }
>
>
>
next prev parent reply other threads:[~2012-06-01 22:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-01 21:16 [PATCH 0/4] PCI: PCIe capability structure related cleanup/fixes Myron Stowe
2012-06-01 21:16 ` [PATCH 1/4] PCI: make pci_ltr_supported static Myron Stowe
2012-06-01 22:02 ` Don Dutile
2012-06-01 21:16 ` [PATCH 2/4] PCI: Remove redundant checking in PCI Express capability routines Myron Stowe
2012-06-01 22:02 ` Don Dutile
2012-06-01 21:16 ` [PATCH 3/4] PCI: Add pci_pcie_cap2() check for PCIe feature capabilities >= v2 Myron Stowe
2012-06-01 21:58 ` Don Dutile
2012-06-01 21:16 ` [PATCH 4/4] PCI: Remove redundant capabilities checking in pci_{save, restore}_pcie_state Myron Stowe
2012-06-01 22:00 ` Don Dutile [this message]
2012-06-12 2:52 ` [PATCH 0/4] PCI: PCIe capability structure related cleanup/fixes Bjorn Helgaas
2012-06-12 16:34 ` Myron Stowe
2012-06-12 16:44 ` Bjorn Helgaas
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=4FC93B90.1010907@redhat.com \
--to=ddutile@redhat.com \
--cc=bhelgaas@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=myron.stowe@redhat.com \
--cc=xudong.hao@linux.intel.com \
--cc=yu.zhao@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).