Hello. On Sat, 2007-03-24 at 16:14, Stefan Schmidt wrote: > > On Sat, 2007-03-24 at 13:36, Arnaud Patard wrote: > > > > doh... 5 calls to device_create_file() ... now, with the checks, that > > begins to be ugly. Please consider the use of sysfs_create_group() > > instead. > > Goof point. I was not aware of sysfs_create_group(). I'll look into > it.
New version with sysfs_{create, remove}_group attched.
regards
Stefan Schmidt
Index: linux-2.6.20.2/drivers/spi/jbt6k74.c
===================================================================
--- linux-2.6.20.2.orig/drivers/spi/jbt6k74.c 2007-03-23 21:55:38.000000000 +0100
+++ linux-2.6.20.2/drivers/spi/jbt6k74.c 2007-03-25 17:35:19.000000000 +0200
@@ -409,6 +409,20 @@
static DEVICE_ATTR(gamma_inclination, 0644, gamma_read, gamma_write);
static DEVICE_ATTR(gamma_blue_offset, 0644, gamma_read, gamma_write);
+static struct attribute *jbt_sysfs_entries[] = {
+ &dev_attr_state.attr,
+ &dev_attr_gamma_fine1.attr,
+ &dev_attr_gamma_fine2.attr,
+ &dev_attr_gamma_inclination.attr,
+ &dev_attr_gamma_blue_offset.attr,
+ NULL
+};
+
+static struct attribute_group jbt_attribute_group = {
+ .name = NULL, /* put in device directory */
+ .attrs = jbt_sysfs_entries,
+};
+
/* linux device model infrastructure */
static int __devinit jbt_probe(struct spi_device *spi)
@@ -445,11 +459,10 @@
}
jbt6k74_display_onoff(jbt, 1);
- device_create_file(&spi->dev, &dev_attr_state);
- device_create_file(&spi->dev, &dev_attr_gamma_fine1);
- device_create_file(&spi->dev, &dev_attr_gamma_fine2);
- device_create_file(&spi->dev, &dev_attr_gamma_inclination);
- device_create_file(&spi->dev, &dev_attr_gamma_blue_offset);
+ rc = sysfs_create_group(&spi->dev.kobj, &jbt_attribute_group);
+ if (rc) {
+ printk(KERN_WARNING "jbt6k74: creating sysfs files failed\n");
+ }
return 0;
}
@@ -460,11 +473,7 @@
DEBUGP("entering\n");
- device_remove_file(&spi->dev, &dev_attr_state);
- device_remove_file(&spi->dev, &dev_attr_gamma_fine1);
- device_remove_file(&spi->dev, &dev_attr_gamma_fine2);
- device_remove_file(&spi->dev, &dev_attr_gamma_inclination);
- device_remove_file(&spi->dev, &dev_attr_gamma_blue_offset);
+ sysfs_remove_group(&spi->dev.kobj, &jbt_attribute_group);
kfree(jbt);
signature.asc
Description: Digital signature
