Pci pm cap register offset has been saved in pci_pm_init(),
so we can use pdev->pm_cap instead of using pci_find_capability(..)
here.

Signed-off-by: Yijing Wang <wangyij...@huawei.com>
Cc: linux-...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/pci/pci.c    |    2 +-
 drivers/pci/quirks.c |    6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index a899d8b..1117f2c 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -805,7 +805,7 @@ pci_power_t pci_choose_state(struct pci_dev *dev, 
pm_message_t state)
 {
        pci_power_t ret;
 
-       if (!pci_find_capability(dev, PCI_CAP_ID_PM))
+       if (!dev->pm_cap)
                return PCI_D0;
 
        ret = platform_pci_choose_state(dev);
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 7d68aee..422812b 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1832,7 +1832,6 @@ static void quirk_e100_interrupt(struct pci_dev *dev)
        u16 command, pmcsr;
        u8 __iomem *csr;
        u8 cmd_hi;
-       int pm;
 
        switch (dev->device) {
        /* PCI IDs taken from drivers/net/e100.c */
@@ -1870,9 +1869,8 @@ static void quirk_e100_interrupt(struct pci_dev *dev)
         * Check that the device is in the D0 power state. If it's not,
         * there is no point to look any further.
         */
-       pm = pci_find_capability(dev, PCI_CAP_ID_PM);
-       if (pm) {
-               pci_read_config_word(dev, pm + PCI_PM_CTRL, &pmcsr);
+       if (dev->pm_cap) {
+               pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr);
                if ((pmcsr & PCI_PM_CTRL_STATE_MASK) != PCI_D0)
                        return;
        }
-- 
1.7.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to