diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_sysfs.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_sysfs.c | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_sysfs.c b/drivers/infiniband/hw/ipath/ipath_sysfs.c index b98821d7801d..e299148c4b68 100644 --- a/drivers/infiniband/hw/ipath/ipath_sysfs.c +++ b/drivers/infiniband/hw/ipath/ipath_sysfs.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <linux/pci.h> | 35 | #include <linux/pci.h> |
36 | 36 | ||
37 | #include "ipath_kernel.h" | 37 | #include "ipath_kernel.h" |
38 | #include "ipath_layer.h" | ||
39 | #include "ipath_common.h" | 38 | #include "ipath_common.h" |
40 | 39 | ||
41 | /** | 40 | /** |
@@ -76,7 +75,7 @@ bail: | |||
76 | static ssize_t show_version(struct device_driver *dev, char *buf) | 75 | static ssize_t show_version(struct device_driver *dev, char *buf) |
77 | { | 76 | { |
78 | /* The string printed here is already newline-terminated. */ | 77 | /* The string printed here is already newline-terminated. */ |
79 | return scnprintf(buf, PAGE_SIZE, "%s", ipath_core_version); | 78 | return scnprintf(buf, PAGE_SIZE, "%s", ib_ipath_version); |
80 | } | 79 | } |
81 | 80 | ||
82 | static ssize_t show_num_units(struct device_driver *dev, char *buf) | 81 | static ssize_t show_num_units(struct device_driver *dev, char *buf) |
@@ -108,8 +107,8 @@ static const char *ipath_status_str[] = { | |||
108 | "Initted", | 107 | "Initted", |
109 | "Disabled", | 108 | "Disabled", |
110 | "Admin_Disabled", | 109 | "Admin_Disabled", |
111 | "OIB_SMA", | 110 | "", /* This used to be the old "OIB_SMA" status. */ |
112 | "SMA", | 111 | "", /* This used to be the old "SMA" status. */ |
113 | "Present", | 112 | "Present", |
114 | "IB_link_up", | 113 | "IB_link_up", |
115 | "IB_configured", | 114 | "IB_configured", |
@@ -227,7 +226,6 @@ static ssize_t store_mlid(struct device *dev, | |||
227 | unit = dd->ipath_unit; | 226 | unit = dd->ipath_unit; |
228 | 227 | ||
229 | dd->ipath_mlid = mlid; | 228 | dd->ipath_mlid = mlid; |
230 | ipath_layer_intr(dd, IPATH_LAYER_INT_BCAST); | ||
231 | 229 | ||
232 | goto bail; | 230 | goto bail; |
233 | invalid: | 231 | invalid: |
@@ -467,7 +465,7 @@ static ssize_t store_link_state(struct device *dev, | |||
467 | if (ret < 0) | 465 | if (ret < 0) |
468 | goto invalid; | 466 | goto invalid; |
469 | 467 | ||
470 | r = ipath_layer_set_linkstate(dd, state); | 468 | r = ipath_set_linkstate(dd, state); |
471 | if (r < 0) { | 469 | if (r < 0) { |
472 | ret = r; | 470 | ret = r; |
473 | goto bail; | 471 | goto bail; |
@@ -502,7 +500,7 @@ static ssize_t store_mtu(struct device *dev, | |||
502 | if (ret < 0) | 500 | if (ret < 0) |
503 | goto invalid; | 501 | goto invalid; |
504 | 502 | ||
505 | r = ipath_layer_set_mtu(dd, mtu); | 503 | r = ipath_set_mtu(dd, mtu); |
506 | if (r < 0) | 504 | if (r < 0) |
507 | ret = r; | 505 | ret = r; |
508 | 506 | ||
@@ -563,6 +561,33 @@ bail: | |||
563 | return ret; | 561 | return ret; |
564 | } | 562 | } |
565 | 563 | ||
564 | static ssize_t store_rx_pol_inv(struct device *dev, | ||
565 | struct device_attribute *attr, | ||
566 | const char *buf, | ||
567 | size_t count) | ||
568 | { | ||
569 | struct ipath_devdata *dd = dev_get_drvdata(dev); | ||
570 | int ret, r; | ||
571 | u16 val; | ||
572 | |||
573 | ret = ipath_parse_ushort(buf, &val); | ||
574 | if (ret < 0) | ||
575 | goto invalid; | ||
576 | |||
577 | r = ipath_set_rx_pol_inv(dd, val); | ||
578 | if (r < 0) { | ||
579 | ret = r; | ||
580 | goto bail; | ||
581 | } | ||
582 | |||
583 | goto bail; | ||
584 | invalid: | ||
585 | ipath_dev_err(dd, "attempt to set invalid Rx Polarity invert\n"); | ||
586 | bail: | ||
587 | return ret; | ||
588 | } | ||
589 | |||
590 | |||
566 | static DRIVER_ATTR(num_units, S_IRUGO, show_num_units, NULL); | 591 | static DRIVER_ATTR(num_units, S_IRUGO, show_num_units, NULL); |
567 | static DRIVER_ATTR(version, S_IRUGO, show_version, NULL); | 592 | static DRIVER_ATTR(version, S_IRUGO, show_version, NULL); |
568 | 593 | ||
@@ -589,6 +614,7 @@ static DEVICE_ATTR(status, S_IRUGO, show_status, NULL); | |||
589 | static DEVICE_ATTR(status_str, S_IRUGO, show_status_str, NULL); | 614 | static DEVICE_ATTR(status_str, S_IRUGO, show_status_str, NULL); |
590 | static DEVICE_ATTR(boardversion, S_IRUGO, show_boardversion, NULL); | 615 | static DEVICE_ATTR(boardversion, S_IRUGO, show_boardversion, NULL); |
591 | static DEVICE_ATTR(unit, S_IRUGO, show_unit, NULL); | 616 | static DEVICE_ATTR(unit, S_IRUGO, show_unit, NULL); |
617 | static DEVICE_ATTR(rx_pol_inv, S_IWUSR, NULL, store_rx_pol_inv); | ||
592 | 618 | ||
593 | static struct attribute *dev_attributes[] = { | 619 | static struct attribute *dev_attributes[] = { |
594 | &dev_attr_guid.attr, | 620 | &dev_attr_guid.attr, |
@@ -603,6 +629,7 @@ static struct attribute *dev_attributes[] = { | |||
603 | &dev_attr_boardversion.attr, | 629 | &dev_attr_boardversion.attr, |
604 | &dev_attr_unit.attr, | 630 | &dev_attr_unit.attr, |
605 | &dev_attr_enabled.attr, | 631 | &dev_attr_enabled.attr, |
632 | &dev_attr_rx_pol_inv.attr, | ||
606 | NULL | 633 | NULL |
607 | }; | 634 | }; |
608 | 635 | ||