All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <2538186705051703415ce2e2@mail.gmail.com>

diff --git a/a/1.txt b/N1/1.txt
index 706716c..a04697f 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,29 +1,3 @@
 Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
 
 ---
--------------- next part --------------
- adm1031.c |   44 ++++++++++++++++++++++----------------------
- asb100.c  |   46 +++++++++++++++++++++++-----------------------
- ds1621.c  |    6 +++---
- fscher.c  |    8 ++++----
- fscpos.c  |   16 ++++++++--------
- gl518sm.c |   12 ++++++------
- gl520sm.c |    8 ++++----
- it87.c    |   50 +++++++++++++++++++++++++-------------------------
- lm63.c    |   24 ++++++++++++------------
- lm75.c    |    4 ++--
- 10 files changed, 109 insertions(+), 109 deletions(-)
-
-
--------------- next part --------------
-A non-text attachment was scrubbed...
-Name: patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff
-Type: text/x-patch
-Size: 38922 bytes
-Desc: not available
-Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050517/b544693e/patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.bin
--------------- next part --------------
-_______________________________________________
-lm-sensors mailing list
-lm-sensors@lm-sensors.org
-http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
diff --git a/N1/2.hdr b/N1/2.hdr
new file mode 100644
index 0000000..a8cd3f6
--- /dev/null
+++ b/N1/2.hdr
@@ -0,0 +1,4 @@
+Content-Type: text/plain; 
+	name=patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff.diffstat.txt; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Content-Disposition: attachment; filename="patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff.diffstat.txt"
diff --git a/N1/2.txt b/N1/2.txt
new file mode 100644
index 0000000..75a6c24
--- /dev/null
+++ b/N1/2.txt
@@ -0,0 +1,11 @@
+ adm1031.c |   44 ++++++++++++++++++++++----------------------
+ asb100.c  |   46 +++++++++++++++++++++++-----------------------
+ ds1621.c  |    6 +++---
+ fscher.c  |    8 ++++----
+ fscpos.c  |   16 ++++++++--------
+ gl518sm.c |   12 ++++++------
+ gl520sm.c |    8 ++++----
+ it87.c    |   50 +++++++++++++++++++++++++-------------------------
+ lm63.c    |   24 ++++++++++++------------
+ lm75.c    |    4 ++--
+ 10 files changed, 109 insertions(+), 109 deletions(-)
diff --git a/N1/3.hdr b/N1/3.hdr
new file mode 100644
index 0000000..c2e55df
--- /dev/null
+++ b/N1/3.hdr
@@ -0,0 +1,4 @@
+Content-Type: text/x-patch; 
+	name=patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Content-Disposition: attachment; filename="patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff"
diff --git a/N1/3.txt b/N1/3.txt
new file mode 100644
index 0000000..781d66e
--- /dev/null
+++ b/N1/3.txt
@@ -0,0 +1,816 @@
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/adm1031.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/adm1031.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/adm1031.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/adm1031.c	2005-05-16 23:45:52.000000000 -0400
+@@ -292,11 +292,11 @@ set_fan_auto_channel(struct device *dev,
+ }
+ 
+ #define fan_auto_channel_offset(offset)						\
+-static ssize_t show_fan_auto_channel_##offset (struct device *dev, char *buf)	\
++static ssize_t show_fan_auto_channel_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {										\
+ 	return show_fan_auto_channel(dev, buf, offset - 1);			\
+ }										\
+-static ssize_t set_fan_auto_channel_##offset (struct device *dev,		\
++static ssize_t set_fan_auto_channel_##offset (struct device *dev, struct device_attribute *attr,		\
+ 	const char *buf, size_t count)						\
+ {										\
+ 	return set_fan_auto_channel(dev, buf, count, offset - 1);		\
+@@ -357,24 +357,24 @@ set_auto_temp_max(struct device *dev, co
+ }
+ 
+ #define auto_temp_reg(offset)							\
+-static ssize_t show_auto_temp_##offset##_off (struct device *dev, char *buf)	\
++static ssize_t show_auto_temp_##offset##_off (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {										\
+ 	return show_auto_temp_off(dev, buf, offset - 1);			\
+ }										\
+-static ssize_t show_auto_temp_##offset##_min (struct device *dev, char *buf)	\
++static ssize_t show_auto_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {										\
+ 	return show_auto_temp_min(dev, buf, offset - 1);			\
+ }										\
+-static ssize_t show_auto_temp_##offset##_max (struct device *dev, char *buf)	\
++static ssize_t show_auto_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {										\
+ 	return show_auto_temp_max(dev, buf, offset - 1);			\
+ }										\
+-static ssize_t set_auto_temp_##offset##_min (struct device *dev,		\
++static ssize_t set_auto_temp_##offset##_min (struct device *dev, struct device_attribute *attr,		\
+ 					     const char *buf, size_t count)	\
+ {										\
+ 	return set_auto_temp_min(dev, buf, count, offset - 1);		\
+ }										\
+-static ssize_t set_auto_temp_##offset##_max (struct device *dev,		\
++static ssize_t set_auto_temp_##offset##_max (struct device *dev, struct device_attribute *attr,		\
+ 					     const char *buf, size_t count)	\
+ {										\
+ 	return set_auto_temp_max(dev, buf, count, offset - 1);		\
+@@ -421,11 +421,11 @@ set_pwm(struct device *dev, const char *
+ }
+ 
+ #define pwm_reg(offset)							\
+-static ssize_t show_pwm_##offset (struct device *dev, char *buf)	\
++static ssize_t show_pwm_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_pwm(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t set_pwm_##offset (struct device *dev,			\
++static ssize_t set_pwm_##offset (struct device *dev, struct device_attribute *attr,			\
+ 				 const char *buf, size_t count)		\
+ {									\
+ 	return set_pwm(dev, buf, count, offset - 1);		\
+@@ -557,24 +557,24 @@ set_fan_div(struct device *dev, const ch
+ }
+ 
+ #define fan_offset(offset)						\
+-static ssize_t show_fan_##offset (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t show_fan_##offset##_min (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan_min(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t show_fan_##offset##_div (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset##_div (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan_div(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t set_fan_##offset##_min (struct device *dev,		\
++static ssize_t set_fan_##offset##_min (struct device *dev, struct device_attribute *attr,		\
+ 	const char *buf, size_t count)					\
+ {									\
+ 	return set_fan_min(dev, buf, count, offset - 1);		\
+ }									\
+-static ssize_t set_fan_##offset##_div (struct device *dev,		\
++static ssize_t set_fan_##offset##_div (struct device *dev, struct device_attribute *attr,		\
+ 	const char *buf, size_t count)					\
+ {									\
+ 	return set_fan_div(dev, buf, count, offset - 1);		\
+@@ -667,33 +667,33 @@ set_temp_crit(struct device *dev, const 
+ }
+ 
+ #define temp_reg(offset)							\
+-static ssize_t show_temp_##offset (struct device *dev, char *buf)		\
++static ssize_t show_temp_##offset (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {										\
+ 	return show_temp(dev, buf, offset - 1);				\
+ }										\
+-static ssize_t show_temp_##offset##_min (struct device *dev, char *buf)		\
++static ssize_t show_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {										\
+ 	return show_temp_min(dev, buf, offset - 1);				\
+ }										\
+-static ssize_t show_temp_##offset##_max (struct device *dev, char *buf)		\
++static ssize_t show_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {										\
+ 	return show_temp_max(dev, buf, offset - 1);				\
+ }										\
+-static ssize_t show_temp_##offset##_crit (struct device *dev, char *buf)	\
++static ssize_t show_temp_##offset##_crit (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {										\
+ 	return show_temp_crit(dev, buf, offset - 1);			\
+ }										\
+-static ssize_t set_temp_##offset##_min (struct device *dev,			\
++static ssize_t set_temp_##offset##_min (struct device *dev, struct device_attribute *attr,			\
+ 					const char *buf, size_t count)		\
+ {										\
+ 	return set_temp_min(dev, buf, count, offset - 1);			\
+ }										\
+-static ssize_t set_temp_##offset##_max (struct device *dev,			\
++static ssize_t set_temp_##offset##_max (struct device *dev, struct device_attribute *attr,			\
+ 					const char *buf, size_t count)		\
+ {										\
+ 	return set_temp_max(dev, buf, count, offset - 1);			\
+ }										\
+-static ssize_t set_temp_##offset##_crit (struct device *dev,			\
++static ssize_t set_temp_##offset##_crit (struct device *dev, struct device_attribute *attr,			\
+ 					 const char *buf, size_t count)		\
+ {										\
+ 	return set_temp_crit(dev, buf, count, offset - 1);			\
+@@ -712,7 +712,7 @@ temp_reg(2);
+ temp_reg(3);
+ 
+ /* Alarms */
+-static ssize_t show_alarms(struct device *dev, char *buf)
++static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct adm1031_data *data = adm1031_update_device(dev);
+ 	return sprintf(buf, "%d\n", data->alarm);
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/asb100.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/asb100.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/asb100.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/asb100.c	2005-05-16 23:45:52.000000000 -0400
+@@ -260,28 +260,28 @@ set_in_reg(MAX, max)
+ 
+ #define sysfs_in(offset) \
+ static ssize_t \
+-	show_in##offset (struct device *dev, char *buf) \
++	show_in##offset (struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_in(dev, buf, offset); \
+ } \
+ static DEVICE_ATTR(in##offset##_input, S_IRUGO, \
+ 		show_in##offset, NULL); \
+ static ssize_t \
+-	show_in##offset##_min (struct device *dev, char *buf) \
++	show_in##offset##_min (struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_in_min(dev, buf, offset); \
+ } \
+ static ssize_t \
+-	show_in##offset##_max (struct device *dev, char *buf) \
++	show_in##offset##_max (struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_in_max(dev, buf, offset); \
+ } \
+-static ssize_t set_in##offset##_min (struct device *dev, \
++static ssize_t set_in##offset##_min (struct device *dev, struct device_attribute *attr, \
+ 		const char *buf, size_t count) \
+ { \
+ 	return set_in_min(dev, buf, count, offset); \
+ } \
+-static ssize_t set_in##offset##_max (struct device *dev, \
++static ssize_t set_in##offset##_max (struct device *dev, struct device_attribute *attr, \
+ 		const char *buf, size_t count) \
+ { \
+ 	return set_in_max(dev, buf, count, offset); \
+@@ -389,24 +389,24 @@ static ssize_t set_fan_div(struct device
+ }
+ 
+ #define sysfs_fan(offset) \
+-static ssize_t show_fan##offset(struct device *dev, char *buf) \
++static ssize_t show_fan##offset(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_fan(dev, buf, offset - 1); \
+ } \
+-static ssize_t show_fan##offset##_min(struct device *dev, char *buf) \
++static ssize_t show_fan##offset##_min(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_fan_min(dev, buf, offset - 1); \
+ } \
+-static ssize_t show_fan##offset##_div(struct device *dev, char *buf) \
++static ssize_t show_fan##offset##_div(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_fan_div(dev, buf, offset - 1); \
+ } \
+-static ssize_t set_fan##offset##_min(struct device *dev, const char *buf, \
++static ssize_t set_fan##offset##_min(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 					size_t count) \
+ { \
+ 	return set_fan_min(dev, buf, count, offset - 1); \
+ } \
+-static ssize_t set_fan##offset##_div(struct device *dev, const char *buf, \
++static ssize_t set_fan##offset##_div(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 					size_t count) \
+ { \
+ 	return set_fan_div(dev, buf, count, offset - 1); \
+@@ -482,27 +482,27 @@ set_temp_reg(MAX, temp_max);
+ set_temp_reg(HYST, temp_hyst);
+ 
+ #define sysfs_temp(num) \
+-static ssize_t show_temp##num(struct device *dev, char *buf) \
++static ssize_t show_temp##num(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_temp(dev, buf, num-1); \
+ } \
+ static DEVICE_ATTR(temp##num##_input, S_IRUGO, show_temp##num, NULL); \
+-static ssize_t show_temp_max##num(struct device *dev, char *buf) \
++static ssize_t show_temp_max##num(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_temp_max(dev, buf, num-1); \
+ } \
+-static ssize_t set_temp_max##num(struct device *dev, const char *buf, \
++static ssize_t set_temp_max##num(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 					size_t count) \
+ { \
+ 	return set_temp_max(dev, buf, count, num-1); \
+ } \
+ static DEVICE_ATTR(temp##num##_max, S_IRUGO | S_IWUSR, \
+ 		show_temp_max##num, set_temp_max##num); \
+-static ssize_t show_temp_hyst##num(struct device *dev, char *buf) \
++static ssize_t show_temp_hyst##num(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	return show_temp_hyst(dev, buf, num-1); \
+ } \
+-static ssize_t set_temp_hyst##num(struct device *dev, const char *buf, \
++static ssize_t set_temp_hyst##num(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 					size_t count) \
+ { \
+ 	return set_temp_hyst(dev, buf, count, num-1); \
+@@ -522,7 +522,7 @@ sysfs_temp(4);
+ 	device_create_file(&client->dev, &dev_attr_temp##num##_max_hyst); \
+ } while (0)
+ 
+-static ssize_t show_vid(struct device *dev, char *buf)
++static ssize_t show_vid(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct asb100_data *data = asb100_update_device(dev);
+ 	return sprintf(buf, "%d\n", vid_from_reg(data->vid, data->vrm));
+@@ -533,13 +533,13 @@ static DEVICE_ATTR(cpu0_vid, S_IRUGO, sh
+ device_create_file(&client->dev, &dev_attr_cpu0_vid)
+ 
+ /* VRM */
+-static ssize_t show_vrm(struct device *dev, char *buf)
++static ssize_t show_vrm(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct asb100_data *data = asb100_update_device(dev);
+ 	return sprintf(buf, "%d\n", data->vrm);
+ }
+ 
+-static ssize_t set_vrm(struct device *dev, const char *buf, size_t count)
++static ssize_t set_vrm(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct asb100_data *data = i2c_get_clientdata(client);
+@@ -553,7 +553,7 @@ static DEVICE_ATTR(vrm, S_IRUGO | S_IWUS
+ #define device_create_file_vrm(client) \
+ device_create_file(&client->dev, &dev_attr_vrm);
+ 
+-static ssize_t show_alarms(struct device *dev, char *buf)
++static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct asb100_data *data = asb100_update_device(dev);
+ 	return sprintf(buf, "%d\n", ALARMS_FROM_REG(data->alarms));
+@@ -564,13 +564,13 @@ static DEVICE_ATTR(alarms, S_IRUGO, show
+ device_create_file(&client->dev, &dev_attr_alarms)
+ 
+ /* 1 PWM */
+-static ssize_t show_pwm1(struct device *dev, char *buf)
++static ssize_t show_pwm1(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct asb100_data *data = asb100_update_device(dev);
+ 	return sprintf(buf, "%d\n", ASB100_PWM_FROM_REG(data->pwm & 0x0f));
+ }
+ 
+-static ssize_t set_pwm1(struct device *dev, const char *buf, size_t count)
++static ssize_t set_pwm1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct asb100_data *data = i2c_get_clientdata(client);
+@@ -584,13 +584,13 @@ static ssize_t set_pwm1(struct device *d
+ 	return count;
+ }
+ 
+-static ssize_t show_pwm_enable1(struct device *dev, char *buf)
++static ssize_t show_pwm_enable1(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct asb100_data *data = asb100_update_device(dev);
+ 	return sprintf(buf, "%d\n", (data->pwm & 0x80) ? 1 : 0);
+ }
+ 
+-static ssize_t set_pwm_enable1(struct device *dev, const char *buf,
++static ssize_t set_pwm_enable1(struct device *dev, struct device_attribute *attr, const char *buf,
+ 				size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/ds1621.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/ds1621.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/ds1621.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/ds1621.c	2005-05-16 23:45:52.000000000 -0400
+@@ -137,7 +137,7 @@ static void ds1621_init_client(struct i2
+ }
+ 
+ #define show(value)							\
+-static ssize_t show_##value(struct device *dev, char *buf)		\
++static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	struct ds1621_data *data = ds1621_update_client(dev);		\
+ 	return sprintf(buf, "%d\n", LM75_TEMP_FROM_REG(data->value));	\
+@@ -148,7 +148,7 @@ show(temp_min);
+ show(temp_max);
+ 
+ #define set_temp(suffix, value, reg)					\
+-static ssize_t set_temp_##suffix(struct device *dev, const char *buf,	\
++static ssize_t set_temp_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,	\
+ 				 size_t count)				\
+ {									\
+ 	struct i2c_client *client = to_i2c_client(dev);			\
+@@ -165,7 +165,7 @@ static ssize_t set_temp_##suffix(struct 
+ set_temp(min, temp_min, DS1621_REG_TEMP_MIN);
+ set_temp(max, temp_max, DS1621_REG_TEMP_MAX);
+ 
+-static ssize_t show_alarms(struct device *dev, char *buf)
++static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct ds1621_data *data = ds1621_update_client(dev);
+ 	return sprintf(buf, "%d\n", ALARMS_FROM_REG(data->conf));
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscher.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscher.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscher.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscher.c	2005-05-16 23:45:52.000000000 -0400
+@@ -157,8 +157,8 @@ struct fscher_data {
+ 
+ #define sysfs_r(kind, sub, offset, reg) \
+ static ssize_t show_##kind##sub (struct fscher_data *, char *, int); \
+-static ssize_t show_##kind##offset##sub (struct device *, char *); \
+-static ssize_t show_##kind##offset##sub (struct device *dev, char *buf) \
++static ssize_t show_##kind##offset##sub (struct device *, struct device_attribute *attr, char *); \
++static ssize_t show_##kind##offset##sub (struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	struct fscher_data *data = fscher_update_device(dev); \
+ 	return show_##kind##sub(data, buf, (offset)); \
+@@ -166,8 +166,8 @@ static ssize_t show_##kind##offset##sub 
+ 
+ #define sysfs_w(kind, sub, offset, reg) \
+ static ssize_t set_##kind##sub (struct i2c_client *, struct fscher_data *, const char *, size_t, int, int); \
+-static ssize_t set_##kind##offset##sub (struct device *, const char *, size_t); \
+-static ssize_t set_##kind##offset##sub (struct device *dev, const char *buf, size_t count) \
++static ssize_t set_##kind##offset##sub (struct device *, struct device_attribute *attr, const char *, size_t); \
++static ssize_t set_##kind##offset##sub (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \
+ { \
+ 	struct i2c_client *client = to_i2c_client(dev); \
+ 	struct fscher_data *data = i2c_get_clientdata(client); \
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscpos.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscpos.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscpos.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscpos.c	2005-05-16 23:45:52.000000000 -0400
+@@ -245,19 +245,19 @@ static void reset_fan_alarm(struct i2c_c
+ /* Volts */
+ #define VOLT_FROM_REG(val, mult)	((val) * (mult) / 255)
+ 
+-static ssize_t show_volt_12(struct device *dev, char *buf)
++static ssize_t show_volt_12(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct fscpos_data *data = fscpos_update_device(dev);
+ 	return sprintf(buf, "%u\n", VOLT_FROM_REG(data->volt[0], 14200));
+ }
+ 
+-static ssize_t show_volt_5(struct device *dev, char *buf)
++static ssize_t show_volt_5(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct fscpos_data *data = fscpos_update_device(dev);
+ 	return sprintf(buf, "%u\n", VOLT_FROM_REG(data->volt[1], 6600));
+ }
+ 
+-static ssize_t show_volt_batt(struct device *dev, char *buf)
++static ssize_t show_volt_batt(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct fscpos_data *data = fscpos_update_device(dev);
+ 	return sprintf(buf, "%u\n", VOLT_FROM_REG(data->volt[2], 3300));
+@@ -327,7 +327,7 @@ static ssize_t set_wdog_preset(struct i2
+ }
+ 
+ /* Event */
+-static ssize_t show_event(struct device *dev, char *buf)
++static ssize_t show_event(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	/* bits 5..7 reserved => mask with 0x1f */
+ 	struct fscpos_data *data = fscpos_update_device(dev);
+@@ -338,14 +338,14 @@ static ssize_t show_event(struct device 
+  * Sysfs stuff
+  */
+ #define create_getter(kind, sub) \
+-	static ssize_t sysfs_show_##kind##sub(struct device *dev, char *buf) \
++	static ssize_t sysfs_show_##kind##sub(struct device *dev, struct device_attribute *attr, char *buf) \
+ 	{ \
+ 		struct fscpos_data *data = fscpos_update_device(dev); \
+ 		return show_##kind##sub(data, buf); \
+ 	}
+ 
+ #define create_getter_n(kind, offset, sub) \
+-	static ssize_t sysfs_show_##kind##offset##sub(struct device *dev, char\
++	static ssize_t sysfs_show_##kind##offset##sub(struct device *dev, struct device_attribute *attr, char\
+ 								 	*buf) \
+ 	{ \
+ 		struct fscpos_data *data = fscpos_update_device(dev); \
+@@ -353,7 +353,7 @@ static ssize_t show_event(struct device 
+ 	}
+ 
+ #define create_setter(kind, sub, reg) \
+-	static ssize_t sysfs_set_##kind##sub (struct device *dev, const char \
++	static ssize_t sysfs_set_##kind##sub (struct device *dev, struct device_attribute *attr, const char \
+ 							*buf, size_t count) \
+ 	{ \
+ 		struct i2c_client *client = to_i2c_client(dev); \
+@@ -362,7 +362,7 @@ static ssize_t show_event(struct device 
+ 	}
+ 
+ #define create_setter_n(kind, offset, sub, reg) \
+-	static ssize_t sysfs_set_##kind##offset##sub (struct device *dev, \
++	static ssize_t sysfs_set_##kind##offset##sub (struct device *dev, struct device_attribute *attr, \
+ 					const char *buf, size_t count) \
+ 	{ \
+ 		struct i2c_client *client = to_i2c_client(dev); \
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl518sm.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl518sm.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl518sm.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl518sm.c	2005-05-16 23:45:52.000000000 -0400
+@@ -164,14 +164,14 @@ static struct i2c_driver gl518_driver = 
+  */
+ 
+ #define show(type, suffix, value)					\
+-static ssize_t show_##suffix(struct device *dev, char *buf)		\
++static ssize_t show_##suffix(struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	struct gl518_data *data = gl518_update_device(dev);		\
+ 	return sprintf(buf, "%d\n", type##_FROM_REG(data->value));	\
+ }
+ 
+ #define show_fan(suffix, value, index)					\
+-static ssize_t show_##suffix(struct device *dev, char *buf)		\
++static ssize_t show_##suffix(struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	struct gl518_data *data = gl518_update_device(dev);		\
+ 	return sprintf(buf, "%d\n", FAN_FROM_REG(data->value[index],	\
+@@ -205,7 +205,7 @@ show(BOOL, beep_enable, beep_enable);
+ show(BEEP_MASK, beep_mask, beep_mask);
+ 
+ #define set(type, suffix, value, reg)					\
+-static ssize_t set_##suffix(struct device *dev, const char *buf,	\
++static ssize_t set_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,	\
+ 	size_t count)							\
+ {									\
+ 	struct i2c_client *client = to_i2c_client(dev);			\
+@@ -220,7 +220,7 @@ static ssize_t set_##suffix(struct devic
+ }
+ 
+ #define set_bits(type, suffix, value, reg, mask, shift)			\
+-static ssize_t set_##suffix(struct device *dev, const char *buf,	\
++static ssize_t set_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,	\
+ 	size_t count)							\
+ {									\
+ 	struct i2c_client *client = to_i2c_client(dev);			\
+@@ -258,7 +258,7 @@ set_high(IN, in_max3, voltage_max[3], GL
+ set_bits(BOOL, beep_enable, beep_enable, GL518_REG_CONF, 0x04, 2);
+ set(BEEP_MASK, beep_mask, beep_mask, GL518_REG_ALARM);
+ 
+-static ssize_t set_fan_min1(struct device *dev, const char *buf, size_t count)
++static ssize_t set_fan_min1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct gl518_data *data = i2c_get_clientdata(client);
+@@ -284,7 +284,7 @@ static ssize_t set_fan_min1(struct devic
+ 	return count;
+ }
+ 
+-static ssize_t set_fan_min2(struct device *dev, const char *buf, size_t count)
++static ssize_t set_fan_min2(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct gl518_data *data = i2c_get_clientdata(client);
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl520sm.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl520sm.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl520sm.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl520sm.c	2005-05-16 23:45:52.000000000 -0400
+@@ -148,8 +148,8 @@ struct gl520_data {
+ 
+ #define sysfs_r(type, n, item, reg) \
+ static ssize_t get_##type##item (struct gl520_data *, char *, int); \
+-static ssize_t get_##type##n##item (struct device *, char *); \
+-static ssize_t get_##type##n##item (struct device *dev, char *buf) \
++static ssize_t get_##type##n##item (struct device *, struct device_attribute *attr, char *); \
++static ssize_t get_##type##n##item (struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	struct gl520_data *data = gl520_update_device(dev); \
+ 	return get_##type##item(data, buf, (n)); \
+@@ -157,8 +157,8 @@ static ssize_t get_##type##n##item (stru
+ 
+ #define sysfs_w(type, n, item, reg) \
+ static ssize_t set_##type##item (struct i2c_client *, struct gl520_data *, const char *, size_t, int, int); \
+-static ssize_t set_##type##n##item (struct device *, const char *, size_t); \
+-static ssize_t set_##type##n##item (struct device *dev, const char *buf, size_t count) \
++static ssize_t set_##type##n##item (struct device *, struct device_attribute *attr, const char *, size_t); \
++static ssize_t set_##type##n##item (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \
+ { \
+ 	struct i2c_client *client = to_i2c_client(dev); \
+ 	struct gl520_data *data = i2c_get_clientdata(client); \
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/it87.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/it87.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/it87.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/it87.c	2005-05-16 23:45:52.000000000 -0400
+@@ -290,7 +290,7 @@ static ssize_t set_in_max(struct device 
+ 
+ #define show_in_offset(offset)					\
+ static ssize_t							\
+-	show_in##offset (struct device *dev, char *buf)		\
++	show_in##offset (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {								\
+ 	return show_in(dev, buf, offset);			\
+ }								\
+@@ -298,21 +298,21 @@ static DEVICE_ATTR(in##offset##_input, S
+ 
+ #define limit_in_offset(offset)					\
+ static ssize_t							\
+-	show_in##offset##_min (struct device *dev, char *buf)	\
++	show_in##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {								\
+ 	return show_in_min(dev, buf, offset);			\
+ }								\
+ static ssize_t							\
+-	show_in##offset##_max (struct device *dev, char *buf)	\
++	show_in##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {								\
+ 	return show_in_max(dev, buf, offset);			\
+ }								\
+-static ssize_t set_in##offset##_min (struct device *dev, 	\
++static ssize_t set_in##offset##_min (struct device *dev, struct device_attribute *attr, 	\
+ 		const char *buf, size_t count) 			\
+ {								\
+ 	return set_in_min(dev, buf, count, offset);		\
+ }								\
+-static ssize_t set_in##offset##_max (struct device *dev,	\
++static ssize_t set_in##offset##_max (struct device *dev, struct device_attribute *attr,	\
+ 			const char *buf, size_t count)		\
+ {								\
+ 	return set_in_max(dev, buf, count, offset);		\
+@@ -383,26 +383,26 @@ static ssize_t set_temp_min(struct devic
+ 	return count;
+ }
+ #define show_temp_offset(offset)					\
+-static ssize_t show_temp_##offset (struct device *dev, char *buf)	\
++static ssize_t show_temp_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_temp(dev, buf, offset - 1);				\
+ }									\
+ static ssize_t								\
+-show_temp_##offset##_max (struct device *dev, char *buf)		\
++show_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	return show_temp_max(dev, buf, offset - 1);			\
+ }									\
+ static ssize_t								\
+-show_temp_##offset##_min (struct device *dev, char *buf)		\
++show_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	return show_temp_min(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t set_temp_##offset##_max (struct device *dev, 		\
++static ssize_t set_temp_##offset##_max (struct device *dev, struct device_attribute *attr, 		\
+ 		const char *buf, size_t count) 				\
+ {									\
+ 	return set_temp_max(dev, buf, count, offset - 1);		\
+ }									\
+-static ssize_t set_temp_##offset##_min (struct device *dev, 		\
++static ssize_t set_temp_##offset##_min (struct device *dev, struct device_attribute *attr, 		\
+ 		const char *buf, size_t count) 				\
+ {									\
+ 	return set_temp_min(dev, buf, count, offset - 1);		\
+@@ -453,11 +453,11 @@ static ssize_t set_sensor(struct device 
+ 	return count;
+ }
+ #define show_sensor_offset(offset)					\
+-static ssize_t show_sensor_##offset (struct device *dev, char *buf)	\
++static ssize_t show_sensor_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_sensor(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t set_sensor_##offset (struct device *dev, 		\
++static ssize_t set_sensor_##offset (struct device *dev, struct device_attribute *attr, 		\
+ 		const char *buf, size_t count) 				\
+ {									\
+ 	return set_sensor(dev, buf, count, offset - 1);			\
+@@ -600,24 +600,24 @@ static ssize_t set_pwm(struct device *de
+ }
+ 
+ #define show_fan_offset(offset)						\
+-static ssize_t show_fan_##offset (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan(dev, buf, offset - 1);				\
+ }									\
+-static ssize_t show_fan_##offset##_min (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan_min(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t show_fan_##offset##_div (struct device *dev, char *buf)	\
++static ssize_t show_fan_##offset##_div (struct device *dev, struct device_attribute *attr, char *buf)	\
+ {									\
+ 	return show_fan_div(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t set_fan_##offset##_min (struct device *dev, 		\
++static ssize_t set_fan_##offset##_min (struct device *dev, struct device_attribute *attr, 		\
+ 	const char *buf, size_t count) 					\
+ {									\
+ 	return set_fan_min(dev, buf, count, offset - 1);		\
+ }									\
+-static ssize_t set_fan_##offset##_div (struct device *dev, 		\
++static ssize_t set_fan_##offset##_div (struct device *dev, struct device_attribute *attr, 		\
+ 		const char *buf, size_t count) 				\
+ {									\
+ 	return set_fan_div(dev, buf, count, offset - 1);		\
+@@ -633,21 +633,21 @@ show_fan_offset(2);
+ show_fan_offset(3);
+ 
+ #define show_pwm_offset(offset)						\
+-static ssize_t show_pwm##offset##_enable (struct device *dev,		\
++static ssize_t show_pwm##offset##_enable (struct device *dev, struct device_attribute *attr,		\
+ 	char *buf)							\
+ {									\
+ 	return show_pwm_enable(dev, buf, offset - 1);			\
+ }									\
+-static ssize_t show_pwm##offset (struct device *dev, char *buf)		\
++static ssize_t show_pwm##offset (struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	return show_pwm(dev, buf, offset - 1);				\
+ }									\
+-static ssize_t set_pwm##offset##_enable (struct device *dev,		\
++static ssize_t set_pwm##offset##_enable (struct device *dev, struct device_attribute *attr,		\
+ 		const char *buf, size_t count)				\
+ {									\
+ 	return set_pwm_enable(dev, buf, count, offset - 1);		\
+ }									\
+-static ssize_t set_pwm##offset (struct device *dev,			\
++static ssize_t set_pwm##offset (struct device *dev, struct device_attribute *attr,			\
+ 		const char *buf, size_t count)				\
+ {									\
+ 	return set_pwm(dev, buf, count, offset - 1);			\
+@@ -663,7 +663,7 @@ show_pwm_offset(2);
+ show_pwm_offset(3);
+ 
+ /* Alarms */
+-static ssize_t show_alarms(struct device *dev, char *buf)
++static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct it87_data *data = it87_update_device(dev);
+ 	return sprintf(buf,"%d\n", ALARMS_FROM_REG(data->alarms));
+@@ -671,13 +671,13 @@ static ssize_t show_alarms(struct device
+ static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL);
+ 
+ static ssize_t
+-show_vrm_reg(struct device *dev, char *buf)
++show_vrm_reg(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct it87_data *data = it87_update_device(dev);
+ 	return sprintf(buf, "%ld\n", (long) data->vrm);
+ }
+ static ssize_t
+-store_vrm_reg(struct device *dev, const char *buf, size_t count)
++store_vrm_reg(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct it87_data *data = i2c_get_clientdata(client);
+@@ -693,7 +693,7 @@ static DEVICE_ATTR(vrm, S_IRUGO | S_IWUS
+ device_create_file(&client->dev, &dev_attr_vrm)
+ 
+ static ssize_t
+-show_vid_reg(struct device *dev, char *buf)
++show_vid_reg(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct it87_data *data = it87_update_device(dev);
+ 	return sprintf(buf, "%ld\n", (long) vid_from_reg(data->vid, data->vrm));
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm63.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm63.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm63.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm63.c	2005-05-16 23:45:52.000000000 -0400
+@@ -177,7 +177,7 @@ struct lm63_data {
+  */
+ 
+ #define show_fan(value) \
+-static ssize_t show_##value(struct device *dev, char *buf) \
++static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	struct lm63_data *data = lm63_update_device(dev); \
+ 	return sprintf(buf, "%d\n", FAN_FROM_REG(data->value)); \
+@@ -185,7 +185,7 @@ static ssize_t show_##value(struct devic
+ show_fan(fan1_input);
+ show_fan(fan1_low);
+ 
+-static ssize_t set_fan1_low(struct device *dev, const char *buf,
++static ssize_t set_fan1_low(struct device *dev, struct device_attribute *attr, const char *buf,
+ 	size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+@@ -202,7 +202,7 @@ static ssize_t set_fan1_low(struct devic
+ 	return count;
+ }
+ 
+-static ssize_t show_pwm1(struct device *dev, char *buf)
++static ssize_t show_pwm1(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct lm63_data *data = lm63_update_device(dev);
+ 	return sprintf(buf, "%d\n", data->pwm1_value >= 2 * data->pwm1_freq ?
+@@ -210,7 +210,7 @@ static ssize_t show_pwm1(struct device *
+ 		       (2 * data->pwm1_freq));
+ }
+ 
+-static ssize_t set_pwm1(struct device *dev, const char *buf, size_t count)
++static ssize_t set_pwm1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+ 	struct lm63_data *data = i2c_get_clientdata(client);
+@@ -229,20 +229,20 @@ static ssize_t set_pwm1(struct device *d
+ 	return count;
+ }
+ 
+-static ssize_t show_pwm1_enable(struct device *dev, char *buf)
++static ssize_t show_pwm1_enable(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct lm63_data *data = lm63_update_device(dev);
+ 	return sprintf(buf, "%d\n", data->config_fan & 0x20 ? 1 : 2);
+ }
+ 
+ #define show_temp8(value) \
+-static ssize_t show_##value(struct device *dev, char *buf) \
++static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	struct lm63_data *data = lm63_update_device(dev); \
+ 	return sprintf(buf, "%d\n", TEMP8_FROM_REG(data->value)); \
+ }
+ #define show_temp11(value) \
+-static ssize_t show_##value(struct device *dev, char *buf) \
++static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \
+ { \
+ 	struct lm63_data *data = lm63_update_device(dev); \
+ 	return sprintf(buf, "%d\n", TEMP11_FROM_REG(data->value)); \
+@@ -255,7 +255,7 @@ show_temp11(temp2_low);
+ show_temp8(temp2_crit);
+ 
+ #define set_temp8(value, reg) \
+-static ssize_t set_##value(struct device *dev, const char *buf, \
++static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 	size_t count) \
+ { \
+ 	struct i2c_client *client = to_i2c_client(dev); \
+@@ -269,7 +269,7 @@ static ssize_t set_##value(struct device
+ 	return count; \
+ }
+ #define set_temp11(value, reg_msb, reg_lsb) \
+-static ssize_t set_##value(struct device *dev, const char *buf, \
++static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, \
+ 	size_t count) \
+ { \
+ 	struct i2c_client *client = to_i2c_client(dev); \
+@@ -289,7 +289,7 @@ set_temp11(temp2_low, LM63_REG_REMOTE_LO
+ 
+ /* Hysteresis register holds a relative value, while we want to present
+    an absolute to user-space */
+-static ssize_t show_temp2_crit_hyst(struct device *dev, char *buf)
++static ssize_t show_temp2_crit_hyst(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct lm63_data *data = lm63_update_device(dev);
+ 	return sprintf(buf, "%d\n", TEMP8_FROM_REG(data->temp2_crit)
+@@ -298,7 +298,7 @@ static ssize_t show_temp2_crit_hyst(stru
+ 
+ /* And now the other way around, user-space provides an absolute
+    hysteresis value and we have to store a relative one */
+-static ssize_t set_temp2_crit_hyst(struct device *dev, const char *buf,
++static ssize_t set_temp2_crit_hyst(struct device *dev, struct device_attribute *attr, const char *buf,
+ 	size_t count)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
+@@ -314,7 +314,7 @@ static ssize_t set_temp2_crit_hyst(struc
+ 	return count;
+ }
+ 
+-static ssize_t show_alarms(struct device *dev, char *buf)
++static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ 	struct lm63_data *data = lm63_update_device(dev);
+ 	return sprintf(buf, "%u\n", data->alarms);
+diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm75.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm75.c
+--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm75.c	2005-05-16 20:35:33.000000000 -0400
++++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm75.c	2005-05-16 23:45:52.000000000 -0400
+@@ -75,7 +75,7 @@ static struct i2c_driver lm75_driver = {
+ };
+ 
+ #define show(value)	\
+-static ssize_t show_##value(struct device *dev, char *buf)		\
++static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf)		\
+ {									\
+ 	struct lm75_data *data = lm75_update_device(dev);		\
+ 	return sprintf(buf, "%d\n", LM75_TEMP_FROM_REG(data->value));	\
+@@ -85,7 +85,7 @@ show(temp_hyst);
+ show(temp_input);
+ 
+ #define set(value, reg)	\
+-static ssize_t set_##value(struct device *dev, const char *buf, size_t count)	\
++static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)	\
+ {								\
+ 	struct i2c_client *client = to_i2c_client(dev);		\
+ 	struct lm75_data *data = i2c_get_clientdata(client);	\
diff --git a/a/content_digest b/N1/content_digest
index 76ecb6c..a36c2eb 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,15 +1,17 @@
- "From\0yani.ioannou@gmail.com (Yani Ioannou)\0"
- "Subject\0[lm-sensors] [PATCH 2.6.12-rc4 6/15] drivers/i2c/chips/adm1031.c -\0"
- "Date\0Thu, 19 May 2005 06:25:58 +0000\0"
+ "From\0Yani Ioannou <yani.ioannou@gmail.com>\0"
+ "Subject\0[PATCH 2.6.12-rc4 6/15] drivers/i2c/chips/adm1031.c - lm75.c: update device attribute callbacks\0"
+ "Date\0Tue, 17 May 2005 06:41:35 -0400\0"
  "To\0Greg KH <greg@kroah.com>"
   linux-kernel@vger.kernel.org
  " lm-sensors@lm-sensors.org\0"
- "\00:1\0"
+ "\01:1\0"
  "b\0"
  "Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>\n"
  "\n"
- "---\n"
- "-------------- next part --------------\n"
+ ---
+ "\01:2\0"
+ "fn\0patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff.diffstat.txt\0"
+ "b\0"
  " adm1031.c |   44 ++++++++++++++++++++++----------------------\n"
  " asb100.c  |   46 +++++++++++++++++++++++-----------------------\n"
  " ds1621.c  |    6 +++---\n"
@@ -20,20 +22,825 @@
  " it87.c    |   50 +++++++++++++++++++++++++-------------------------\n"
  " lm63.c    |   24 ++++++++++++------------\n"
  " lm75.c    |    4 ++--\n"
- " 10 files changed, 109 insertions(+), 109 deletions(-)\n"
- "\n"
- "\n"
- "-------------- next part --------------\n"
- "A non-text attachment was scrubbed...\n"
- "Name: patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff\n"
- "Type: text/x-patch\n"
- "Size: 38922 bytes\n"
- "Desc: not available\n"
- "Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050517/b544693e/patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.bin\n"
- "-------------- next part --------------\n"
- "_______________________________________________\n"
- "lm-sensors mailing list\n"
- "lm-sensors@lm-sensors.org\n"
- http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
+  10 files changed, 109 insertions(+), 109 deletions(-)
+ "\01:3\0"
+ "fn\0patch-linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update.diff-drivers.diff.1.diff\0"
+ "b\0"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/adm1031.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/adm1031.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/adm1031.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/adm1031.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -292,11 +292,11 @@ set_fan_auto_channel(struct device *dev,\n"
+ " }\n"
+ " \n"
+ " #define fan_auto_channel_offset(offset)\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_auto_channel_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_auto_channel_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan_auto_channel(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_fan_auto_channel_##offset (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_fan_auto_channel_##offset (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \tconst char *buf, size_t count)\t\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_fan_auto_channel(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -357,24 +357,24 @@ set_auto_temp_max(struct device *dev, co\n"
+ " }\n"
+ " \n"
+ " #define auto_temp_reg(offset)\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_auto_temp_##offset##_off (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_auto_temp_##offset##_off (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_auto_temp_off(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_auto_temp_##offset##_min (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_auto_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_auto_temp_min(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_auto_temp_##offset##_max (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_auto_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_auto_temp_max(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_auto_temp_##offset##_min (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_auto_temp_##offset##_min (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \t\t\t\t\t     const char *buf, size_t count)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_auto_temp_min(dev, buf, count, offset - 1);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_auto_temp_##offset##_max (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_auto_temp_##offset##_max (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \t\t\t\t\t     const char *buf, size_t count)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_auto_temp_max(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -421,11 +421,11 @@ set_pwm(struct device *dev, const char *\n"
+ " }\n"
+ " \n"
+ " #define pwm_reg(offset)\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_pwm_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_pwm_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_pwm(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_pwm_##offset (struct device *dev,\t\t\t\\\n"
+ "+static ssize_t set_pwm_##offset (struct device *dev, struct device_attribute *attr,\t\t\t\\\n"
+ " \t\t\t\t const char *buf, size_t count)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_pwm(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -557,24 +557,24 @@ set_fan_div(struct device *dev, const ch\n"
+ " }\n"
+ " \n"
+ " #define fan_offset(offset)\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset##_min (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan_min(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset##_div (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset##_div (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan_div(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_fan_##offset##_min (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_fan_##offset##_min (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \tconst char *buf, size_t count)\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_fan_min(dev, buf, count, offset - 1);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_fan_##offset##_div (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_fan_##offset##_div (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \tconst char *buf, size_t count)\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_fan_div(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -667,33 +667,33 @@ set_temp_crit(struct device *dev, const \n"
+ " }\n"
+ " \n"
+ " #define temp_reg(offset)\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_temp_##offset (struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_temp_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_temp_##offset##_min (struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp_min(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_temp_##offset##_max (struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp_max(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_temp_##offset##_crit (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_temp_##offset##_crit (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp_crit(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##offset##_min (struct device *dev,\t\t\t\\\n"
+ "+static ssize_t set_temp_##offset##_min (struct device *dev, struct device_attribute *attr,\t\t\t\\\n"
+ " \t\t\t\t\tconst char *buf, size_t count)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_temp_min(dev, buf, count, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##offset##_max (struct device *dev,\t\t\t\\\n"
+ "+static ssize_t set_temp_##offset##_max (struct device *dev, struct device_attribute *attr,\t\t\t\\\n"
+ " \t\t\t\t\tconst char *buf, size_t count)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_temp_max(dev, buf, count, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##offset##_crit (struct device *dev,\t\t\t\\\n"
+ "+static ssize_t set_temp_##offset##_crit (struct device *dev, struct device_attribute *attr,\t\t\t\\\n"
+ " \t\t\t\t\t const char *buf, size_t count)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_temp_crit(dev, buf, count, offset - 1);\t\t\t\\\n"
+ "@@ -712,7 +712,7 @@ temp_reg(2);\n"
+ " temp_reg(3);\n"
+ " \n"
+ " /* Alarms */\n"
+ "-static ssize_t show_alarms(struct device *dev, char *buf)\n"
+ "+static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct adm1031_data *data = adm1031_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", data->alarm);\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/asb100.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/asb100.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/asb100.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/asb100.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -260,28 +260,28 @@ set_in_reg(MAX, max)\n"
+ " \n"
+ " #define sysfs_in(offset) \\\n"
+ " static ssize_t \\\n"
+ "-\tshow_in##offset (struct device *dev, char *buf) \\\n"
+ "+\tshow_in##offset (struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_in(dev, buf, offset); \\\n"
+ " } \\\n"
+ " static DEVICE_ATTR(in##offset##_input, S_IRUGO, \\\n"
+ " \t\tshow_in##offset, NULL); \\\n"
+ " static ssize_t \\\n"
+ "-\tshow_in##offset##_min (struct device *dev, char *buf) \\\n"
+ "+\tshow_in##offset##_min (struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_in_min(dev, buf, offset); \\\n"
+ " } \\\n"
+ " static ssize_t \\\n"
+ "-\tshow_in##offset##_max (struct device *dev, char *buf) \\\n"
+ "+\tshow_in##offset##_max (struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_in_max(dev, buf, offset); \\\n"
+ " } \\\n"
+ "-static ssize_t set_in##offset##_min (struct device *dev, \\\n"
+ "+static ssize_t set_in##offset##_min (struct device *dev, struct device_attribute *attr, \\\n"
+ " \t\tconst char *buf, size_t count) \\\n"
+ " { \\\n"
+ " \treturn set_in_min(dev, buf, count, offset); \\\n"
+ " } \\\n"
+ "-static ssize_t set_in##offset##_max (struct device *dev, \\\n"
+ "+static ssize_t set_in##offset##_max (struct device *dev, struct device_attribute *attr, \\\n"
+ " \t\tconst char *buf, size_t count) \\\n"
+ " { \\\n"
+ " \treturn set_in_max(dev, buf, count, offset); \\\n"
+ "@@ -389,24 +389,24 @@ static ssize_t set_fan_div(struct device\n"
+ " }\n"
+ " \n"
+ " #define sysfs_fan(offset) \\\n"
+ "-static ssize_t show_fan##offset(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_fan##offset(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_fan(dev, buf, offset - 1); \\\n"
+ " } \\\n"
+ "-static ssize_t show_fan##offset##_min(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_fan##offset##_min(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_fan_min(dev, buf, offset - 1); \\\n"
+ " } \\\n"
+ "-static ssize_t show_fan##offset##_div(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_fan##offset##_div(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_fan_div(dev, buf, offset - 1); \\\n"
+ " } \\\n"
+ "-static ssize_t set_fan##offset##_min(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_fan##offset##_min(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \t\t\t\t\tsize_t count) \\\n"
+ " { \\\n"
+ " \treturn set_fan_min(dev, buf, count, offset - 1); \\\n"
+ " } \\\n"
+ "-static ssize_t set_fan##offset##_div(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_fan##offset##_div(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \t\t\t\t\tsize_t count) \\\n"
+ " { \\\n"
+ " \treturn set_fan_div(dev, buf, count, offset - 1); \\\n"
+ "@@ -482,27 +482,27 @@ set_temp_reg(MAX, temp_max);\n"
+ " set_temp_reg(HYST, temp_hyst);\n"
+ " \n"
+ " #define sysfs_temp(num) \\\n"
+ "-static ssize_t show_temp##num(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_temp##num(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_temp(dev, buf, num-1); \\\n"
+ " } \\\n"
+ " static DEVICE_ATTR(temp##num##_input, S_IRUGO, show_temp##num, NULL); \\\n"
+ "-static ssize_t show_temp_max##num(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_temp_max##num(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_temp_max(dev, buf, num-1); \\\n"
+ " } \\\n"
+ "-static ssize_t set_temp_max##num(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_temp_max##num(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \t\t\t\t\tsize_t count) \\\n"
+ " { \\\n"
+ " \treturn set_temp_max(dev, buf, count, num-1); \\\n"
+ " } \\\n"
+ " static DEVICE_ATTR(temp##num##_max, S_IRUGO | S_IWUSR, \\\n"
+ " \t\tshow_temp_max##num, set_temp_max##num); \\\n"
+ "-static ssize_t show_temp_hyst##num(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_temp_hyst##num(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \treturn show_temp_hyst(dev, buf, num-1); \\\n"
+ " } \\\n"
+ "-static ssize_t set_temp_hyst##num(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_temp_hyst##num(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \t\t\t\t\tsize_t count) \\\n"
+ " { \\\n"
+ " \treturn set_temp_hyst(dev, buf, count, num-1); \\\n"
+ "@@ -522,7 +522,7 @@ sysfs_temp(4);\n"
+ " \tdevice_create_file(&client->dev, &dev_attr_temp##num##_max_hyst); \\\n"
+ " } while (0)\n"
+ " \n"
+ "-static ssize_t show_vid(struct device *dev, char *buf)\n"
+ "+static ssize_t show_vid(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct asb100_data *data = asb100_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", vid_from_reg(data->vid, data->vrm));\n"
+ "@@ -533,13 +533,13 @@ static DEVICE_ATTR(cpu0_vid, S_IRUGO, sh\n"
+ " device_create_file(&client->dev, &dev_attr_cpu0_vid)\n"
+ " \n"
+ " /* VRM */\n"
+ "-static ssize_t show_vrm(struct device *dev, char *buf)\n"
+ "+static ssize_t show_vrm(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct asb100_data *data = asb100_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", data->vrm);\n"
+ " }\n"
+ " \n"
+ "-static ssize_t set_vrm(struct device *dev, const char *buf, size_t count)\n"
+ "+static ssize_t set_vrm(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct asb100_data *data = i2c_get_clientdata(client);\n"
+ "@@ -553,7 +553,7 @@ static DEVICE_ATTR(vrm, S_IRUGO | S_IWUS\n"
+ " #define device_create_file_vrm(client) \\\n"
+ " device_create_file(&client->dev, &dev_attr_vrm);\n"
+ " \n"
+ "-static ssize_t show_alarms(struct device *dev, char *buf)\n"
+ "+static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct asb100_data *data = asb100_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", ALARMS_FROM_REG(data->alarms));\n"
+ "@@ -564,13 +564,13 @@ static DEVICE_ATTR(alarms, S_IRUGO, show\n"
+ " device_create_file(&client->dev, &dev_attr_alarms)\n"
+ " \n"
+ " /* 1 PWM */\n"
+ "-static ssize_t show_pwm1(struct device *dev, char *buf)\n"
+ "+static ssize_t show_pwm1(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct asb100_data *data = asb100_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", ASB100_PWM_FROM_REG(data->pwm & 0x0f));\n"
+ " }\n"
+ " \n"
+ "-static ssize_t set_pwm1(struct device *dev, const char *buf, size_t count)\n"
+ "+static ssize_t set_pwm1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct asb100_data *data = i2c_get_clientdata(client);\n"
+ "@@ -584,13 +584,13 @@ static ssize_t set_pwm1(struct device *d\n"
+ " \treturn count;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_pwm_enable1(struct device *dev, char *buf)\n"
+ "+static ssize_t show_pwm_enable1(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct asb100_data *data = asb100_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", (data->pwm & 0x80) ? 1 : 0);\n"
+ " }\n"
+ " \n"
+ "-static ssize_t set_pwm_enable1(struct device *dev, const char *buf,\n"
+ "+static ssize_t set_pwm_enable1(struct device *dev, struct device_attribute *attr, const char *buf,\n"
+ " \t\t\t\tsize_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/ds1621.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/ds1621.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/ds1621.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/ds1621.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -137,7 +137,7 @@ static void ds1621_init_client(struct i2\n"
+ " }\n"
+ " \n"
+ " #define show(value)\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_##value(struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct ds1621_data *data = ds1621_update_client(dev);\t\t\\\n"
+ " \treturn sprintf(buf, \"%d\\n\", LM75_TEMP_FROM_REG(data->value));\t\\\n"
+ "@@ -148,7 +148,7 @@ show(temp_min);\n"
+ " show(temp_max);\n"
+ " \n"
+ " #define set_temp(suffix, value, reg)\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##suffix(struct device *dev, const char *buf,\t\\\n"
+ "+static ssize_t set_temp_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,\t\\\n"
+ " \t\t\t\t size_t count)\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\t\t\t\\\n"
+ "@@ -165,7 +165,7 @@ static ssize_t set_temp_##suffix(struct \n"
+ " set_temp(min, temp_min, DS1621_REG_TEMP_MIN);\n"
+ " set_temp(max, temp_max, DS1621_REG_TEMP_MAX);\n"
+ " \n"
+ "-static ssize_t show_alarms(struct device *dev, char *buf)\n"
+ "+static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct ds1621_data *data = ds1621_update_client(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", ALARMS_FROM_REG(data->conf));\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscher.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscher.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscher.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscher.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -157,8 +157,8 @@ struct fscher_data {\n"
+ " \n"
+ " #define sysfs_r(kind, sub, offset, reg) \\\n"
+ " static ssize_t show_##kind##sub (struct fscher_data *, char *, int); \\\n"
+ "-static ssize_t show_##kind##offset##sub (struct device *, char *); \\\n"
+ "-static ssize_t show_##kind##offset##sub (struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_##kind##offset##sub (struct device *, struct device_attribute *attr, char *); \\\n"
+ "+static ssize_t show_##kind##offset##sub (struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \tstruct fscher_data *data = fscher_update_device(dev); \\\n"
+ " \treturn show_##kind##sub(data, buf, (offset)); \\\n"
+ "@@ -166,8 +166,8 @@ static ssize_t show_##kind##offset##sub \n"
+ " \n"
+ " #define sysfs_w(kind, sub, offset, reg) \\\n"
+ " static ssize_t set_##kind##sub (struct i2c_client *, struct fscher_data *, const char *, size_t, int, int); \\\n"
+ "-static ssize_t set_##kind##offset##sub (struct device *, const char *, size_t); \\\n"
+ "-static ssize_t set_##kind##offset##sub (struct device *dev, const char *buf, size_t count) \\\n"
+ "+static ssize_t set_##kind##offset##sub (struct device *, struct device_attribute *attr, const char *, size_t); \\\n"
+ "+static ssize_t set_##kind##offset##sub (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \\\n"
+ " { \\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ " \tstruct fscher_data *data = i2c_get_clientdata(client); \\\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscpos.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscpos.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/fscpos.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/fscpos.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -245,19 +245,19 @@ static void reset_fan_alarm(struct i2c_c\n"
+ " /* Volts */\n"
+ " #define VOLT_FROM_REG(val, mult)\t((val) * (mult) / 255)\n"
+ " \n"
+ "-static ssize_t show_volt_12(struct device *dev, char *buf)\n"
+ "+static ssize_t show_volt_12(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct fscpos_data *data = fscpos_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%u\\n\", VOLT_FROM_REG(data->volt[0], 14200));\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_volt_5(struct device *dev, char *buf)\n"
+ "+static ssize_t show_volt_5(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct fscpos_data *data = fscpos_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%u\\n\", VOLT_FROM_REG(data->volt[1], 6600));\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_volt_batt(struct device *dev, char *buf)\n"
+ "+static ssize_t show_volt_batt(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct fscpos_data *data = fscpos_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%u\\n\", VOLT_FROM_REG(data->volt[2], 3300));\n"
+ "@@ -327,7 +327,7 @@ static ssize_t set_wdog_preset(struct i2\n"
+ " }\n"
+ " \n"
+ " /* Event */\n"
+ "-static ssize_t show_event(struct device *dev, char *buf)\n"
+ "+static ssize_t show_event(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \t/* bits 5..7 reserved => mask with 0x1f */\n"
+ " \tstruct fscpos_data *data = fscpos_update_device(dev);\n"
+ "@@ -338,14 +338,14 @@ static ssize_t show_event(struct device \n"
+ "  * Sysfs stuff\n"
+ "  */\n"
+ " #define create_getter(kind, sub) \\\n"
+ "-\tstatic ssize_t sysfs_show_##kind##sub(struct device *dev, char *buf) \\\n"
+ "+\tstatic ssize_t sysfs_show_##kind##sub(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " \t{ \\\n"
+ " \t\tstruct fscpos_data *data = fscpos_update_device(dev); \\\n"
+ " \t\treturn show_##kind##sub(data, buf); \\\n"
+ " \t}\n"
+ " \n"
+ " #define create_getter_n(kind, offset, sub) \\\n"
+ "-\tstatic ssize_t sysfs_show_##kind##offset##sub(struct device *dev, char\\\n"
+ "+\tstatic ssize_t sysfs_show_##kind##offset##sub(struct device *dev, struct device_attribute *attr, char\\\n"
+ " \t\t\t\t\t\t\t\t \t*buf) \\\n"
+ " \t{ \\\n"
+ " \t\tstruct fscpos_data *data = fscpos_update_device(dev); \\\n"
+ "@@ -353,7 +353,7 @@ static ssize_t show_event(struct device \n"
+ " \t}\n"
+ " \n"
+ " #define create_setter(kind, sub, reg) \\\n"
+ "-\tstatic ssize_t sysfs_set_##kind##sub (struct device *dev, const char \\\n"
+ "+\tstatic ssize_t sysfs_set_##kind##sub (struct device *dev, struct device_attribute *attr, const char \\\n"
+ " \t\t\t\t\t\t\t*buf, size_t count) \\\n"
+ " \t{ \\\n"
+ " \t\tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ "@@ -362,7 +362,7 @@ static ssize_t show_event(struct device \n"
+ " \t}\n"
+ " \n"
+ " #define create_setter_n(kind, offset, sub, reg) \\\n"
+ "-\tstatic ssize_t sysfs_set_##kind##offset##sub (struct device *dev, \\\n"
+ "+\tstatic ssize_t sysfs_set_##kind##offset##sub (struct device *dev, struct device_attribute *attr, \\\n"
+ " \t\t\t\t\tconst char *buf, size_t count) \\\n"
+ " \t{ \\\n"
+ " \t\tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl518sm.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl518sm.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl518sm.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl518sm.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -164,14 +164,14 @@ static struct i2c_driver gl518_driver = \n"
+ "  */\n"
+ " \n"
+ " #define show(type, suffix, value)\t\t\t\t\t\\\n"
+ "-static ssize_t show_##suffix(struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_##suffix(struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct gl518_data *data = gl518_update_device(dev);\t\t\\\n"
+ " \treturn sprintf(buf, \"%d\\n\", type##_FROM_REG(data->value));\t\\\n"
+ " }\n"
+ " \n"
+ " #define show_fan(suffix, value, index)\t\t\t\t\t\\\n"
+ "-static ssize_t show_##suffix(struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_##suffix(struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct gl518_data *data = gl518_update_device(dev);\t\t\\\n"
+ " \treturn sprintf(buf, \"%d\\n\", FAN_FROM_REG(data->value[index],\t\\\n"
+ "@@ -205,7 +205,7 @@ show(BOOL, beep_enable, beep_enable);\n"
+ " show(BEEP_MASK, beep_mask, beep_mask);\n"
+ " \n"
+ " #define set(type, suffix, value, reg)\t\t\t\t\t\\\n"
+ "-static ssize_t set_##suffix(struct device *dev, const char *buf,\t\\\n"
+ "+static ssize_t set_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,\t\\\n"
+ " \tsize_t count)\t\t\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\t\t\t\\\n"
+ "@@ -220,7 +220,7 @@ static ssize_t set_##suffix(struct devic\n"
+ " }\n"
+ " \n"
+ " #define set_bits(type, suffix, value, reg, mask, shift)\t\t\t\\\n"
+ "-static ssize_t set_##suffix(struct device *dev, const char *buf,\t\\\n"
+ "+static ssize_t set_##suffix(struct device *dev, struct device_attribute *attr, const char *buf,\t\\\n"
+ " \tsize_t count)\t\t\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\t\t\t\\\n"
+ "@@ -258,7 +258,7 @@ set_high(IN, in_max3, voltage_max[3], GL\n"
+ " set_bits(BOOL, beep_enable, beep_enable, GL518_REG_CONF, 0x04, 2);\n"
+ " set(BEEP_MASK, beep_mask, beep_mask, GL518_REG_ALARM);\n"
+ " \n"
+ "-static ssize_t set_fan_min1(struct device *dev, const char *buf, size_t count)\n"
+ "+static ssize_t set_fan_min1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct gl518_data *data = i2c_get_clientdata(client);\n"
+ "@@ -284,7 +284,7 @@ static ssize_t set_fan_min1(struct devic\n"
+ " \treturn count;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t set_fan_min2(struct device *dev, const char *buf, size_t count)\n"
+ "+static ssize_t set_fan_min2(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct gl518_data *data = i2c_get_clientdata(client);\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl520sm.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl520sm.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/gl520sm.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/gl520sm.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -148,8 +148,8 @@ struct gl520_data {\n"
+ " \n"
+ " #define sysfs_r(type, n, item, reg) \\\n"
+ " static ssize_t get_##type##item (struct gl520_data *, char *, int); \\\n"
+ "-static ssize_t get_##type##n##item (struct device *, char *); \\\n"
+ "-static ssize_t get_##type##n##item (struct device *dev, char *buf) \\\n"
+ "+static ssize_t get_##type##n##item (struct device *, struct device_attribute *attr, char *); \\\n"
+ "+static ssize_t get_##type##n##item (struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \tstruct gl520_data *data = gl520_update_device(dev); \\\n"
+ " \treturn get_##type##item(data, buf, (n)); \\\n"
+ "@@ -157,8 +157,8 @@ static ssize_t get_##type##n##item (stru\n"
+ " \n"
+ " #define sysfs_w(type, n, item, reg) \\\n"
+ " static ssize_t set_##type##item (struct i2c_client *, struct gl520_data *, const char *, size_t, int, int); \\\n"
+ "-static ssize_t set_##type##n##item (struct device *, const char *, size_t); \\\n"
+ "-static ssize_t set_##type##n##item (struct device *dev, const char *buf, size_t count) \\\n"
+ "+static ssize_t set_##type##n##item (struct device *, struct device_attribute *attr, const char *, size_t); \\\n"
+ "+static ssize_t set_##type##n##item (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \\\n"
+ " { \\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ " \tstruct gl520_data *data = i2c_get_clientdata(client); \\\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/it87.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/it87.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/it87.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/it87.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -290,7 +290,7 @@ static ssize_t set_in_max(struct device \n"
+ " \n"
+ " #define show_in_offset(offset)\t\t\t\t\t\\\n"
+ " static ssize_t\t\t\t\t\t\t\t\\\n"
+ "-\tshow_in##offset (struct device *dev, char *buf)\t\t\\\n"
+ "+\tshow_in##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_in(dev, buf, offset);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\\\n"
+ "@@ -298,21 +298,21 @@ static DEVICE_ATTR(in##offset##_input, S\n"
+ " \n"
+ " #define limit_in_offset(offset)\t\t\t\t\t\\\n"
+ " static ssize_t\t\t\t\t\t\t\t\\\n"
+ "-\tshow_in##offset##_min (struct device *dev, char *buf)\t\\\n"
+ "+\tshow_in##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_in_min(dev, buf, offset);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\\\n"
+ " static ssize_t\t\t\t\t\t\t\t\\\n"
+ "-\tshow_in##offset##_max (struct device *dev, char *buf)\t\\\n"
+ "+\tshow_in##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_in_max(dev, buf, offset);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_in##offset##_min (struct device *dev, \t\\\n"
+ "+static ssize_t set_in##offset##_min (struct device *dev, struct device_attribute *attr, \t\\\n"
+ " \t\tconst char *buf, size_t count) \t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_in_min(dev, buf, count, offset);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_in##offset##_max (struct device *dev,\t\\\n"
+ "+static ssize_t set_in##offset##_max (struct device *dev, struct device_attribute *attr,\t\\\n"
+ " \t\t\tconst char *buf, size_t count)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_in_max(dev, buf, count, offset);\t\t\\\n"
+ "@@ -383,26 +383,26 @@ static ssize_t set_temp_min(struct devic\n"
+ " \treturn count;\n"
+ " }\n"
+ " #define show_temp_offset(offset)\t\t\t\t\t\\\n"
+ "-static ssize_t show_temp_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_temp_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ " static ssize_t\t\t\t\t\t\t\t\t\\\n"
+ "-show_temp_##offset##_max (struct device *dev, char *buf)\t\t\\\n"
+ "+show_temp_##offset##_max (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp_max(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ " static ssize_t\t\t\t\t\t\t\t\t\\\n"
+ "-show_temp_##offset##_min (struct device *dev, char *buf)\t\t\\\n"
+ "+show_temp_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_temp_min(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##offset##_max (struct device *dev, \t\t\\\n"
+ "+static ssize_t set_temp_##offset##_max (struct device *dev, struct device_attribute *attr, \t\t\\\n"
+ " \t\tconst char *buf, size_t count) \t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_temp_max(dev, buf, count, offset - 1);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_temp_##offset##_min (struct device *dev, \t\t\\\n"
+ "+static ssize_t set_temp_##offset##_min (struct device *dev, struct device_attribute *attr, \t\t\\\n"
+ " \t\tconst char *buf, size_t count) \t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_temp_min(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -453,11 +453,11 @@ static ssize_t set_sensor(struct device \n"
+ " \treturn count;\n"
+ " }\n"
+ " #define show_sensor_offset(offset)\t\t\t\t\t\\\n"
+ "-static ssize_t show_sensor_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_sensor_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_sensor(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_sensor_##offset (struct device *dev, \t\t\\\n"
+ "+static ssize_t set_sensor_##offset (struct device *dev, struct device_attribute *attr, \t\t\\\n"
+ " \t\tconst char *buf, size_t count) \t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_sensor(dev, buf, count, offset - 1);\t\t\t\\\n"
+ "@@ -600,24 +600,24 @@ static ssize_t set_pwm(struct device *de\n"
+ " }\n"
+ " \n"
+ " #define show_fan_offset(offset)\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset##_min (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset##_min (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan_min(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_fan_##offset##_div (struct device *dev, char *buf)\t\\\n"
+ "+static ssize_t show_fan_##offset##_div (struct device *dev, struct device_attribute *attr, char *buf)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_fan_div(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_fan_##offset##_min (struct device *dev, \t\t\\\n"
+ "+static ssize_t set_fan_##offset##_min (struct device *dev, struct device_attribute *attr, \t\t\\\n"
+ " \tconst char *buf, size_t count) \t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_fan_min(dev, buf, count, offset - 1);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_fan_##offset##_div (struct device *dev, \t\t\\\n"
+ "+static ssize_t set_fan_##offset##_div (struct device *dev, struct device_attribute *attr, \t\t\\\n"
+ " \t\tconst char *buf, size_t count) \t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_fan_div(dev, buf, count, offset - 1);\t\t\\\n"
+ "@@ -633,21 +633,21 @@ show_fan_offset(2);\n"
+ " show_fan_offset(3);\n"
+ " \n"
+ " #define show_pwm_offset(offset)\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_pwm##offset##_enable (struct device *dev,\t\t\\\n"
+ "+static ssize_t show_pwm##offset##_enable (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \tchar *buf)\t\t\t\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_pwm_enable(dev, buf, offset - 1);\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t show_pwm##offset (struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_pwm##offset (struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn show_pwm(dev, buf, offset - 1);\t\t\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_pwm##offset##_enable (struct device *dev,\t\t\\\n"
+ "+static ssize_t set_pwm##offset##_enable (struct device *dev, struct device_attribute *attr,\t\t\\\n"
+ " \t\tconst char *buf, size_t count)\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_pwm_enable(dev, buf, count, offset - 1);\t\t\\\n"
+ " }\t\t\t\t\t\t\t\t\t\\\n"
+ "-static ssize_t set_pwm##offset (struct device *dev,\t\t\t\\\n"
+ "+static ssize_t set_pwm##offset (struct device *dev, struct device_attribute *attr,\t\t\t\\\n"
+ " \t\tconst char *buf, size_t count)\t\t\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \treturn set_pwm(dev, buf, count, offset - 1);\t\t\t\\\n"
+ "@@ -663,7 +663,7 @@ show_pwm_offset(2);\n"
+ " show_pwm_offset(3);\n"
+ " \n"
+ " /* Alarms */\n"
+ "-static ssize_t show_alarms(struct device *dev, char *buf)\n"
+ "+static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct it87_data *data = it87_update_device(dev);\n"
+ " \treturn sprintf(buf,\"%d\\n\", ALARMS_FROM_REG(data->alarms));\n"
+ "@@ -671,13 +671,13 @@ static ssize_t show_alarms(struct device\n"
+ " static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL);\n"
+ " \n"
+ " static ssize_t\n"
+ "-show_vrm_reg(struct device *dev, char *buf)\n"
+ "+show_vrm_reg(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct it87_data *data = it87_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%ld\\n\", (long) data->vrm);\n"
+ " }\n"
+ " static ssize_t\n"
+ "-store_vrm_reg(struct device *dev, const char *buf, size_t count)\n"
+ "+store_vrm_reg(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct it87_data *data = i2c_get_clientdata(client);\n"
+ "@@ -693,7 +693,7 @@ static DEVICE_ATTR(vrm, S_IRUGO | S_IWUS\n"
+ " device_create_file(&client->dev, &dev_attr_vrm)\n"
+ " \n"
+ " static ssize_t\n"
+ "-show_vid_reg(struct device *dev, char *buf)\n"
+ "+show_vid_reg(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct it87_data *data = it87_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%ld\\n\", (long) vid_from_reg(data->vid, data->vrm));\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm63.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm63.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm63.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm63.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -177,7 +177,7 @@ struct lm63_data {\n"
+ "  */\n"
+ " \n"
+ " #define show_fan(value) \\\n"
+ "-static ssize_t show_##value(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev); \\\n"
+ " \treturn sprintf(buf, \"%d\\n\", FAN_FROM_REG(data->value)); \\\n"
+ "@@ -185,7 +185,7 @@ static ssize_t show_##value(struct devic\n"
+ " show_fan(fan1_input);\n"
+ " show_fan(fan1_low);\n"
+ " \n"
+ "-static ssize_t set_fan1_low(struct device *dev, const char *buf,\n"
+ "+static ssize_t set_fan1_low(struct device *dev, struct device_attribute *attr, const char *buf,\n"
+ " \tsize_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ "@@ -202,7 +202,7 @@ static ssize_t set_fan1_low(struct devic\n"
+ " \treturn count;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_pwm1(struct device *dev, char *buf)\n"
+ "+static ssize_t show_pwm1(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", data->pwm1_value >= 2 * data->pwm1_freq ?\n"
+ "@@ -210,7 +210,7 @@ static ssize_t show_pwm1(struct device *\n"
+ " \t\t       (2 * data->pwm1_freq));\n"
+ " }\n"
+ " \n"
+ "-static ssize_t set_pwm1(struct device *dev, const char *buf, size_t count)\n"
+ "+static ssize_t set_pwm1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ " \tstruct lm63_data *data = i2c_get_clientdata(client);\n"
+ "@@ -229,20 +229,20 @@ static ssize_t set_pwm1(struct device *d\n"
+ " \treturn count;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_pwm1_enable(struct device *dev, char *buf)\n"
+ "+static ssize_t show_pwm1_enable(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", data->config_fan & 0x20 ? 1 : 2);\n"
+ " }\n"
+ " \n"
+ " #define show_temp8(value) \\\n"
+ "-static ssize_t show_##value(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev); \\\n"
+ " \treturn sprintf(buf, \"%d\\n\", TEMP8_FROM_REG(data->value)); \\\n"
+ " }\n"
+ " #define show_temp11(value) \\\n"
+ "-static ssize_t show_##value(struct device *dev, char *buf) \\\n"
+ "+static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \\\n"
+ " { \\\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev); \\\n"
+ " \treturn sprintf(buf, \"%d\\n\", TEMP11_FROM_REG(data->value)); \\\n"
+ "@@ -255,7 +255,7 @@ show_temp11(temp2_low);\n"
+ " show_temp8(temp2_crit);\n"
+ " \n"
+ " #define set_temp8(value, reg) \\\n"
+ "-static ssize_t set_##value(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \tsize_t count) \\\n"
+ " { \\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ "@@ -269,7 +269,7 @@ static ssize_t set_##value(struct device\n"
+ " \treturn count; \\\n"
+ " }\n"
+ " #define set_temp11(value, reg_msb, reg_lsb) \\\n"
+ "-static ssize_t set_##value(struct device *dev, const char *buf, \\\n"
+ "+static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, \\\n"
+ " \tsize_t count) \\\n"
+ " { \\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev); \\\n"
+ "@@ -289,7 +289,7 @@ set_temp11(temp2_low, LM63_REG_REMOTE_LO\n"
+ " \n"
+ " /* Hysteresis register holds a relative value, while we want to present\n"
+ "    an absolute to user-space */\n"
+ "-static ssize_t show_temp2_crit_hyst(struct device *dev, char *buf)\n"
+ "+static ssize_t show_temp2_crit_hyst(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%d\\n\", TEMP8_FROM_REG(data->temp2_crit)\n"
+ "@@ -298,7 +298,7 @@ static ssize_t show_temp2_crit_hyst(stru\n"
+ " \n"
+ " /* And now the other way around, user-space provides an absolute\n"
+ "    hysteresis value and we have to store a relative one */\n"
+ "-static ssize_t set_temp2_crit_hyst(struct device *dev, const char *buf,\n"
+ "+static ssize_t set_temp2_crit_hyst(struct device *dev, struct device_attribute *attr, const char *buf,\n"
+ " \tsize_t count)\n"
+ " {\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\n"
+ "@@ -314,7 +314,7 @@ static ssize_t set_temp2_crit_hyst(struc\n"
+ " \treturn count;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t show_alarms(struct device *dev, char *buf)\n"
+ "+static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, char *buf)\n"
+ " {\n"
+ " \tstruct lm63_data *data = lm63_update_device(dev);\n"
+ " \treturn sprintf(buf, \"%u\\n\", data->alarms);\n"
+ "diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm75.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm75.c\n"
+ "--- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/i2c/chips/lm75.c\t2005-05-16 20:35:33.000000000 -0400\n"
+ "+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-update/drivers/i2c/chips/lm75.c\t2005-05-16 23:45:52.000000000 -0400\n"
+ "@@ -75,7 +75,7 @@ static struct i2c_driver lm75_driver = {\n"
+ " };\n"
+ " \n"
+ " #define show(value)\t\\\n"
+ "-static ssize_t show_##value(struct device *dev, char *buf)\t\t\\\n"
+ "+static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf)\t\t\\\n"
+ " {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct lm75_data *data = lm75_update_device(dev);\t\t\\\n"
+ " \treturn sprintf(buf, \"%d\\n\", LM75_TEMP_FROM_REG(data->value));\t\\\n"
+ "@@ -85,7 +85,7 @@ show(temp_hyst);\n"
+ " show(temp_input);\n"
+ " \n"
+ " #define set(value, reg)\t\\\n"
+ "-static ssize_t set_##value(struct device *dev, const char *buf, size_t count)\t\\\n"
+ "+static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)\t\\\n"
+ " {\t\t\t\t\t\t\t\t\\\n"
+ " \tstruct i2c_client *client = to_i2c_client(dev);\t\t\\\n"
+ " \tstruct lm75_data *data = i2c_get_clientdata(client);\t\\"
 
-20dc1761bac4df2dceda2d748628da71ac702aed011db29b365e6ee57543ff00
+15928318b43da2ae2e62ac50e16017b75f14226716aa88276eaee9e6ad6e1a4b

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.