Message ID | 20200227223635.1021197-4-jacob.e.keller@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | pci: implement function to read Device Serial Number | expand |
On Thu, Feb 27, 2020 at 02:36:32PM -0800, Jacob Keller wrote: > Replace the open-coded implementation for reading the PCIe DSN with > pci_get_dsn. > > Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> > Cc: Michael Chan <michael.chan@broadcom.com> > --- > drivers/net/ethernet/broadcom/bnxt/bnxt.c | 14 ++++---------- > 1 file changed, 4 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > index 597e6fd5bfea..55f078fc067e 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > @@ -11755,20 +11755,14 @@ static int bnxt_init_mac_addr(struct bnxt *bp) > static int bnxt_pcie_dsn_get(struct bnxt *bp, u8 dsn[]) > { > struct pci_dev *pdev = bp->pdev; > - int pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_DSN); > - u32 dw; > + int err; > > - if (!pos) { > + err = pci_get_dsn(pdev, dsn); > + if (err) { > netdev_info(bp->dev, "Unable do read adapter's DSN"); "Unable *to* read..." Not your fault, I guess :) > - return -EOPNOTSUPP; > + return err; > } > > - /* DSN (two dw) is at an offset of 4 from the cap pos */ > - pos += 4; > - pci_read_config_dword(pdev, pos, &dw); > - put_unaligned_le32(dw, &dsn[0]); > - pci_read_config_dword(pdev, pos + 4, &dw); > - put_unaligned_le32(dw, &dsn[4]); > bp->flags |= BNXT_FLAG_DSN_VALID; > return 0; > } > -- > 2.25.0.368.g28a2d05eebfb >
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 597e6fd5bfea..55f078fc067e 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11755,20 +11755,14 @@ static int bnxt_init_mac_addr(struct bnxt *bp) static int bnxt_pcie_dsn_get(struct bnxt *bp, u8 dsn[]) { struct pci_dev *pdev = bp->pdev; - int pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_DSN); - u32 dw; + int err; - if (!pos) { + err = pci_get_dsn(pdev, dsn); + if (err) { netdev_info(bp->dev, "Unable do read adapter's DSN"); - return -EOPNOTSUPP; + return err; } - /* DSN (two dw) is at an offset of 4 from the cap pos */ - pos += 4; - pci_read_config_dword(pdev, pos, &dw); - put_unaligned_le32(dw, &dsn[0]); - pci_read_config_dword(pdev, pos + 4, &dw); - put_unaligned_le32(dw, &dsn[4]); bp->flags |= BNXT_FLAG_DSN_VALID; return 0; }
Replace the open-coded implementation for reading the PCIe DSN with pci_get_dsn. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Cc: Michael Chan <michael.chan@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)