diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-08-19 13:08:29 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-08-19 13:08:29 -0700 |
commit | ae3ba29a2406de6ae1feeb75fc7a0bb4dee7e3fd (patch) | |
tree | 20e92086f9a03ef3246cd19973446efdb4dd7d32 /qlcnic_sysfs.patch | |
parent | 886aa559b9da994df968a7f2ddfd37f626d70436 (diff) | |
download | patches-ae3ba29a2406de6ae1feeb75fc7a0bb4dee7e3fd.tar.gz |
2 more patches
Diffstat (limited to 'qlcnic_sysfs.patch')
-rw-r--r-- | qlcnic_sysfs.patch | 153 |
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"); |