Module refcounting using .owner, removing of inc/dec_use.
These require (yet unreleased) i2c 2.8.0+.
Named initializers everywhere. Unified namespace.
Cleanup for 2.5, remove EXPORT_NO_SYMBOLS, declare everything
static. Apply initcalls.
PCI device registration changes for busses started, replicating
from i2c-amd*. While everything does compile, nothing really
works. Well, maybe i2c-amd* ported back from 2.5 tree.
After updating your work directory, run
> cvs diff -u -r LAST-PRE-2-8-I2C > lm-2.8-patches-1
BEWARE: I have not even insmoded any of these yet.
To compile, you need i2c from cvs too.
For 2.4 kernel :
> cvs co -r lk2-4 i2c
For 2.5 kernel :
> cvs co i2c
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1698 7894878c-1315-0410-8ee3-d5d059ff63e0
to mkpatch in 2.5.5. Also add mtp008 and ds1621 init calls in anticipation
of them being added. Fix typos adm9024->adm9240.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@997 7894878c-1315-0410-8ee3-d5d059ff63e0
Changes in sensors.c:
sensors_detect now skips addresses which are already taken. Even a
force parameter can not override this, as it could lead to major
problems.
For ISA addresses, the same is done; but the client drivers still need
a check if they claim more than one ISA address (as all of the current
ISA clients do).
Changes in chip drivers:
Removed the comment about needing address registration
Changes in i2cdetect.c:
Marks addresses which are already claimed
Changes in sensors-detect:
Warns when an address is already claimed, and skips it.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@667 7894878c-1315-0410-8ee3-d5d059ff63e0
* Improved monitoring of /proc directories
Instead of doing:
proc_bus_i2c->fill_inode = &monitor_bus_i2c;
void monitor_bus_i2c(struct inode *inode, int fill)
{
if (fill)
MOD_INC_USE_COUNT;
else
MOD_DEC_USE_COUNT;
}
you can now simply set:
proc_bus_i2c->owner = THIS_MODULE;
and this is just as good!
* An old 2.3 problem seemingly never was resolved yet: instead of using
a *wait_queue directly, you have to use a wait_queue_head_t and
initialize it properly:
#if (LINUX_VERSION_CODE < 0x020301)
static struct wait_queue *pcf_wait = NULL;
#else
static wait_queue_head_t pcf_wait;
#endif
#if (LINUX_VERSION_CODE >= 0x020301)
init_waitqueue_head(&pcf_wait);
#endif
except for this, semantics remain the same (but using a plain
wait_queue_head_t instead of a pointer to a wait_queue)
* I had to change the semantics of sensors_register_entry slightly,
to make the monitoring of /proc/sys/dev/* files possible for kernels
2.3.27 and newer. It now takes an additional parameter, which you
can specify as THIS_MODULE.
* THIS_MODULE is only defined in kernels 2.3.13 and later; added
it to compat.h and the compatibility section of mkpatch.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@640 7894878c-1315-0410-8ee3-d5d059ff63e0
* changed sensors.o to use WRITE address to check existence of
a client
In most cases this makes no difference. However, some versions of the
Matrox Orbital display hang the bus if you try to ack the read address.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@535 7894878c-1315-0410-8ee3-d5d059ff63e0
the kernel.
* <kernel/init.h> is now included for all modules
* Initialization-time only functions and variables are marked with __init
* EXPORT_SYMBOL or EXPORT_NO_SYMBOLS declarations added
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@513 7894878c-1315-0410-8ee3-d5d059ff63e0
* i2c-isa simplified, by using the addr field in the client structure,
instead of a new field. This means we do not need `struct isa_*'
anymore
* All clients changed to reflect the new isa code. Many are much
simplified now.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@505 7894878c-1315-0410-8ee3-d5d059ff63e0
* The i2c package can no longer be compiled as part of the lm_sensors tree
* The archive of the i2c package is removed
* smbus, i2c-dev and i2c-proc modules and headers have been removed; they
are now completely integrated into the i2c package
* The fake i2c.h header has been removed; this also allowed us to remove
the ugly LM_SENSORS and TBD defines.
* A new variable I2C_HEADERS is introduced in the Makefile. This allows
us to install the i2c headers in, for example, /usr/local/include/linux.
* All files now include <linux/i2c.h> instead of "i2c.h" and "smbus.h"
Status: 'make dep' works, all the right include files are found. 'make all'
does not yet work.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@496 7894878c-1315-0410-8ee3-d5d059ff63e0
Also fixed a few nasty sensors.c bugs, and a minor LM78 one. If the new
parameters give trouble, please recompile sensors.c with DEBUG=1 and
examine the dmesg output!
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@338 7894878c-1315-0410-8ee3-d5d059ff63e0
Added RT table read to 781d but then #undef'ed it since it was just
all 1's. Changed max entries in sensor.c to 32 bytes to handle RT table.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@335 7894878c-1315-0410-8ee3-d5d059ff63e0
Supported insmod parameters:
ignore, ignore_range
probe, probe_range
force, force_lm78, force_lm78j, force_lm79
force* overrules ignore* overrules probe*
The *_range parameters need three elements for each specification:
bus,start_addr,end_addr
The address ranges are inclusive.
The other parameters need two elements for each specification:
bus,addr
In each case, '-1' stands for 'any I2C bus', and 9191 stands for
'the ISA bus' (Bonus question: who can figure out why I choose 9191?)
In each case, just append if you want several specification, for example:
insmod lm78 probe=9191,0x2a0,1,0x56
force_* does no detection, not even chip detection; it blindly assumes
you know what you are doing. plain force does the chip detection, but
nothing else; but it can still fail if the register read-out does not
match a chip type.
Detection is done in exactly the same way as sensors-detect, except that
only the range 0x20-0x2f is examined by default. This needs to be
synchronized somehow with the detect script. I would rather scan the whole
I2C address range, but with those clueless PIIX4 hangs when clock chips
are read, that would simply give too much trouble.
The detect script has slightly better ISA detection now, too.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@325 7894878c-1315-0410-8ee3-d5d059ff63e0
It is untested as of yet; but it compiled without problem. Next step: add
support to the chip modules.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@324 7894878c-1315-0410-8ee3-d5d059ff63e0
* No more redefined complaints of MODULE_* symbols for 2.0 kernels
This was introduced by the last archive of Simon
* Correct load order of adapters in detect script modprobe report
You can't assume things come out of a hash in the same order as you
put them in, of course :-(
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@303 7894878c-1315-0410-8ee3-d5d059ff63e0
All our own code (ie. anything not in the i2c directory) compiles now without
warnings, even with WARN=1 (which sets -Wall -Wstrict-prototypes -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wnested-externs
-Winline). There is one exception: the lex code (conf-lex.l) complains about
unused functions. That's flex' fault, not ours!
The i2c code still emits many warnings with the above flags; that's Simon's
problem.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@233 7894878c-1315-0410-8ee3-d5d059ff63e0
This could lead to memory corruption and to the could-not-unload-module
problem of earlier reports. With a little luck, this will resolve all
module loading/unloading problems reported.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@132 7894878c-1315-0410-8ee3-d5d059ff63e0
See doc/sysctl for an explanation why it is needed.
Also fixed two very small cleanup bugs in lm75/lm78, which would probably be
impossible to trigger anyway, but still.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@51 7894878c-1315-0410-8ee3-d5d059ff63e0
This fix will only work for kernels >= 2.1.58.
* lm75, lm78: {INC,DEC}_MOD_USE_COUNT called for {inc,dec}_mod_use hooks
* sensors: For new kernels, fill_inode is called, which in turn calls
{inc,dec}_mod_use for a certain client
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@46 7894878c-1315-0410-8ee3-d5d059ff63e0
* PIIX4: better names in /proc files
* sensors.c: fixed bug which prevented registration of non-ISA clients
Status:
* lm75 inserts happily and interacts with the PIIX4 correctly
* lm75 readings are still wrong (all 0xff)
* lm75 insertion with ISA bus present causes oops
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@39 7894878c-1315-0410-8ee3-d5d059ff63e0
I moved a large part of the proc and sysctl call-back functions into
sensors.c. The result saved about 100 lines in lm78.c; it now uses only
2 pages according to lsmod, instead of 3! Also, other modules can use
the same functions, saving coding efforts and keeping them small.
I also fixed a fan_div display error.
Expect more code to be moved to sensors.c: I am writing lm75.c, and
most things which are in both modules (and so probably general purpose)
will be moved to sensors.c.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@28 7894878c-1315-0410-8ee3-d5d059ff63e0
Yes, our first chip driver is now fully operative. Some parts of it can
still be moved to sensors.o and reused by other drivers, but this can be
done later.
Bug fixes:
* i2c-core.c: Corrected previous patch (a client was now unloaded twice,
which caused problems, as could be expected).
* lm78.c, sensors.c: some minor typos, which caused the crashes
* lm78.c: FAN_DIV only has two fields (fan 3 is not changable)
* sensors.c: ISA/SMBus addresses are prefixed with zeros in directory names
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@20 7894878c-1315-0410-8ee3-d5d059ff63e0
* Some Makefile changes. doc/makefiles documents most of them.
* The lm78 module now compiles, but it will still crash.
* New module sensors, with general code usable by chip driver modules
* i2c-core: added function i2c_adapter_id(), which returns a (low)
unique i2c-bus ID.
* lm78.h stuff moved into lm78.c or sensors.h
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@19 7894878c-1315-0410-8ee3-d5d059ff63e0