|
@@ -107,6 +107,14 @@ static int ocrdma_port_immutable(struct ib_device *ibdev, u8 port_num,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static void get_dev_fw_str(struct ib_device *device, char *str,
|
|
|
+ size_t str_len)
|
|
|
+{
|
|
|
+ struct ocrdma_dev *dev = get_ocrdma_dev(device);
|
|
|
+
|
|
|
+ snprintf(str, str_len, "%s", &dev->attr.fw_ver[0]);
|
|
|
+}
|
|
|
+
|
|
|
static int ocrdma_register_device(struct ocrdma_dev *dev)
|
|
|
{
|
|
|
strlcpy(dev->ibdev.name, "ocrdma%d", IB_DEVICE_NAME_MAX);
|
|
@@ -193,6 +201,7 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
|
|
|
|
|
|
dev->ibdev.process_mad = ocrdma_process_mad;
|
|
|
dev->ibdev.get_port_immutable = ocrdma_port_immutable;
|
|
|
+ dev->ibdev.get_dev_fw_str = get_dev_fw_str;
|
|
|
|
|
|
if (ocrdma_get_asic_type(dev) == OCRDMA_ASIC_GEN_SKH_R) {
|
|
|
dev->ibdev.uverbs_cmd_mask |=
|
|
@@ -262,14 +271,6 @@ static ssize_t show_rev(struct device *device, struct device_attribute *attr,
|
|
|
return scnprintf(buf, PAGE_SIZE, "0x%x\n", dev->nic_info.pdev->vendor);
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_fw_ver(struct device *device, struct device_attribute *attr,
|
|
|
- char *buf)
|
|
|
-{
|
|
|
- struct ocrdma_dev *dev = dev_get_drvdata(device);
|
|
|
-
|
|
|
- return scnprintf(buf, PAGE_SIZE, "%s\n", &dev->attr.fw_ver[0]);
|
|
|
-}
|
|
|
-
|
|
|
static ssize_t show_hca_type(struct device *device,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
@@ -279,12 +280,10 @@ static ssize_t show_hca_type(struct device *device,
|
|
|
}
|
|
|
|
|
|
static DEVICE_ATTR(hw_rev, S_IRUGO, show_rev, NULL);
|
|
|
-static DEVICE_ATTR(fw_ver, S_IRUGO, show_fw_ver, NULL);
|
|
|
static DEVICE_ATTR(hca_type, S_IRUGO, show_hca_type, NULL);
|
|
|
|
|
|
static struct device_attribute *ocrdma_attributes[] = {
|
|
|
&dev_attr_hw_rev,
|
|
|
- &dev_attr_fw_ver,
|
|
|
&dev_attr_hca_type
|
|
|
};
|
|
|
|