Change history for tp_smapi:

0.19  2006-04-08
----------------
- Added new battery status attributes:
  /sys/devices/platform/smapi/BAT?/first_use_date
  /sys/devices/platform/smapi/BAT?/manufacture_date
- Bugfix in tp_base embedded controller readout 
  (missing prefetch invalidation). This apparently solves remnants of the
  the embedded-controller-lockup problem.
- "make load" now demands "HDAPS=1" if the hdaps module is loaded.
- hdaps driver patch:
  - Remember keyboard/mouse activity for 0.1sec, so that all applications
    get a chance to read it (the hardware resets its activity flag
    when it's read).

0.18  2006-04-01
----------------
- Solved embedded controller lockups with HDAPS=1 (see hdaps comments below).
- Added new function tp_controller_try_read_row() to tp_base.
- Added extra status checks in tp_base, to catch abnormal conditions earlier.
- Restructured several functions in tp_base for clarity and reusability.
- Restructured tp_smapi attribute registration code using fancy macros, to 
  remove redundancy.
- Reduced prefetch delay and maximum retries in tp_base.
- Now locks tp_controller when making SMAPI call (just in case).
- Makefile change to fix compilation in Debian.
- Minor cleanups and added comments in tp_smapi.c.
- Major changes to hdaps patch:
  - Whenever we read data from the controller, parse all of it and
    remember the values in global vars.
  - Simplified the device model *_show functions, via the above change.
  - If the mousedev poll timer handler experiences a transient fault, use
    use last saved data from the global vars.
  - Handle delayed calibration at first opportunity, not just mousedev polls.
  - Disable mousedev poll timer when suspending, to prevent readouts before
    the resume code re-initializes the sensor.
  - Don't accept initial status 0x00, it was probably an artifact of 
    the premature mousepoll invocation.
  - When doing a sensor readout in mousedev poll, avoid time-consuming
    retries and fetches, to minimize time in softirq. This effectively 
    exorcises an embedded controller lockup Heisenbug. There may still 
    a nonzero probability of lockup, but now it's not worse than the 
    vanilla hdaps (since they do essentially the same).

0.17  2006-02-10
----------------
- Fixed off-by-one bugs in charge threshold handling + cleanup
- Enforce bounds on threshold the same way Battery Maximizer does
- Recognize more battry status values
- Fixes in error reporting
- Fixed a warning in tp_smapi.c
- hdaps driver patches:
  - Informatively report init errors
  - Recognize 0x00 as a valid latch value
  - Increase init timeouts

0.16  2006-01-11
----------------
- Renamed smapi/BAT?/force_discharge1 to smapi/BAT?/force_discharge
- Removed smapi/BAT?/force_discharge2 (doesn't work on any model)
- HDAPS patch changes:
  - Check ready status (instead of occasionally returning junk) also for 
    variance, not just for position.
  - Calibrate unsynchronously (reduces load and resume time by 1-2 seconds)
  - Fix position readouts - read word, not byte.
  - Fixed driver lockup when writing to hdaps/variance.
- Changes in diff handling.

0.15  2006-01-10
----------------
- Bugfix: 0.14 had broken SM BIOS call code.

0.14  2006-01-09
----------------
This version has no user-visible functionality changes, but improves
the reliability of coordinating hardware access with the hdaps driver.
- Moved controller access code to tp_base.
- Changes in HDAPS driver patch:
  - Use tp_base for controller access instead of direct port IO. Using
    the "row read" and "prefetch" abstraction of tp_base makes the hdaps
    code shorter, clearer and safer.
  - Added checking of the STATUS port and automatic retries if device is not
    ready (previously it just returned junk values).
  - Added missing lock in hdaps_invert_store.
  - A few local code simplifications
  - Redue the retry delay (200ms was excessive).
- Changed SMAPI calls to use 32-bit args.
- Made "make patch" produce an LKML-compliant patches
  (include a diffstat, remove CD_SPEED, remove <2.6.15 #ifdefs).
- Changes in Makefile and directory structure.

0.13  2005-12-21
----------------
- First step toward resolving conflict with the hdaps module:
  - Added a tp_base module, which handles coordination of access to the 
    ThinkPad controller (thanks to Alan Cox and Rovert Love).
  - Changed tp_smapi to require and use tp_base.
  - "make load HDAPS=1" and "make install HDAPS=1" will copy and patch hdaps.c
    for compatibility with tp_smapi and tp_base, and then load or install it.
- Added a "make patch" target, which creates a stand-alone patch against the
  current kernel tree (thanks, Spiney!).
- Future kernel compatibility: avoids platform_device_register_simple.

0.12  2005-12-16
----------------
- Added smapi/BAT?/force_discharge1 and
        smapi/BAT?/force_discharge2.
  When set to 1, they stop forces discharging of battery even if on AC power.
  The two files have the same functionaliy but use different SMAPI calls to
  achieve it. On ThinkPad T43 only force_discharge1 works; the other one is
  completely untested.
- Removed smapi/cd_speed (unless you set "#define PROVIDE_CD_SPEED"), since
  its function is provided in a safer way by the combination of "hdparm -E"
  (for CD) and speedcontrol (for DVD, http://safari.iki.fi/speedcontrol.c).

0.10  2005-12-13
----------------
- Added smapi/BAT?/state (idle/charging/discharing).
- Added smapi/BAT?/{power_now,power_avg}.
- Renamed smapi/BAT?/{current1,current2} to {current_now,current_avg}.
- If stop_charge_thresh is unsupported, when trying to set it don't affect
  start_charge_thresh.
- smapi/BAT?/{design_capacity,last_full_capacity} were reversed.
- smapi/cdrom_speed renamed to cd_speed, and safety mechanism added: you must 
  use "echo 1 yes_crash_my_computer > /sys/devices/platform/smapi/cd_speed".
- Added smapi/ac_connected added (actually in 0.09).

0.09  2005-12-12
----------------
- Dual-battery support: moved all battery-related sysfs files to
  /sys/devices/platform/smapi/BAT0/*
  and made the 2nd battery accessible via 
  /sys/devices/platform/smapi/BAT1/*
- Added numerous read-only battery status files:
  /sys/devices/platform/smapi/BAT?/{installed,cycle_count,current1,current2,
  last_full_capacity,remaining_capacity,design_capacity,voltage,
  design_voltage,manufacturer,model,serial,barcoding,chemistry}
  These are incompatible with HDAPS - see README.
- /sys/devices/platform/smapi/BAT?/dump gives the raw status dump.
- Added "debug" module parameter, default (debug=0) reduces printk verbosity.
  For bug reports, please use "modprobe debug=1" (or just use "make load").
- Now requires kernel >= 2.6.13 (stick with v0.08 for earlier kernels).
- Suspend+resume now correctly handles default thresholds (start==stop==0).
- Extended whitelist to cover all ThinkPads.
- Cleanup of init/probing code.
- Reduced kernel logging level
- Fix in set_inhibit_charge

0.08  2005-12-09
----------------
- Fixes in README and dmesg outputs.

0.07 2005-12-07
----------------
- Added /sys/devices/platform/smapi/cdrom_speed to set/get the CD drive speed
  level (0=slow, 1=medium, 2=fast).
  WARNING: 
  Writing to this file when the CD is being accessed will hang your computer.
- Fixed some dmesg outputs

0.06  2005-12-06
----------------
- /sys/devices/platform/smapi/inhibit_charge renamed to
  /sys/devices/platform/smapi/inhibit_charge_minutes and now accepts
  the number of minutes to inhibit charging.
- Compatibility with kernel 2.6.12 (thanks to Guenther Starnberger)

0.05  2005-12-05
----------------
- Kernel 2.6.15 compatibility (thanks to Volker Gropp)
- Improved error reporting
- Cleared confusing dmesg output

0.04  2005-12-05
----------------
- Made start_charge_thresh work even with stop_start_thresh is
  not available.

0.03  2005-12-05
----------------
- Added /sys/devices/platform/smapi/inhibit_charge
- Fixed #includes
- Kernel 2.6.15 compatibility
- Added versionless IBM machines to DMI whitelist
- Added retries to SMAPI request code
- Added list of supported models to README

0.02  2005-12-05
----------------
- improved SMAPI request code and error reporting

0.01  2005-12-04
----------------
- initial release
