From: Knut Omang Date: Fri, 2 Sep 2016 16:17:26 +0000 (+0200) Subject: sif: ireg: Use the firmware release version as sysfs fw_ver X-Git-Tag: v4.1.12-92~80^2~4 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6b89688d9f2744ae9b4e8504f3be9fbcc51bd647;p=users%2Fjedix%2Flinux-maple.git sif: ireg: Use the firmware release version as sysfs fw_ver Report the official release version as reported by ibv_query_device etc. instead of the previously used internal firmware build version. Orabug: 24533579 Signed-off-by: Knut Omang Reviewed-by: HÃ¥kon Bugge --- diff --git a/drivers/infiniband/hw/sif/sif_epsc.h b/drivers/infiniband/hw/sif/sif_epsc.h index 4a7c6682cbab5..03d6ed4a39a82 100644 --- a/drivers/infiniband/hw/sif/sif_epsc.h +++ b/drivers/infiniband/hw/sif/sif_epsc.h @@ -57,8 +57,8 @@ struct eps_version_data { u16 epsc_major; u16 epsc_minor; #endif - u16 fw_minor; - u16 fw_major; + u16 fw_minor; /* This is the internal firmware version, */ + u16 fw_major; /* which is not the same as the official release version */ int seq_set_proto; /* Protocol version of the initial setup meta protocol (0 == legacy) */ struct psif_epsc_csr_config nb_cfg; /* "Network" byte order config storage (see #3804) */ char *fw_version[FWV_MAX]; diff --git a/drivers/infiniband/hw/sif/sif_ireg.c b/drivers/infiniband/hw/sif/sif_ireg.c index 958e724330dfe..32682586f1376 100644 --- a/drivers/infiniband/hw/sif/sif_ireg.c +++ b/drivers/infiniband/hw/sif/sif_ireg.c @@ -52,8 +52,12 @@ static ssize_t show_fw_ver(struct device *device, { struct sif_dev *sdev = dev_get_drvdata(device); struct sif_eps *es = &sdev->es[sdev->mbox_epsc]; + u64 fw_ver = cpu_to_be64(es->data->dev.fw_ver); - return sprintf(buf, "%hu.%hu.0\n", es->ver.fw_major, es->ver.fw_minor); + return sprintf(buf, "%llu.%llu.%llu\n", + (fw_ver >> 32) & 0xffff, + (fw_ver >> 16) & 0xffff, + (fw_ver & 0xffff)); } static ssize_t show_eps_api_ver(struct device *device,