ChangeLog file for tpctl
========================

TODO
----
- Enable --dull option when output is a pipe
HELP WELCOME

4.15 changes from 4.14
----------------------
19Sep2004 KTK/JDTH : Fix the tpctlir program.
                     Thanks to Karl Trygve Kalleberg for the patch.

4.14 changes from 4.10
----------------------
29Apr2004 LEM/JDTH : apmiser: Fix parsing of 2.6's /proc/stat
                     Thanks to Lionel Elie Mamane for the fix

4.10 changes from 4.9
---------------------
26Jan2004 JDTH : Update README section re: controlling pointing devices
 8Feb2004 JDTH : Recognize --info-CMOS-RAM as per help

4.9 changes from 4.7
--------------------
06Dec2003 ZN/JDTH : Add notes about X22 to SUPPORTED-MODELS
                    Thanks to Zdravko Nikolov
12Dec2003 JDTH :  Add a 600E model --ib listing to SUPPORTED-MODELS
                  Thanks to The Rev. Shamim

4.7 changes from 4.6
--------------------
18Aug2003 JDTH : Use "chown nm:grp" instead of "chown nm.grp" as per POSIX
15Aug2003 JDTH : Wayne schlitt has noticed that tpctl --pm* causes the system
                 clock to lose time; therefore if the apmiser program is
                 running and frequently switching the power expenditure mode
                 then it causes the system clock to run slowly.  This effect
                 may be unacceptable to some people.  (In Debian the apmiser
                 program is not started in any runlevel by default; the admin
                 has either to run update-rc.d to add runlevel S links or
                 to do "/etc/init.d/apmiser start".)  I added this information
                 to the README.
11Aug2003 JDTH : Update Debian scripts -- see Debian changelog
11Aug2003 JDTH : Update apmiser(8)
11Aug2003 JDTH : Further enhance /usr/sbin/apmiser
  * Add option: --version
  * Create and delete a pidfile if --daemon
  * Save power all the time.  My reasoning is as follows.
    + First, it is reasonable to want to save line power as well as
      battery power.  For some people, "AC power" is a misnomer because
      the machine is running off an external battery pack.  Saving line
      power may also abate fan noise <joke>and global warming</joke>.
    + Second, it isn't necessary for apmiser to turn itself on and off.
      Instead, the admin can hang a script on apmd's proxy hook that
      starts and stops apmiser according to her local policy.  Currently
      apmiser still needs to look at /proc/apm in order to find out which
      power expenditure mode to control, but in the future this
      information should be provided to apmiser on the command line; then
      apmiser will run equally well under ACPI with appropriate support
      from acpid.
    + Fourth, removing the test from apmiser simplifies the program.
10Aug2003 w/JDTH : Make apmiser more intelligent
  * Eliminate option: --interval
  * Add options: --high_threshold, --low_threshold, --term, --trendiness
  Thanks to wayne schlitt <wayne_AT_midwestcs.com> for this work.

4.6 changes from 4.5
--------------------
24Jun2003 JDTH : Move modutils material from tpctl README to
                 thinkpad README.  Try to make the README more
                 clear.

4.5 changes from 4.4b
---------------------
10May2003 JL/JDTH : Add .spec file -- thanks to James R. Leu
          JDTH    : Remove uninstall_legacy target from Makefile
                  : Change use of variables in Makefile

4.4b changes from 4.3
---------------------
13Apr2003 JDTH    : (revs a,b) Debian changes
 7Apr2003 HH      : apmiser: Don't save power if no battery installed
                    Thanks to Heikki Holstila for the patch.
24Mar2003 CK/JDTH : Documentation fixes thanks to Charles Kaufman

4.3 changes from 4.2
--------------------
10Mar2003 JDTH : tpctl.c, ntpctl.c #include errno.h, not linux/errno.h
               : Update README

4.2 changes from 4.1
--------------------
30Nov2002 JDTH : Fix Makefiles so that they work nicely with
                    user CFLAGS
 6Dec2002 DH   : Update apmiser:
                    * Clean up
                    * Add --daemon option
                    * Add --syslog option
                    * Add --verbose option
                    * Add --jiffies=x option
                    Thanks to Dirk Husemann for this work

4.1 changes from 4.0
--------------------
22Nov2002 JDTH : Update SUPPORTED-MODELS
               : Update Debian maintainer scripts

4.0 changes from 3.7
--------------------
 5Nov2002 JDTH : Tweak rules file -- see Debian changelog
               : Eliminate uninitialized variable warnings in ntpctl
                 compilation
                    Thanks to Silvio Boehler and Michael Hagemann
                    for beta testing and making helpful suggestions
               : 'centurially' -> 'centennially'
27Oct2002 JDTH : Bump tpctl major version because we are bumping
                 thinkpad major version
               : Remove unused ETHINKPAD_EXECUTION macro
               : Change ETHINKPAD_* error codes to eliminate ambiguity
               : Default device node is now /dev/thinkpad/thinkpad
                 whether devfs is mounted at /dev or not.  tpctl and
                 ntpctl also try /dev/thinkpad if /dev/thinkpad/thinkpad
                 is unusable.
               : Clean up device node handling code
               : Update README and TROUBLESHOOTING
               : Update man page
               : Rename libsmapidev.so.1.0 as libsmapidev.so.2.0 to
                 sync with the internal version number for libsmapidev.
24Oct2002 JDTH : Add bits to SUPPORTED-MODELS

3.7 changes from 3.3
--------------------
 9Aug2002 JDTH : apmiser initscript now stops apmiser with QUIT so that
                    apmiser's signal handler can restore power exp. level
                 In Debian, by default do not start apmiser in any runlevels
 5Apr2002 JDTH : Add apmiser initscript
11Apr2002 JDTH : Update apmiser man page and README
                 Update SUPPORTED-MODELS

3.3 changes from 3.2
--------------------
31Mar2002 JDTH : Update SUPPORTED-MODELS

3.2 changes from 3.1
--------------------
 9Mar2002 JDTH : Update man pages

3.1 changes from 3.0
--------------------
28Feb2002 JDTH : Add debian directory
                 Don't build tpctlir by default.  It's broken.

-------------------------------------------------------------
Note that post 3.0 this is the ChangeLog for tpctl 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
