use /sys/class/i2c-dev/i2c-x/name file if available;

solves problem with drivers that have multiple busses;
      requires Greg's patch (for kernel 2.6.5?)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2341 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker committed 2004-03-06 20:27:41 +00:00
1 parent 3a0255d125
commit 36c7305e78
2 files changed
+15 -3

No files matched your search

+4
View File
@@ -17,6 +17,10 @@ ask CVS about it:
-----------------------------------------------------------------------------
2.8.6 (2004????)
Programs i2cdetect, i2cdump, i2cset: Fix incorrect bus names if possible
2.8.5 (20040305)
File doc/chips/SUMMARY: Update
File etc/sensors.conf.eg: Epox 8K3A tweaks. (Kronos)
+11 -3
View File
@@ -90,11 +90,19 @@ void print_i2c_busses(int procfmt)
if (!strcmp(de->d_name, ".."))
continue;
/* this seems to work for ISA */
sprintf(n, "%s/%s/device/name", sysfs, de->d_name);
/* this should work for kernels 2.6.5 or higher and */
/* is preferred because is unambiguous */
sprintf(n, "%s/%s/name", sysfs, de->d_name);
f = fopen(n, "r");
/* this seems to work for ISA */
if(f == NULL) {
sprintf(n, "%s/%s/device/name", sysfs, de->d_name);
f = fopen(n, "r");
}
/* non-ISA is much harder */
/* and this won't find the correct bus name if a driver
has more than one bus */
if(f == NULL) {
/* non-ISA is much harder */
sprintf(n, "%s/%s/device", sysfs, de->d_name);
if(!(ddir = opendir(n)))
continue;