Commit 0933e2d9 authored by Andi Kleen's avatar Andi Kleen Committed by Greg Kroah-Hartman

driver core: Convert some drivers to CLASS_ATTR_STRING

Convert some drivers who export a single string as class attribute
to the new class_attr_string functions. This removes redundant
code all over.
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 869dfc87
...@@ -70,20 +70,17 @@ static int drm_class_resume(struct device *dev) ...@@ -70,20 +70,17 @@ static int drm_class_resume(struct device *dev)
return 0; return 0;
} }
/* Display the version of drm_core. This doesn't work right in current design */
static ssize_t version_show(struct class *dev, struct class_attribute *attr,
char *buf)
{
return sprintf(buf, "%s %d.%d.%d %s\n", CORE_NAME, CORE_MAJOR,
CORE_MINOR, CORE_PATCHLEVEL, CORE_DATE);
}
static char *drm_devnode(struct device *dev, mode_t *mode) static char *drm_devnode(struct device *dev, mode_t *mode)
{ {
return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev)); return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev));
} }
static CLASS_ATTR(version, S_IRUGO, version_show, NULL); static CLASS_ATTR_STRING(version, S_IRUGO,
CORE_NAME " "
__stringify(CORE_MAJOR) "."
__stringify(CORE_MINOR) "."
__stringify(CORE_PATCHLEVEL) " "
CORE_DATE);
/** /**
* drm_sysfs_create - create a struct drm_sysfs_class structure * drm_sysfs_create - create a struct drm_sysfs_class structure
...@@ -110,7 +107,7 @@ struct class *drm_sysfs_create(struct module *owner, char *name) ...@@ -110,7 +107,7 @@ struct class *drm_sysfs_create(struct module *owner, char *name)
class->suspend = drm_class_suspend; class->suspend = drm_class_suspend;
class->resume = drm_class_resume; class->resume = drm_class_resume;
err = class_create_file(class, &class_attr_version); err = class_create_file(class, &class_attr_version.attr);
if (err) if (err)
goto err_out_class; goto err_out_class;
...@@ -133,7 +130,7 @@ void drm_sysfs_destroy(void) ...@@ -133,7 +130,7 @@ void drm_sysfs_destroy(void)
{ {
if ((drm_class == NULL) || (IS_ERR(drm_class))) if ((drm_class == NULL) || (IS_ERR(drm_class)))
return; return;
class_remove_file(drm_class, &class_attr_version); class_remove_file(drm_class, &class_attr_version.attr);
class_destroy(drm_class); class_destroy(drm_class);
} }
......
...@@ -1336,13 +1336,8 @@ static void ib_ucm_remove_one(struct ib_device *device) ...@@ -1336,13 +1336,8 @@ static void ib_ucm_remove_one(struct ib_device *device)
device_unregister(&ucm_dev->dev); device_unregister(&ucm_dev->dev);
} }
static ssize_t show_abi_version(struct class *class, static CLASS_ATTR_STRING(abi_version, S_IRUGO,
struct class_attribute *attr, __stringify(IB_USER_CM_ABI_VERSION));
char *buf)
{
return sprintf(buf, "%d\n", IB_USER_CM_ABI_VERSION);
}
static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
static int __init ib_ucm_init(void) static int __init ib_ucm_init(void)
{ {
...@@ -1355,7 +1350,7 @@ static int __init ib_ucm_init(void) ...@@ -1355,7 +1350,7 @@ static int __init ib_ucm_init(void)
goto error1; goto error1;
} }
ret = class_create_file(&cm_class, &class_attr_abi_version); ret = class_create_file(&cm_class, &class_attr_abi_version.attr);
if (ret) { if (ret) {
printk(KERN_ERR "ucm: couldn't create abi_version attribute\n"); printk(KERN_ERR "ucm: couldn't create abi_version attribute\n");
goto error2; goto error2;
...@@ -1369,7 +1364,7 @@ static int __init ib_ucm_init(void) ...@@ -1369,7 +1364,7 @@ static int __init ib_ucm_init(void)
return 0; return 0;
error3: error3:
class_remove_file(&cm_class, &class_attr_abi_version); class_remove_file(&cm_class, &class_attr_abi_version.attr);
error2: error2:
unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES); unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES);
error1: error1:
...@@ -1379,7 +1374,7 @@ error1: ...@@ -1379,7 +1374,7 @@ error1:
static void __exit ib_ucm_cleanup(void) static void __exit ib_ucm_cleanup(void)
{ {
ib_unregister_client(&ucm_client); ib_unregister_client(&ucm_client);
class_remove_file(&cm_class, &class_attr_abi_version); class_remove_file(&cm_class, &class_attr_abi_version.attr);
unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES); unregister_chrdev_region(IB_UCM_BASE_DEV, IB_UCM_MAX_DEVICES);
if (overflow_maj) if (overflow_maj)
unregister_chrdev_region(overflow_maj, IB_UCM_MAX_DEVICES); unregister_chrdev_region(overflow_maj, IB_UCM_MAX_DEVICES);
......
...@@ -965,13 +965,8 @@ static ssize_t show_port(struct device *dev, struct device_attribute *attr, ...@@ -965,13 +965,8 @@ static ssize_t show_port(struct device *dev, struct device_attribute *attr,
} }
static DEVICE_ATTR(port, S_IRUGO, show_port, NULL); static DEVICE_ATTR(port, S_IRUGO, show_port, NULL);
static ssize_t show_abi_version(struct class *class, static CLASS_ATTR_STRING(abi_version, S_IRUGO,
struct class_attribute *attr, __stringify(IB_USER_MAD_ABI_VERSION));
char *buf)
{
return sprintf(buf, "%d\n", IB_USER_MAD_ABI_VERSION);
}
static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
static dev_t overflow_maj; static dev_t overflow_maj;
static DECLARE_BITMAP(overflow_map, IB_UMAD_MAX_PORTS); static DECLARE_BITMAP(overflow_map, IB_UMAD_MAX_PORTS);
...@@ -1196,7 +1191,7 @@ static int __init ib_umad_init(void) ...@@ -1196,7 +1191,7 @@ static int __init ib_umad_init(void)
goto out_chrdev; goto out_chrdev;
} }
ret = class_create_file(umad_class, &class_attr_abi_version); ret = class_create_file(umad_class, &class_attr_abi_version.attr);
if (ret) { if (ret) {
printk(KERN_ERR "user_mad: couldn't create abi_version attribute\n"); printk(KERN_ERR "user_mad: couldn't create abi_version attribute\n");
goto out_class; goto out_class;
......
...@@ -691,13 +691,8 @@ static ssize_t show_dev_abi_version(struct device *device, ...@@ -691,13 +691,8 @@ static ssize_t show_dev_abi_version(struct device *device,
} }
static DEVICE_ATTR(abi_version, S_IRUGO, show_dev_abi_version, NULL); static DEVICE_ATTR(abi_version, S_IRUGO, show_dev_abi_version, NULL);
static ssize_t show_abi_version(struct class *class, static CLASS_ATTR_STRING(abi_version, S_IRUGO,
struct class_attribute *attr, __stringify(IB_USER_VERBS_ABI_VERSION));
char *buf)
{
return sprintf(buf, "%d\n", IB_USER_VERBS_ABI_VERSION);
}
static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
static dev_t overflow_maj; static dev_t overflow_maj;
static DECLARE_BITMAP(overflow_map, IB_UVERBS_MAX_DEVICES); static DECLARE_BITMAP(overflow_map, IB_UVERBS_MAX_DEVICES);
...@@ -843,7 +838,7 @@ static int __init ib_uverbs_init(void) ...@@ -843,7 +838,7 @@ static int __init ib_uverbs_init(void)
goto out_chrdev; goto out_chrdev;
} }
ret = class_create_file(uverbs_class, &class_attr_abi_version); ret = class_create_file(uverbs_class, &class_attr_abi_version.attr);
if (ret) { if (ret) {
printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n"); printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n");
goto out_class; goto out_class;
......
...@@ -497,12 +497,7 @@ static struct pci_driver phantom_pci_driver = { ...@@ -497,12 +497,7 @@ static struct pci_driver phantom_pci_driver = {
.resume = phantom_resume .resume = phantom_resume
}; };
static ssize_t phantom_show_version(struct class *cls, struct class_attribute *attr, char *buf) static CLASS_ATTR_STRING(version, 0444, PHANTOM_VERSION);
{
return sprintf(buf, PHANTOM_VERSION "\n");
}
static CLASS_ATTR(version, 0444, phantom_show_version, NULL);
static int __init phantom_init(void) static int __init phantom_init(void)
{ {
...@@ -515,7 +510,7 @@ static int __init phantom_init(void) ...@@ -515,7 +510,7 @@ static int __init phantom_init(void)
printk(KERN_ERR "phantom: can't register phantom class\n"); printk(KERN_ERR "phantom: can't register phantom class\n");
goto err; goto err;
} }
retval = class_create_file(phantom_class, &class_attr_version); retval = class_create_file(phantom_class, &class_attr_version.attr);
if (retval) { if (retval) {
printk(KERN_ERR "phantom: can't create sysfs version file\n"); printk(KERN_ERR "phantom: can't create sysfs version file\n");
goto err_class; goto err_class;
...@@ -541,7 +536,7 @@ static int __init phantom_init(void) ...@@ -541,7 +536,7 @@ static int __init phantom_init(void)
err_unchr: err_unchr:
unregister_chrdev_region(dev, PHANTOM_MAX_MINORS); unregister_chrdev_region(dev, PHANTOM_MAX_MINORS);
err_attr: err_attr:
class_remove_file(phantom_class, &class_attr_version); class_remove_file(phantom_class, &class_attr_version.attr);
err_class: err_class:
class_destroy(phantom_class); class_destroy(phantom_class);
err: err:
...@@ -554,7 +549,7 @@ static void __exit phantom_exit(void) ...@@ -554,7 +549,7 @@ static void __exit phantom_exit(void)
unregister_chrdev_region(MKDEV(phantom_major, 0), PHANTOM_MAX_MINORS); unregister_chrdev_region(MKDEV(phantom_major, 0), PHANTOM_MAX_MINORS);
class_remove_file(phantom_class, &class_attr_version); class_remove_file(phantom_class, &class_attr_version.attr);
class_destroy(phantom_class); class_destroy(phantom_class);
pr_debug("phantom: module successfully removed\n"); pr_debug("phantom: module successfully removed\n");
......
...@@ -770,15 +770,8 @@ static struct usb_driver oled_driver = { ...@@ -770,15 +770,8 @@ static struct usb_driver oled_driver = {
.id_table = id_table, .id_table = id_table,
}; };
static ssize_t version_show(struct class *dev, static CLASS_ATTR_STRING(version, S_IRUGO,
struct class_attribute *attr, ASUS_OLED_UNDERSCORE_NAME " " ASUS_OLED_VERSION);
char *buf)
{
return sprintf(buf, ASUS_OLED_UNDERSCORE_NAME " %s\n",
ASUS_OLED_VERSION);
}
static CLASS_ATTR(version, S_IRUGO, version_show, NULL);
static int __init asus_oled_init(void) static int __init asus_oled_init(void)
{ {
...@@ -790,7 +783,7 @@ static int __init asus_oled_init(void) ...@@ -790,7 +783,7 @@ static int __init asus_oled_init(void)
return PTR_ERR(oled_class); return PTR_ERR(oled_class);
} }
retval = class_create_file(oled_class, &class_attr_version); retval = class_create_file(oled_class, &class_attr_version.attr);
if (retval) { if (retval) {
err("Error creating class version file"); err("Error creating class version file");
goto error; goto error;
...@@ -812,7 +805,7 @@ error: ...@@ -812,7 +805,7 @@ error:
static void __exit asus_oled_exit(void) static void __exit asus_oled_exit(void)
{ {
class_remove_file(oled_class, &class_attr_version); class_remove_file(oled_class, &class_attr_version.attr);
class_destroy(oled_class); class_destroy(oled_class);
usb_deregister(&oled_driver); usb_deregister(&oled_driver);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment