Message ID | 1341935655-5381-8-git-send-email-jiang.liu@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Tue, Jul 10, 2012 at 9:54 AM, Jiang Liu <liuj97@gmail.com> wrote: > From: Jiang Liu <jiang.liu@huawei.com> > > Use PCIe cap access functions to simplify pcihp_slot.c > > Signed-off-by: Jiang Liu <liuj97@gmail.com> > --- > drivers/pci/hotplug/pcihp_slot.c | 17 +++++++++-------- > 1 file changed, 9 insertions(+), 8 deletions(-) > > diff --git a/drivers/pci/hotplug/pcihp_slot.c b/drivers/pci/hotplug/pcihp_slot.c > index 8c05a18..08ca019 100644 > --- a/drivers/pci/hotplug/pcihp_slot.c > +++ b/drivers/pci/hotplug/pcihp_slot.c > @@ -103,8 +103,7 @@ static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp) > return; > > /* Find PCI Express capability */ Drop the comment, too. > - pos = pci_pcie_cap(dev); > - if (!pos) > + if (!pci_is_pcie(dev)) > return; > > if (hpp->revision > 1) { > @@ -114,16 +113,18 @@ static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp) > } > > /* Initialize Device Control Register */ > - pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, ®16); > + if (pci_pcie_cap_read_word(dev, PCI_EXP_DEVCTL, ®16)) > + return; > reg16 = (reg16 & hpp->pci_exp_devctl_and) | hpp->pci_exp_devctl_or; > - pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, reg16); > + pci_pcie_cap_write_word(dev, PCI_EXP_DEVCTL, reg16); > > /* Initialize Link Control Register */ > if (dev->subordinate) { > - pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, ®16); > - reg16 = (reg16 & hpp->pci_exp_lnkctl_and) > - | hpp->pci_exp_lnkctl_or; > - pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, reg16); > + if (pci_pcie_cap_read_word(dev, PCI_EXP_LNKCTL, ®16)) { > + reg16 = (reg16 & hpp->pci_exp_lnkctl_and) > + | hpp->pci_exp_lnkctl_or; > + pci_pcie_cap_write_word(dev, PCI_EXP_LNKCTL, reg16); > + } > } > > /* Find Advanced Error Reporting Enhanced Capability */ > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/hotplug/pcihp_slot.c b/drivers/pci/hotplug/pcihp_slot.c index 8c05a18..08ca019 100644 --- a/drivers/pci/hotplug/pcihp_slot.c +++ b/drivers/pci/hotplug/pcihp_slot.c @@ -103,8 +103,7 @@ static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp) return; /* Find PCI Express capability */ - pos = pci_pcie_cap(dev); - if (!pos) + if (!pci_is_pcie(dev)) return; if (hpp->revision > 1) { @@ -114,16 +113,18 @@ static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp) } /* Initialize Device Control Register */ - pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, ®16); + if (pci_pcie_cap_read_word(dev, PCI_EXP_DEVCTL, ®16)) + return; reg16 = (reg16 & hpp->pci_exp_devctl_and) | hpp->pci_exp_devctl_or; - pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, reg16); + pci_pcie_cap_write_word(dev, PCI_EXP_DEVCTL, reg16); /* Initialize Link Control Register */ if (dev->subordinate) { - pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, ®16); - reg16 = (reg16 & hpp->pci_exp_lnkctl_and) - | hpp->pci_exp_lnkctl_or; - pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, reg16); + if (pci_pcie_cap_read_word(dev, PCI_EXP_LNKCTL, ®16)) { + reg16 = (reg16 & hpp->pci_exp_lnkctl_and) + | hpp->pci_exp_lnkctl_or; + pci_pcie_cap_write_word(dev, PCI_EXP_LNKCTL, reg16); + } } /* Find Advanced Error Reporting Enhanced Capability */