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);
 

Attachment: signature.asc
Description: Digital signature

Reply via email to