Wed, Jan 30, 2019 at 08:05:10PM CET, jakub.kicin...@netronome.com wrote: >Report information about the hardware. > >RFCv2: > - add defines for board IDs which are likely to be reusable for > other drivers (Jiri). > >Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com> >--- > .../net/ethernet/netronome/nfp/nfp_devlink.c | 37 ++++++++++++++++++- > include/net/devlink.h | 5 +++ > 2 files changed, 41 insertions(+), 1 deletion(-) > >diff --git a/drivers/net/ethernet/netronome/nfp/nfp_devlink.c >b/drivers/net/ethernet/netronome/nfp/nfp_devlink.c >index cb3ef7e46614..9857fa663adf 100644 >--- a/drivers/net/ethernet/netronome/nfp/nfp_devlink.c >+++ b/drivers/net/ethernet/netronome/nfp/nfp_devlink.c >@@ -172,6 +172,41 @@ static int nfp_devlink_eswitch_mode_set(struct devlink >*devlink, u16 mode, > return ret; > } > >+static const struct nfp_devlink_versions_simple { >+ const char *key; >+ const char *hwinfo; >+} nfp_devlink_versions_hwinfo[] = { >+ { DEVLINK_VERSION_GENERIC_BOARD_ID, "assembly.partno", }, >+ { DEVLINK_VERSION_GENERIC_BOARD_REV, "assembly.revision", }, >+ { "board.vendor", /* fab */ "assembly.vendor", }, >+ { "board.model", /* code name */ "assembly.model", }, >+}; >+ >+static int >+nfp_devlink_versions_get_hwinfo(struct nfp_pf *pf, struct devlink_info_req >*req) >+{ >+ unsigned int i; >+ int err; >+ >+ for (i = 0; i < ARRAY_SIZE(nfp_devlink_versions_hwinfo); i++) { >+ const struct nfp_devlink_versions_simple *info; >+ const char *val; >+ >+ info = &nfp_devlink_versions_hwinfo[i]; >+ >+ val = nfp_hwinfo_lookup(pf->hwinfo, info->hwinfo); >+ if (!val) >+ continue; >+ >+ err = devlink_info_report_version(req, DEVLINK_VERSION_FIXED, >+ info->key, val); >+ if (err) >+ return err; >+ } >+ >+ return 0; >+} >+ > static int > nfp_devlink_info_get(struct devlink *devlink, struct devlink_info_req *req, > struct netlink_ext_ack *extack) >@@ -191,7 +226,7 @@ nfp_devlink_info_get(struct devlink *devlink, struct >devlink_info_req *req, > return err; > } > >- return 0; >+ return nfp_devlink_versions_get_hwinfo(pf, req); > } > > const struct devlink_ops nfp_devlink_ops = { >diff --git a/include/net/devlink.h b/include/net/devlink.h >index ec72638aa47f..3d553cc6693d 100644 >--- a/include/net/devlink.h >+++ b/include/net/devlink.h >@@ -428,6 +428,11 @@ enum devlink_param_wol_types { > .validate = _validate, \ > } > >+/* Part number, identifier of board design */ >+#define DEVLINK_VERSION_GENERIC_BOARD_ID "board.id" >+/* Revision of board design */ >+#define DEVLINK_VERSION_GENERIC_BOARD_REV "board.rev"
Please have this as a separate patch, not part of "nfp". >+ > enum devlink_version_type { > DEVLINK_VERSION_FIXED, > DEVLINK_VERSION_STORED, >-- >2.19.2 >