Message ID | 1343836477-7287-13-git-send-email-jiang.liu@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/01/2012 09:54 AM, Jiang Liu wrote: > From: Jiang Liu <jiang.liu@huawei.com> > > Use PCIe capabilities access functions to simplify PCIe ARM implementation. > > Signed-off-by: Jiang Liu <liuj97@gmail.com> This is probably fine from my perspective assuming the underlying PCI API implementation is OKd by relevant people. Thierry, can you comment on whether this will conflict with your Tegra PCIe driver series? If it doesn't, this patch can go through any relevant PCI tree. If it does, we may have to take this through the Tegra tree after merging the dependencies, or defer it to later.
On Wed, Aug 01, 2012 at 11:20:13AM -0600, Stephen Warren wrote: > On 08/01/2012 09:54 AM, Jiang Liu wrote: > > From: Jiang Liu <jiang.liu@huawei.com> > > > > Use PCIe capabilities access functions to simplify PCIe ARM implementation. > > > > Signed-off-by: Jiang Liu <liuj97@gmail.com> > > This is probably fine from my perspective assuming the underlying PCI > API implementation is OKd by relevant people. > > Thierry, can you comment on whether this will conflict with your Tegra > PCIe driver series? If it doesn't, this patch can go through any > relevant PCI tree. If it does, we may have to take this through the > Tegra tree after merging the dependencies, or defer it to later. I haven't touched those lines. tegra_pcie_relax_enable() only uses generic PCI functions so I don't expect any conflicts. git blame confirms that those lines haven't been changed in about 2 years. Thierry
On 08/01/2012 09:54 AM, Jiang Liu wrote: > From: Jiang Liu <jiang.liu@huawei.com> > > Use PCIe capabilities access functions to simplify PCIe ARM implementation. > > Signed-off-by: Jiang Liu <liuj97@gmail.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
diff --git a/arch/arm/mach-tegra/pcie.c b/arch/arm/mach-tegra/pcie.c index 0e09137..5f99d33 100644 --- a/arch/arm/mach-tegra/pcie.c +++ b/arch/arm/mach-tegra/pcie.c @@ -367,17 +367,8 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x0bf1, tegra_pcie_fixup_class); /* Tegra PCIE requires relaxed ordering */ static void __devinit tegra_pcie_relax_enable(struct pci_dev *dev) { - u16 val16; - int pos = pci_find_capability(dev, PCI_CAP_ID_EXP); - - if (pos <= 0) { - dev_err(&dev->dev, "skipping relaxed ordering fixup\n"); - return; - } - - pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &val16); - val16 |= PCI_EXP_DEVCTL_RELAX_EN; - pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, val16); + pci_pcie_capability_change_word(dev, PCI_EXP_DEVCTL, + PCI_EXP_DEVCTL_RELAX_EN, 0); } DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, tegra_pcie_relax_enable);