diff options
Diffstat (limited to 'drivers/i2c/i2c-dev.c')
| -rw-r--r-- | drivers/i2c/i2c-dev.c | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c index c3ccdea3d18..80b47e8ce03 100644 --- a/drivers/i2c/i2c-dev.c +++ b/drivers/i2c/i2c-dev.c @@ -102,8 +102,8 @@ static void return_i2c_dev(struct i2c_dev *i2c_dev)  	kfree(i2c_dev);  } -static ssize_t show_adapter_name(struct device *dev, -				 struct device_attribute *attr, char *buf) +static ssize_t name_show(struct device *dev, +			 struct device_attribute *attr, char *buf)  {  	struct i2c_dev *i2c_dev = i2c_dev_get_by_minor(MINOR(dev->devt)); @@ -111,7 +111,13 @@ static ssize_t show_adapter_name(struct device *dev,  		return -ENODEV;  	return sprintf(buf, "%s\n", i2c_dev->adap->name);  } -static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL); +static DEVICE_ATTR_RO(name); + +static struct attribute *i2c_attrs[] = { +	&dev_attr_name.attr, +	NULL, +}; +ATTRIBUTE_GROUPS(i2c);  /* ------------------------------------------------------------------------- */ @@ -562,15 +568,10 @@ static int i2cdev_attach_adapter(struct device *dev, void *dummy)  		res = PTR_ERR(i2c_dev->dev);  		goto error;  	} -	res = device_create_file(i2c_dev->dev, &dev_attr_name); -	if (res) -		goto error_destroy;  	pr_debug("i2c-dev: adapter [%s] registered as minor %d\n",  		 adap->name, adap->nr);  	return 0; -error_destroy: -	device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr));  error:  	return_i2c_dev(i2c_dev);  	return res; @@ -589,7 +590,6 @@ static int i2cdev_detach_adapter(struct device *dev, void *dummy)  	if (!i2c_dev) /* attach_adapter must have failed */  		return 0; -	device_remove_file(i2c_dev->dev, &dev_attr_name);  	return_i2c_dev(i2c_dev);  	device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr)); @@ -637,6 +637,7 @@ static int __init i2c_dev_init(void)  		res = PTR_ERR(i2c_dev_class);  		goto out_unreg_chrdev;  	} +	i2c_dev_class->dev_groups = i2c_groups;  	/* Keep track of adapters which will be added or removed later */  	res = bus_register_notifier(&i2c_bus_type, &i2cdev_notifier);  | 
