ChangeLog file for thinkpad device drivers
==========================================

TODO
----
- Add /proc interface for some commonly used functions?
- Submit drivers for inclusion into kernel tree:
    Merge smapi with mwave
    Merge superio with char drivers
    Merge rtcmosram with rtc
    Merge thinkpadpm with apm
- Better support newer ThinkPads
                         HELP WOULD WELCOME

4.1 changes from 4.0
--------------------
27Nov2002 JDTH : Update README:
                    Explain how to compile for Linux 2.4 and 2.2.
19Nov2002 JDTH : Copy drivers to 2.4 directory and start hacking on
                 the drivers to support Linux 2.5:
               : save_flags(flags); cli(); => local_irq_save(flags)
                 restore_flags(flags);   => local_irq_restore(flags)
               : Change Debian packaging scripts.  (See changelog.)
               : Update SUPPORTED-MODELS

4.0 changes from 3.7
--------------------
17Oct2002 JDTH : Bump major version because the use of misc_register
                 as we now do requires a very recent 2.4 kernel.
               : Remove unused ETHINKPAD_EXECUTION
               : Use C99 style named initialisers
               : Change ETHINKPAD_* error codes: eliminate ambiguity
               : Eliminate devfs interface code from thinkpad --
                 just use misc_register().  Correct functioning
                 requires Linux 2.4.19 or later.
               : Update README
               : Update man page
               : Update Debian packaging -- See the Debian changelog
               : thinkpadpm_init now aborts if APM is disabled, thus
                 preventing an oops if ACPI is being used.

3.7 changes from 3.6
--------------------
 7Aug2002 JDTH : Don't clobber KSRC in Makefiles
                 Modify README to mention need for modversions.h 

3.6 changes from 3.3
--------------------
13Apr2002 JDTH : Update README
                 Bump smapi driver version (forgot to do it in 3.1)

3.3 changes from 3.2
--------------------
27Mar2002 JDTH : Update thinkpad.4 man page

3.2 changes from 3.1
--------------------
 9Mar2002 JDTH : Add thinkpad.4 man page
                 Update docs

3.1 changes from 3.0
--------------------
28Feb2002 JDTH : Add debian directory
                 Reduce frequency of reports of differing SMAPI
                    return codes
                 Include 2.2 directory containing drivers from 1.0
                    which work with Linux 2.2
18Feb2002 JDTH : Add A30 to SUPPORTED-MODELS

-------------------------------------------------------------
Note that post 3.0 this is the ChangeLog for thinkpad only.
In 3.0 and earlier, tpctl and thinkpad had a common ChangeLog
-------------------------------------------------------------

3.0 changes from 2.5
--------------------
10Feb2002 JDTH : Releases renamed '3.0'
 3Feb2002 JDTH : Release thinkpad 3.0pre7
 3Feb2002 JDTH : Simplified proc read functions
23Dec2001 JDTH : Release thinkpad 3.0pre6
23Dec2001 JDTH : Put #ifdefs around MODULE_LICENSE so that the
                 modules can be used with kernels < 2.4.10
 7Dec2001 JDTH : Release thinkpad 3.0pre5
 7Dec2001 JDTH : Change instructions on configuring devfsd in the
                 README file, to reflect recent changes in devfs
14Nov2001 JDTH : Release tpctl 3.0pre4
14Nov2001 JDTH : Janitorial work:
                    Make type of all flags in tpctl flag_t
                 I hope the janitor didn't break anything
                 Tweak --pra handling to reflect the fact that 
                    appointments are made either for every day or
                    for every century.  Tweak printf, scanf formats
26Oct2001 JDTH : Release 3.0pre3
24Oct2001 JDTH : Update thinkpad README file
24Oct2001 JDTH : Change module parameter names to omit "thinkpad"
                 prefix which isn't necessary if we simply make
                 the parameter variables static.  This reverts a
                 change made for 2.5.  Sorry!!
24Oct2001 JDTH : Sync thinkpadpm code with the apm driver code from
                 which it was copied
22Oct2001 JDTH : Update TROUBLESHOOTING file again
18Oct2001 JDTH : Release 3.0pre2
18Oct2001 JDTH : Improve device file handling code; provide more
                 useful error messages when file not found, etc.
17Oct2001 JDTH : Append TODO to README
 6Oct2001 JDTH : Note in thinkpad README that drivers are compatible
                 with certain Linux kernels
 5Oct2001 JDTH : Revise TROUBLESHOOTING file
 4Oct2001 JDTH : Release 3.0pre1
18Sep2001 JDTH : Move proc files under /proc/driver subdirectory
               : Add devfs support to superio, thinkpadpm, rtcmosram
28Aug2001 JDTH : Add devfs support to ntpctl as I did to tpctl
               : Update TODO
27Jul2001 JDTH : Added devfs support to thinkpad and smapi modules
               : Cleaned up driver init and exit functions
               : Modified tpctl so it checks /dev/thinkpad/thinkpad
               : Split into two packages:
                    thinkpad  -- device drivers
                    tpctl     -- tpctl and kindred binaries and lib
               : Eliminate Makefile-common

2.5 changes from 2.4
--------------------
25Jul2001 JDTH : Added reference to new ed. of Linux Device Drivers
               : Change module options enable_* -> thinkpad_enable_*
               : Introduce a global variable "thinkpad_ppde" so that
                   other modules will require thinkpad module in
                   order to load, thus preventing corruption of
                   proc fs.  This eliminates the needs for "below"
                   statements in /etc/modules.conf.  Updated README
                   accordingly.
               : Eliminate *_MOD_USE_COUNT etc. in favour of
                   kernel's automatic ref counting
17Jul2001 JDTH : Change rtcmosram to use rtc_lock spinlock
                 instead of disabling interrupts.
               : Eliminate proc fs optionalness
               : Update README for devfs users
27Apr2001 JDTH : Fixed comments in several header files
16Apr2001 JDTH : Add INFO-BIOS file to tarball

2.4 changes from 2.3
--------------------
27Feb2001 JDTH : No changes, except version increased to deal with
                 FUBAR upload of 2.3 to SourceForge

2.3 changes from 2.2
--------------------
23Feb2001 JDTH : Update TODO, README
23Feb2001 JDTH : Fixed bug in superio PnP mode detection fn
18Feb2001 JDTH : Make tpctl 2.x work nicely with 1.0 modules.
11Feb2001 JDTH : tpctl now does a sync() before sedating
10Feb2001 JDTH : Update man pages for tpctl and ntpctl

2.2 changes from 2.1
--------------------
6Feb2001 JDTH : Make names and version strings "const" variables.
6Feb2001 JDTH : Clean up printouts at init time and in /proc/thinkpad
6Feb2001 JDTH : Copy APM BIOS interface from APM driver to
                  thinkpadpm.c so that no kernel patch is required.
5Feb2001 JDTH : Correct README, TODO, ChangeLog files.

2.1 changes from 2.0
--------------------
4Feb2001 JDTH : Eliminate unnecessary explicit dereference of function
                variable names in thinkpad.c
2Feb2001 JDTH : Update TECHNOTES, TODO, README, ChangeLog, etc.
31Jan2001 JDTH : Change tpctl --rx print outs, including order of
                   items ...  I hope this doesn't annoy anyone.
27Jan2001 JDTH : Clean up --- use recommended Linux 2.4.x API
27Jan2001 JDTH : Add thinkpadpm module to control subsystem power.
27Jan2001 JDTH : Remove use of unneeded global f<yadda>Ready flags
23Jan2001 JDTH : Install man in /usr/share/man not /usr/man
23Jan2001 JDTH : Remove cOpen from thinkpad.c; use MOD_IN_USE
22Jan2001 JDTH : Change all versions to 2.1
22Jan2001 JDTH : Rename thinkpad_mod_defines.h to thinkpad_module.h
22Jan2001 JDTH : Remove VIAGRA #ifdef ... #endif since hw access
                   seems safe enough
22Jan2001 JDTH : Remove old proc filesystem code: NEW_PROC is king
22Jan2001 JDTH : Remove POWER_SERIAL code: module will do the work

2.0 changes from 1.0
--------------------
20Jan2001 JDTH : Move tpctlir up out of contrib/ directory
20Jan2001 DS/JDTH : Added apmiser to the package
22Dec2000 JDTH : Use /lib/modules/xyz/build as path to kernel src
22Dec2000 JDTH : Clean up Makefiles
12Dec2000 JDTH : Install under /usr, not under /usr/local
12Dec2000 JDTH : Port drivers to Linux 2.4 API

1.0 changes from 0.8.9
----------------------
26Oct2000 JDTH : Remove '*' from lcall in smapi_call.s 
16Oct2000 JDTH : Create BUGS file
14Oct2000 JDTH : Change --pra code so that selecting a daily app't
                 does not overwrite the date of the non-daily app't
14Oct2000 JDTH : Standardize date and time display and input formats
                    (thanks to Marc Joosen for the suggestion)
14Oct2000 JDTH : Add "-Wno-uninitialized" to CFLAGS for compiling tpctl
11Oct2000 JDTH : Update docs
7Oct2000 JDTH : Change tpctl and ntpctl Makefiles to link to smapidev
                in the same way
7Oct2000 JDTH : Add SUPPORTED-MODELS file
7Oct2000 JDTH : Update README
7Oct2000 JDTH : Remove tpctlify; config now to be done by hand
                because there were too many problems with 
                automated installation.
7Oct2000 JDTH : Rename VGA_MODES file to "VGA-MODES"
7Oct2000 JDTH : Remove plug-n-play check from superio init

0.8.9 changes from 0.8.8
------------------------
1July2000 JDTH    : Add kdist_clean target to Makefile to make
                      make-kpkg happy
6July2000 AB/JDTH : Rename libsmapidev.so to libsmapidev.so.1 and
                      add symlinks
6July2000 JDTH    : Update AUTHORS file
17July2000 JDTH   : Remove ioctl_thinkpad(), ioctl_superio() and
                    ioctl_rtcmosram() from smapidev since these have
                    nothing to do with SMAPI; move them into tpctl.c.
17July2000 JDTH   : Change display of parallel port mode so that it
                      is the same as what you have to input to change
                      the mode.
17July2000 JDTH   : Remove sound-related cruft from thinkpad driver
17July2000 JDTH   : Add support for switching serial port on and off
                      at the same time as the port is enabled or
                      disabled.  At present this requires a patch to
                      the kernel: see tpctl/README.
18July2000 JDTH   : Display interpretative strings for numerical
                      values consistently.
18July2000 JDTH   : Update TROUBLESHOOTING, README and TODO files

0.8.8 changes from 0.8.7
------------------------
25May2000 JDTH : Add COPYING file
25May2000 JDTH : Streamline some of the tpctl code

0.8.7 changes from 0.8.6
------------------------
28Apr2000 JDTH : Remove other_tools/ubswap

0.8.6 changes from 0.8.5
------------------------
26Apr2000 JDTH : Remove hdparm patch from other_tools/ubswap
                 since the patch has been incorporated into
                 the standard hdparm source
13Mar2000 JDTH : Update TODO file

0.8.5 changes from 0.8.4
------------------------
3Mar2000 JDTH : Removed superfluous legacy-mode (i.e., superio
                non-pnp mode) config information from tpctl -rx
                outputs
17Feb2000 FB/JDTH : create_proc_read_entry() appeared in the
                    linux-2.3.25 kernel and not in 2.3.0;
                    changed #if in thinkpad_mod_defines.h
19Jan2000 MF : ntpctl -- open device RDONLY if can't open RDWR
15Jan2000 JDR/JDTH : Call depmod and modprobe by full path name

0.8.4 changes from 0.8.3
------------------------
11Jan2000 AB : Added man pages for ntpctl, ubswap, tpctlir
               Thanks to Adrian Bridgett!

0.8.3 changes from 0.8.2
------------------------
9Jan2000 JDTH : (Experimental) Added ability to select SPP/EPP/ECP

0.8.2 changes from 0.8.1
------------------------
6Jan2000 JDTH : Send '/lib/modules/`uname -r`' to tpctlify as module
                path argument instead of /lib/modules/`uname -r`

0.8.1 changes from 0.8.0
------------------------
5Jan2000 JDTH :    Tested with 2.2.14 kernel.  A-OK.
5Jan2000 RB/JDTH : Implemented TP570_KLUDGE
5Jan2000 MS/JDTH : Send path arguments to tpctlify
4Jan2000 HV/JDTH : Kernel path now selectable via a Makefile variable
3Jan2000 JDTH    : Improved byte_of_bcd8() error message
3Jan2000 MS/JDTH : Added "install_modules" target to Makefile so that
                   modules can be installed separately from the
                   other stuff
3Jan2000 AB/JDTH : tpctlir now fails gracefully if not run by root
3Jan2000 JDTH    : Fixed typo in heading for 'tpctl --pdZ' output
3Jan2000 AB/JDTH : Fixed typo in heading for 'tpctl --ip' output

0.8.0 changes from 0.7.6
------------------------
31Dec99 JDTH : Man path now selectable via a Makefile variable
29Dec99 JDTH : Documentation corrections

0.7.6 changes from 0.7.5
------------------------
27Dec99 DD/JDTH : Added tpctl man page.  Thanks to Dave Davey!
25Dec99 AG/JDTH : Modified drivers to work with 2.3.x kernels' /proc
                  filesystem interface.  Thanks to Anders Gustafsson!

0.7.5 changes from 0.7.4
------------------------
13Dec99 JDTH : No longer install tpctlify

0.7.4 changes from 0.7.3
------------------------
11Dec99 JDTH : Fixed nasty bug in Makefile that caused /lib/modules
               to be wiped out on install.  DO NOT INSTALL 0.7.3 !
11Dec99 JDTH : Eliminated RPM-related stuff.  Will release only
               tarballs from now on.
11Dec99 JDTH : Changed modules installation directory to:
               /lib/modules/<running.kernel.version>/thinkpad

0.7.3 changes from 0.7.2
------------------------
8Dec99  JDTH : Added "other_tools" directory with two nifty tools:
               tpctlir     -- enables/disables infrared subsystem on
                              ThinkPads with Programmable Option Select
               ubswap      -- allows hot swapping of UltraBay devices
7Dec99  JDTH : Added IOCTL_SND_REINIT to the thinkpad module
               Created the tpreinitsnd program to call the new ioctl
1Dec99  JDTH : Tweaked ntpctl menus for greater consistency with tpctl

0.7.2 changes from 0.7.1
------------------------
30Nov99 JDTH : Integrated ntpctl into the package
               Moved files into subdirectories

0.7.1 changes from 0.7.0
------------------------
13Nov99 JDTH : Added GetPowerExpenditureMode, SetPowerExpenditureMode
               to libsmapidev
17Oct99 JDTH : Updated my email address

0.7.0 changes from 0.6.1
------------------------
31Jul99 JDTH : Update TROUBLESHOOTING re: kernel compatibility
31Jul99 JDTH : Move /proc entries under /proc/thinkpad
31Jul99 JDTH : Fiddled with tpctlify

0.6.1 changes from 0.6.0
------------------------
30Jul99 JDTH : (Build 3) Eliminate some warnings from byte_of_bcd8()
29Jul99 JDTH : Change handling of error codes so that it does not
               rely upon ioctl() returning positive error codes
               to the user.  Such reliance is not portable.

0.6.0 changes from 0.5.10
-------------------------
29Jul99 JDTH : Change highlighting to "bold" and use the curses
                 library to get the appropriate terminal control
                 strings.

0.5.10 changes from 0.5.9
-------------------------
28Jul99 JDTH : (Build 2+) Allow rtcmosram module to load even if ioports are
               occupied.
28Jul99 JDTH : Complete modularization: modules are now automatically and
               independently loadable and unloadable.  When tpctl is run,
               thinkpad.o is loaded by the module loader as per instructions
               in /etc/modules.conf.  The thinkpad module, in turn, requests
               the loading of the other modules as they are needed to perform
               ioctl requests.  Loading of a module is inhibited by setting
               "enable_<module>" to zero, which can be done at load time or
               via ioctl().  See README.
27Jul99 JDTH : Simplify "SIZE_..._MAX" macros
28Jul99 JDTH : Change '--silent' to '--quiet' since the switch doesn't
               make tpctl completely silent.

0.5.9 changes from 0.5.8
------------------------
27Jul99 JDTH : Use more standard error messaging
27Jul99 JDTH : Hive off smapi, superio and rtcmosram as distinctly
               loadable modules.
27Jul99 JDTH : Fix bug in smapi:locate_smb_header()
27Jul99 JDTH : Fix bug in --pra output
27Jul99 JDTH : Abandon "variants" idea of 0.5.8 since it doesn't solve
               the problem that it was meant to solve
27Jul99 JDTH : Add /proc/* entries for each enabled submodule
27Jul99 JDTH : Add module parameters to thinkpad.o to govern enabling of 
               the subordinate modules
27Jul99 JDTH : Make superio mod more careful about interrupt cli/restore
27Jul99 JDTH : Clean up module code a lot: make it much more kernelifically
               correct and fault tolerant

0.5.8 changes from 0.5.7
-------------------------
25Jul99 JDTH : Package rpm with both modversions and non-modversions variants
25Jul99 JDTH : (release 5:) and install these in /lib/modules/thinkpad/thinkpad
               and symlink /lib/modules/thinkpad/thinkpad.o to the right one
25Jul99 JDTH : Fix bug in Usage output
25Jul99 JDTH : Require write access for writing to CMOS RAM

0.5.7 changes from 0.5.6
-------------------------
24Jul99 JDTH : Added rtcmosram module
24Jul99 JDTH : Added --sst option
24Jul99 JDTH : Added --ic option 
24Jul99 JDTH : Renamed --ic option as '--ip'

0.5.6 changes from 0.5.5
-------------------------
22Jul99 JDTH : Added "--silent" option
22Jul99 JDTH : Changed highlighting code to make it disablable using
               the "--dull" option

0.5.5 changes from 0.5.4
-------------------------
22Jul99 JDTH : Added info about confuring serial ports to README
22Jul99 JDTH : Tried to make superio more kosher with its ioport usage
22Jul99 JDTH : Made checking for Super I/O chip a little more careful.

0.5.4 changes from 0.5.3
-------------------------
22Jul99 JDTH : Display appointment info all on one line
22Jul99 JDTH : Changed tpctlify to check for perl before invoking it
               Also, make it more verbose
22Jul99 JDTH : Changed so that print formatting is nicer when many arguments
               are given.  Highlighting option improved and enabled for
               binary distribution.
               Options added:
                  --pdZh --pdZu
                  --x --sx --px etc.
               Option names changed:
                  --iu  -->  --iU
                  --state-*  -->  --setup-*
               I hope this didn't break anything.
22Jul99 JDTH : Allow thinkpad to initialize even if superio doesn't
22Jul99 JDTH : Update TROUBLESHOOTING file (outdate ref to 10:168 <- wrong)
21Jul99 JDTH : Add PS2.EXE/tpctl comparison to TODO


0.5.3 changes from 0.5.2
-------------------------
21Jul99 JDTH : (build 2) Change Makefile: remove -D switch which
               is new to version 4.0 of install and do mkdirs instead
21Jul99 JDTH : (build 2) Change tpctlify to add /usr/local/lib
               to the ld path if it's not already there
21Jul99 JDTH : Cleaned up superio.c code
21Jul99 JDTH : Fixed bug in tpctlify script -- didn't abort
21Jul99 JDTH : Removed '--verbose' options from Makefile commands

0.5.2 changes from 0.5.1
-------------------------
21Jul99 JDTH : Added 'rpm' target
21Jul99 JDTH : Compiler warning messages ("implicit declaration") eliminated
               *This should solve some kernel compatibility problems!*
21Jul99 JDTH : Rest of par and ser configuration options implemented
21Jul99 JDTH : Make module init function a bit safer
20Jul99 JDTH : Changed device number to 10:170 by order of the
               device number czar

0.5.1 changes from 0.5.0
-------------------------
20Jul99 JDTH : Fixed version printout formatting
20Jul99 JDTH : Print actual IRQs used

0.5.0 changes from 0.3.7
-------------------------
20Jul99 JDTH : --rs* functionality augmented
19Jul99 JDTH : --im folded into --ib
19Jul99 JDTH : Install script is now '/usr/local/sbin/tpctlify'
19Jul99 JDTH : Kernel module is now called 'thinkpad'
19Jul99 JDTH : Device file is now called /dev/thinkpad (dev. number 10:168)
19Jul99 JDTH : Widespread changes in the code structure
