aboutsummaryrefslogtreecommitdiffstats
path: root/qlcnic_sysfs.patch
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-19 13:08:29 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-19 13:08:29 -0700
commitae3ba29a2406de6ae1feeb75fc7a0bb4dee7e3fd (patch)
tree20e92086f9a03ef3246cd19973446efdb4dd7d32 /qlcnic_sysfs.patch
parent886aa559b9da994df968a7f2ddfd37f626d70436 (diff)
downloadpatches-ae3ba29a2406de6ae1feeb75fc7a0bb4dee7e3fd.tar.gz
2 more patches
Diffstat (limited to 'qlcnic_sysfs.patch')
-rw-r--r--qlcnic_sysfs.patch153
1 files changed, 153 insertions, 0 deletions
diff --git a/qlcnic_sysfs.patch b/qlcnic_sysfs.patch
new file mode 100644
index 00000000000000..ca3871ede5552e
--- /dev/null
+++ b/qlcnic_sysfs.patch
@@ -0,0 +1,153 @@
+diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
+index 10ed82b3..6cc8f15f 100644
+--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
++++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
+@@ -33,9 +33,9 @@ int qlcnicvf_config_led(struct qlcnic_adapter *adapter, u32 state, u32 rate)
+ return -EOPNOTSUPP;
+ }
+
+-static ssize_t qlcnic_store_bridged_mode(struct device *dev,
+- struct device_attribute *attr,
+- const char *buf, size_t len)
++static ssize_t bridged_mode_store(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t len)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+ unsigned long new;
+@@ -57,9 +57,8 @@ err_out:
+ return ret;
+ }
+
+-static ssize_t qlcnic_show_bridged_mode(struct device *dev,
+- struct device_attribute *attr,
+- char *buf)
++static ssize_t bridged_mode_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+ int bridged_mode = 0;
+@@ -69,10 +68,11 @@ static ssize_t qlcnic_show_bridged_mode(struct device *dev,
+
+ return sprintf(buf, "%d\n", bridged_mode);
+ }
++static DEVICE_ATTR_RW(bridged_mode);
+
+-static ssize_t qlcnic_store_diag_mode(struct device *dev,
+- struct device_attribute *attr,
+- const char *buf, size_t len)
++static ssize_t diag_mode_store(struct device *dev,
++ struct device_attribute *attr, const char *buf,
++ size_t len)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+ unsigned long new;
+@@ -86,12 +86,13 @@ static ssize_t qlcnic_store_diag_mode(struct device *dev,
+ return len;
+ }
+
+-static ssize_t qlcnic_show_diag_mode(struct device *dev,
+- struct device_attribute *attr, char *buf)
++static ssize_t diag_mode_show(struct device *dev, struct device_attribute *attr,
++ char *buf)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+ return sprintf(buf, "%d\n", !!(adapter->flags & QLCNIC_DIAG_ENABLED));
+ }
++static DEVICE_ATTR_RW(diag_mode);
+
+ static int qlcnic_validate_beacon(struct qlcnic_adapter *adapter, u16 beacon,
+ u8 *state, u8 *rate)
+@@ -221,9 +222,8 @@ out:
+ return err;
+ }
+
+-static ssize_t qlcnic_store_beacon(struct device *dev,
+- struct device_attribute *attr,
+- const char *buf, size_t len)
++static ssize_t beacon_store(struct device *dev, struct device_attribute *attr,
++ const char *buf, size_t len)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+ int err = 0;
+@@ -244,8 +244,8 @@ static ssize_t qlcnic_store_beacon(struct device *dev,
+ return err;
+ }
+
+-static ssize_t qlcnic_show_beacon(struct device *dev,
+- struct device_attribute *attr, char *buf)
++static ssize_t beacon_show(struct device *dev, struct device_attribute *attr,
++ char *buf)
+ {
+ struct qlcnic_adapter *adapter = dev_get_drvdata(dev);
+
+@@ -273,6 +273,7 @@ static int qlcnic_sysfs_validate_crb(struct qlcnic_adapter *adapter,
+
+ return 0;
+ }
++static DEVICE_ATTR_RW(beacon);
+
+ static ssize_t qlcnic_sysfs_read_crb(struct file *filp, struct kobject *kobj,
+ struct bin_attribute *attr, char *buf,
+@@ -1155,24 +1156,6 @@ static ssize_t qlcnic_83xx_sysfs_flash_write_handler(struct file *filp,
+ return size;
+ }
+
+-static struct device_attribute dev_attr_bridged_mode = {
+- .attr = {.name = "bridged_mode", .mode = (S_IRUGO | S_IWUSR)},
+- .show = qlcnic_show_bridged_mode,
+- .store = qlcnic_store_bridged_mode,
+-};
+-
+-static struct device_attribute dev_attr_diag_mode = {
+- .attr = {.name = "diag_mode", .mode = (S_IRUGO | S_IWUSR)},
+- .show = qlcnic_show_diag_mode,
+- .store = qlcnic_store_diag_mode,
+-};
+-
+-static struct device_attribute dev_attr_beacon = {
+- .attr = {.name = "beacon", .mode = (S_IRUGO | S_IWUSR)},
+- .show = qlcnic_show_beacon,
+- .store = qlcnic_store_beacon,
+-};
+-
+ static struct bin_attribute bin_attr_crb = {
+ .attr = {.name = "crb", .mode = (S_IRUGO | S_IWUSR)},
+ .size = 0,
+@@ -1236,6 +1219,24 @@ static struct bin_attribute bin_attr_flash = {
+ .write = qlcnic_83xx_sysfs_flash_write_handler,
+ };
+
++static struct attribute *qlcnic_attrs[] = {
++ &dev_attr_diag_mode.attr,
++ NULL,
++};
++
++static struct bin_attribute *qlcnic_bin_attrs[] = {
++ &bin_attr_esw_config,
++ &bin_attr_pm_config,
++ &bin_attr_flash,
++ NULL,
++};
++
++static const struct attribute_group qlcnic_attr = {
++ .attrs = qlcnic_attrs,
++ .bin_attrs = qlcnic_bin_attrs,
++};
++
++
+ void qlcnic_create_sysfs_entries(struct qlcnic_adapter *adapter)
+ {
+ struct device *dev = &adapter->pdev->dev;
+@@ -1257,6 +1258,11 @@ void qlcnic_remove_sysfs_entries(struct qlcnic_adapter *adapter)
+ void qlcnic_create_diag_entries(struct qlcnic_adapter *adapter)
+ {
+ struct device *dev = &adapter->pdev->dev;
++ int err;
++
++ err = sysfs_create_group(&dev->kobj, &qlcnic_attr);
++ if (err)
++ dev_err(dev, "error creating sysfs files\n");
+
+ if (device_create_bin_file(dev, &bin_attr_port_stats))
+ dev_info(dev, "failed to create port stats sysfs entry");