Message ID | 1242810717-1436-1-git-send-email-yu.zhao@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On Wed, 20 May 2009 17:11:57 +0800 Yu Zhao <yu.zhao@intel.com> wrote: > PCIe root complex integrated endpoint does not implement ARI, so this > kind of endpoint uses 3-bit function number. The function dependency > link of the integrated endpoint should be calculated using the device > number plus the value from function dependency link register. > > Normal endpoint always implements ARI and the function dependency link > register contains 8-bit function number (i.e. `devfn' from software's > perspective). > > Signed-off-by: Yu Zhao <yu.zhao@intel.com> > --- > drivers/pci/iov.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c > index b497daa..e87fe95 100644 > --- a/drivers/pci/iov.c > +++ b/drivers/pci/iov.c > @@ -487,6 +487,8 @@ found: > iov->self = dev; > pci_read_config_dword(dev, pos + PCI_SRIOV_CAP, &iov->cap); > pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, > &iov->link); > + if (dev->pcie_type == PCI_EXP_TYPE_RC_END) > + iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), > iov->link); > if (pdev) > iov->dev = pci_dev_get(pdev); Applied to my linux-next branch, thanks Yu.
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index b497daa..e87fe95 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -487,6 +487,8 @@ found: iov->self = dev; pci_read_config_dword(dev, pos + PCI_SRIOV_CAP, &iov->cap); pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link); + if (dev->pcie_type == PCI_EXP_TYPE_RC_END) + iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link); if (pdev) iov->dev = pci_dev_get(pdev);
PCIe root complex integrated endpoint does not implement ARI, so this kind of endpoint uses 3-bit function number. The function dependency link of the integrated endpoint should be calculated using the device number plus the value from function dependency link register. Normal endpoint always implements ARI and the function dependency link register contains 8-bit function number (i.e. `devfn' from software's perspective). Signed-off-by: Yu Zhao <yu.zhao@intel.com> --- drivers/pci/iov.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)