[lm-sensors] [patch 0/2] pc87360 SDA-Array - readme
jim.cromie at gmail.com
jim.cromie at gmail.com
Wed Aug 31 22:20:09 CEST 2005
This patch set applies on top of:
2.6.13
+ http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-02-i2c-2.6.13.patch
+ my previous i2c-pc87360-sda-* patchset
These 2 patches are the culmination of my previous patchset - but are
seen as more controversial -- insofar that they set a direction for
other work. They therefore warrant a separate patchset, and extra
scrutiny to insure that they go someplace good.
To support my explicit array-declare+init approach, Ive dug up this
citation
http://groups.google.com/group/linux.kernel/browse_frm/thread/fa10a47a3c843d08/2a1465afa2f83afe?q=dynamic+sysfs+callbacks&rnum=10&hl=en#2a1465afa2f83afe
(msg 9 in thread, from GregKH):
No, I hate HEAD and TAIL macros. This really isn't buying you much code
savings, you could do it yourself with the __ATTR() macro yourself with
the same ammount of code I bet...
(msg 11, also Greg)
Hm, which makes me want to go look at trying to convert those attributes
to an array right now...
So I went with it..
01. i2c-pc87360-sda-array-01-hwmon-sysfs-array-init.patch
This patch refactors SENSOR_DEVICE_ATTR macro. 1st it creates a new
macro __SENSOR_DEVICE_ATTR() which expands to an initialization
expression, then it uses that in SENSOR_DEVICE_ATTR, which declares
and initializes a struct sensor_device_attribute.
The split allows use of the initialization expression separately, in
array declaration/initializations, as done in following patch.
__SENSOR_DEVICE_ATTR() imitates __ATTR in include/linux/device.h
02. i2c-pc87360-sda-array-02-array-init-loop.patch
With __SENSOR_DEVICE_ATTR's defined by 05, we now use them to
initialize a whole array of struct sensor_device_attributes. This
allows us to loop over the array, and call device_create_file() for
each element.
The 'skews' are now expressed in 2 of __SENSOR_DEVICE_ATTR's args; 1st
arg is sysfs-label, often starting at 1_, last arg is index, always 0
except for therm-units, which are using VLMs 11,12,13, and hence have
a +11 term in them.
[jimc at harpo pset-pc87360-sda-array]$ diffstat i2c-pc87360-sda-array-0*
D-1/include/linux/hwmon-sysfs.h | 20 +-
D-2/drivers/hwmon/pc87360.c | 347 ++++++++++++++++++----------------------
2 files changed, 175 insertions(+), 192 deletions(-)
and non-debug module sizes:
[jimc at harpo i2c-stuff]$ ll D-*/drivers/hwmon/pc87360.ko
-rw-rw-r-- 1 jimc jimc 157856 Aug 31 13:04 D-1/drivers/hwmon/pc87360.ko
-rw-rw-r-- 1 jimc jimc 143256 Aug 31 13:05 D-2/drivers/hwmon/pc87360.ko
The 2 patches each incrementally; apply and compile clean, and pass
this cursory test:
rmmod pc87360;
make modules_install;
modprobe pc87360;
sensors -s;
sensors
Signed-off-by: Jim Cromie <jim.cromie at gmail.com>
More information about the lm-sensors
mailing list