2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-08-30 05:48:07 +00:00

4145 Commits

Author SHA1 Message Date
Frodo Looijaard
7937738275 Module use count fix
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
1998-12-07 22:15:49 +00:00
Philip Edelbrock
502fa4f125 (Phil) Started on an eeprom driver which works very much like the lm75
driver (used as a template).  It is completely non-functional at this
point, but it's a start.  There is a lot of code still specific to the
lm75 in it, so don't try to use it yet. ;')  Also note that there needs
to be some concern with using it because a 'write' and a 'read' to an
EEPROM on the SMBus are very similar.  So, we need to be carefull not
to start crippling SDRAM DIMMs due to unfinished/buggy code.

This should (when working) be able to read EEPROMs:

* In SDRAM DIMMs which specify the type, clocking, etc. of the DIMM.

* the EEPROMs in the new Intel Xeon processors.

* Any other EEPROM connected to the SMBus conforming to the standard
SMBus comminucation methods for SMBus EEPROMs.

Since only eight possible addresses are available for EEPROMs (at
least from the spec I'm looking at from Atmel), the code will
only probe for eight.  Notice that this can lead to some problems
for machines for which this is true: # of SDRAM DIMMs + # of Xeons > 8


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@45 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-07 04:32:20 +00:00
Frodo Looijaard
4aa9c6376c Corrected small bug in isa.c and smbus.c which caused faulty lm75
chips to be registered on the ISA bus now that the I2C emulation code was
triggered.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@44 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 23:10:20 +00:00
Frodo Looijaard
45e87b2b9e SMBus emulation on real I2C adapters finished
Not tested, as I do not own such an adapter...

Block reading not implemented, as it seems impossible to do with the
currently available I2C primitives.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@43 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 23:03:46 +00:00
Frodo Looijaard
f322a67793 Better header files
* Header files isa.h, sensors.h and smbus.h will now be installed on a
  'make install';
* #ifdef __KERNEL__ added to the above header files where appropriate;
* Correct files are included, both if __KERNEL__ is true and false.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@42 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 16:19:24 +00:00
Frodo Looijaard
831b8e88f3 Resolved ISA crash.
Status: You can insert all modules, and it works like a charm!

Changes:
* Corrected check for SMBus algorithm in smbus_access
* (The unimplemented) smbus_access_i2c now returns an error, instead of
  an undefined result


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@41 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 16:07:23 +00:00
Frodo Looijaard
ce0521ba13 LM75 data correctly readable now!
* Changed test in lm75 setup code to 'read/write returns < 0' instead of
  (old) 'read/write returns 0xff'. Nowadays, we can see the difference
  between an error and a 0xff result, after all.
* Introduced constants used by PIIX4 for transaction types. These are
  *not* the same as those in smbus.h.
* Some small code optimalizations in piix4.o.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@40 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 15:21:29 +00:00
Frodo Looijaard
e0484650ef Fixed some more bugs
* 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
1998-12-05 16:36:47 +00:00
Frodo Looijaard
61d74f13e0 Minor fixes
* /proc/bus/i2c printed garbage if more than one adapter was registered
* There was a double line in piix4.c in the delay function


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@38 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 16:12:47 +00:00
Philip Edelbrock
279eb7c5c0 (Phil) Fixed a couple 2.1.x issues:
- The schedule() and timeout issue (since 2.1.127 I think)

- A syntax error in piix4 (pci func 3 sensing code Frodo wrote)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@37 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 04:23:52 +00:00
Frodo Looijaard
3e7c6427d0 Very minor namespace fixes, and TODO list update (or should I say
downdate; I only removed a few things :-))


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@36 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 01:08:42 +00:00
Frodo Looijaard
6b510ea008 Last fixes in piix4.o
* Cleanup bug (ioports were not deregistered)
* PIIX4 search (it seems that for function 3, we must seek for a slightly
  different device, too).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@35 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 01:03:03 +00:00
Frodo Looijaard
f18d210815 PIIX4 update
It compiles now for 2.0 kernels; I hope it still compiles for 2.1 kernels :-)

Changes:
* The non-BIOS PCI interface was introduced in kernel 2.1.54, so I changed
  all #ifdef statements to use that kernel as starting point
* I integrated everything in piix4.h into piix4.c; as no other module will
  ever need to know about anything PIIX4-specific, we do not need a
  separate header file (same went for lm78.c and lm75.c)
* In piix4_setup, both the 2.0 and 2.1 versions continue seeking for PCI
  devices until they have found 'function 3' of the PIIX4. This is the
  'function' we need for SMBus access.
* At some places in piix4_setup, even for 2.1 kernels the PCI BIOS code was
  used. This was seemingly needed, probably because the wrong 'function'
  was accessed. I have removed this; if there are troubles with the PIIX4 on
  kernels newer than 2.1.53, we need to introduce it again.
* Renamed global things to start uniformly with piix4_
* Changed printk statements to start with piix4.o:
* Pasted in missing part of piix4_access
* No need to lock the adapter on access; this is already done by the
  smbus_access function in smbus.c. I corrected a locking bug there too,
  by the way.
* Added a few include files needed by 2.0 at least
* Replaced the call to schedule_timeout() in piix4_do_pause with the old
  code; schedule_timeout seems to be defined nowhere?!? Phil, was this
  your addition, and if so, what should it read?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@34 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 00:47:22 +00:00
Frodo Looijaard
831fd5e911 Corrected LM78 probing.
If your LM78/78-J/79 is still not detected, please recompile lm78.o with
DEBUG=1 and mail the output of dmesg. Same for Winbonds.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@33 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 15:26:29 +00:00
Frodo Looijaard
35e3f46b09 This should solve the 2.1 kernel /proc/bus/i2c-? problem.
The inode list that is used to determine which i2c-? file is accessed,
was not initialized for 2.1 kernels due to a #endif statement that
was one line too low :-(


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@32 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 15:16:49 +00:00
Philip Edelbrock
bace775fef (Phil) OK, here is the first shot at integrating PIIX4 support in the new
lm_sensors2 project.  It was *very* easy to copy-and-paste it in, so I'm
hoping that it won't include any new bugs.  It builds and compiles, but
I wasn't able to test it (under 2.1.131) until we get some compatibility
problems solved.  There is probably a little cleaning up to do yet, but
everything looks like it is happy.  Test it under 2.0.x and let me know
what happens.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@31 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 03:49:47 +00:00
Philip Edelbrock
36d4745b0d (Phil) OK, here is the first shot at integrating PIIX4 support in the new
lm_sensors2 project.  It was *very* easy to copy-and-paste it in, so I'm
hoping that it won't include any new bugs.  It builds and compiles, but
I wasn't able to test it (under 2.1.131) until we get some compatibility
problems solved.  There is probably a little cleaning up to do yet, but
everything looks like it is happy.  Test it under 2.0.x and let me know
what happens.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@30 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 03:49:32 +00:00
Frodo Looijaard
b2f89aee3f LM75 driver finished
Well, it should work. But until we have implemented the remaining parts of
piix4.o, we won't be able to test it. Anybody?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@29 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 00:47:40 +00:00
Frodo Looijaard
857a44f757 Simplification of /proc files functions in chip drivers
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
1998-12-03 23:15:17 +00:00
Frodo Looijaard
0aa9e734d0 Some lm78 updates
* LM78, LM78-J and LM79 now all supported
* Chip type reflected in /proc/bus/i2c-?, /proc/.../sensors/* and
  /proc/ioports.
* VID initialises IN0 and IN1, except if it is 3.50 V (then it falls back to
  2.80 V)
* Slightly better ISA detection (but still not good enough)
* Temperature now in tenth of degrees, instead of whole degrees (for better
  compatibility)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@27 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-03 18:20:59 +00:00
Frodo Looijaard
594147b812 Updated MODIFICATIONS
This is really the last commit for today. I promise ;-)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@26 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-03 00:43:59 +00:00
Frodo Looijaard
44367fe30b Added a manual for cvs use (based on mails from William and Phil).
If people want access to the CVS archive, you can send them this document,
instead of having to type it all over again each time.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@25 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 23:36:08 +00:00
Frodo Looijaard
05bdb0e90b New text-file describing the available modules, and how to handle them.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@24 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 18:31:21 +00:00
Frodo Looijaard
81dd46d199 Made sure the right i2c.h file was always included
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@23 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 17:43:13 +00:00
Frodo Looijaard
cbf518d36e Fixes to make code compile with 2.1 kernels
Everything now compiles cleanly (except for warnings in kernel header files)
against 2.1.122. As I do not run 2.1 kernels, loading them could not be
tested.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@22 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 17:25:53 +00:00
Frodo Looijaard
01bb2de024 Cleaned up the i2c files
* 'cvs admin -ko i2c' should disable all RCS keyword substitutions from now
  on
* Put all EXPORT stuff between #ifdef LM_SENSORS #endif statements.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@21 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 15:11:18 +00:00
Frodo Looijaard
af7232145d Bug-fixes: lm78.c is now working!
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
1998-12-02 00:47:37 +00:00
Frodo Looijaard
6ea68ba7a2 Many things, most notable the lm78 module
* 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
1998-12-01 21:11:32 +00:00
Frodo Looijaard
dcf30092e1 Finished i2c-proc.c
When you insert i2c-proc.o, you will find some files in /proc/bus (which
is first created for 2.0 kernels). Currently, the following files are
implemented:
  * /proc/bus/i2c
    A list of i2c/smbus adapters. If DEBUG was true when you compiled this
    module, you will also see the ISA pseudo-adapter (if isa.o is loaded).
  * /proc/bus/i2c-?
    For each adapter in /proc/bus/i2c, a list of registered clients.
    If DEBUG was true when you compiled this module, you will also see
    the i2c-proc pseudo client.
Of course, these entries are modified when adapters are added/removed.

Kernel 2.1.x users are encouraged to test this module, as /proc entries
are somewhat different beginning with kernel 2.1.29.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@18 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-28 01:40:37 +00:00
Frodo Looijaard
ad1f47a49a Dynamic generation of /proc/bus/i2c-? files (no info yet)
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@17 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-28 00:07:36 +00:00
Frodo Looijaard
85e409d322 i2c-proc now creates complete /proc/bus/i2c
* i2c-bus is renamed to i2c-proc
* small patch in i2c-core.c (see correspondence with Simon Vogl)
* sensors.h contains i2c constants
* It seems lm78.[ch] was not yet committed?!?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@16 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-27 22:02:09 +00:00
Frodo Looijaard
c26eff1184 Start of i2c-bus, a module for displaying i2c bus information in /proc
Nothing much here yet, except some code to create /proc/bus/i2c. Should work
for kernels 2.0 and 2.1 (please test).

Other notable things:
  printk statements in all modules made to have to same 'look'.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@15 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-27 00:26:51 +00:00
Frodo Looijaard
4d0ef54c3c update of doc/design; it now reflects the code again (which is nice
for a design document :-) ).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@14 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-26 10:55:26 +00:00
Frodo Looijaard
45d6e40e75 Example lm_sensors-2 driver
Though it is called the LM78 driver, there is not too much LM78 specific
code in it; it can better be seen as an example code skeleton for other
drivers. Right now, it creats a file /proc/sensors-test, which contains
a list of busses it registered itself on. Stupid, but very useful for
testing purposes!

You need a 2.0 kernel for lm78.o to insert (or hack the /proc system
specific parts; see lm78.c of lm_sensors version 1 how to do this).
Other parts of lm_sensors-2 are not tested for 2.1 kernels either, but
I am certain it won't work in this case :-).

See the TODO list to get some idea what is left to do, choose something
and implement it. Or not :-). But please, send a note to the mailing
list when you start on something, to avoid duplicate work...

Other notable changes:
  the smbus_access routines now use (the more logical) i2c_adapter
  structure, instead of smbus_adapter.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@13 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-26 10:16:08 +00:00
Frodo Looijaard
4d29df9f32 isa module added, some bugfixes
'isa.o' is roughly what was called 'sensor.o' in doc/design.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@12 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-23 22:34:34 +00:00
Frodo Looijaard
ed7e4c3001 Makefile enhancements, printk enhancements
* Modules now print their version number and date on insertion
* Some printk statements missed a \n
* 'make clean' now works, even if some .d (dependency) files contain garbage.
  Note that *only* 'make clean' helps in that case; 'make clean all', for
  example, will fail! There is really no nice way to solve that.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@11 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-22 21:36:52 +00:00
Frodo Looijaard
d0f87b72e9 Added some things to useful addresses
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@10 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-22 20:48:10 +00:00
Frodo Looijaard
9f4acd58b1 piix4.c basic skeleton
The real PIIX4 access code must still be written; perhaps somebody else could
do this? Most of it could be copied from the old piix4.c. But check carefully
what you are doing, as some things *have* changed (like the SMBUS_{BYTE,...}
variables!).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@9 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-19 15:14:01 +00:00
Frodo Looijaard
36d5e317ce Module smbus.o, many other small changes
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@8 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-19 03:07:18 +00:00
Philip Edelbrock
afe6d17ee3 (Phil) I disabled manual symbol exporting under 2.1.x. This shouldn't
effect anything in an adverse way (except possibly messing up the
name-space a bit :').  But, it compiles and *should* link OK.  Testers???


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@7 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-03 03:48:44 +00:00
Frodo Looijaard
9cb654d2b4 Added CONFIG_MODVERSIONS magic
The i2c modules now compile and insert without any problem. If I only had
a VIA mainboard...


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-03 02:05:49 +00:00
Frodo Looijaard
f90c552823 Introduced automatic dependencies within Makefiles.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-03 01:32:55 +00:00
Frodo Looijaard
a001ba2b96 Makefile skeleton, made i2c compile with 2.0 kernels
Please examine the Makefile before extending it, as its approach is
completely new. It should be very modular now, though. Makefile fragments
are called Module.mk.

The Module.mk in i2c does not handle dependencies yet.

There are some patches to bit-mb.c to make it compile with 2.0 kernels.
They have been sent to Simon Vogl (author of the i2c module).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-03 01:19:04 +00:00
Frodo Looijaard
11e88380d5 The basic directory structure for lmsensors2.
README.directories contains a description of the directories I created;
  read it if you have questions about them.
doc/design is the design document I sent before through email.
doc/useful_addresses.html contains links to I2C, SMBus and sensors
  information.

Note that we may have to change minor i2c things, like Makefiles; this
is why I put it in the archive too (we should, of course, send important
changes to Simon Vogl).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-02 20:29:28 +00:00
Frodo Looijaard
8e82d8354a New repository initialized by cvs2svn.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-02 20:29:28 +00:00