PCI: Add pcie_get_width_cap() to find max supported link width
Add pcie_get_width_cap() to find the max link width supported by a device. Change max_link_width_show() to use pcie_get_width_cap(). Signed-off-by: Tal Gilboa <talgi@mellanox.com> [bhelgaas: return width directly instead of error and *width, don't export outside drivers/pci] Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
This commit is contained in:

committed by
Bjorn Helgaas

parent
6cf57be0f7
commit
c70b65fb7f
@@ -167,15 +167,9 @@ static DEVICE_ATTR_RO(max_link_speed);
|
||||
static ssize_t max_link_width_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
u32 linkcap;
|
||||
int err;
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
|
||||
err = pcie_capability_read_dword(pci_dev, PCI_EXP_LNKCAP, &linkcap);
|
||||
if (err)
|
||||
return -EINVAL;
|
||||
|
||||
return sprintf(buf, "%u\n", (linkcap & PCI_EXP_LNKCAP_MLW) >> 4);
|
||||
return sprintf(buf, "%u\n", pcie_get_width_cap(pdev));
|
||||
}
|
||||
static DEVICE_ATTR_RO(max_link_width);
|
||||
|
||||
|
Reference in New Issue
Block a user