i2c CHANGES file
-----------------------
This is a list of the most important changes between 2.x versions. It is by
no means complete, listing only user-visible changes which are interesting.
The ultimate way to know what has changed is to run diff, or even neater,
ask CVS about it:

  * Checkout the archive (see doc/cvs for how you can do this)
  * Determine which tags are valid, by running this command from the
    project root directory:
      cvs status -v -l Makefile
    Valid tags are usually like form V2-1-0 for version 2.1.0
  * Ask cvs for the difference between two versions:
      cvs diff -r TAG1 -r TAG2 DIFF-OPTIONS
    for example:
      cvs diff -r V2-0-0 -r V2-0-1 -u

-----------------------------------------------------------------------------

2.9.1 (20050412)
  Interface changes
        - Restore binary compatibility with Linux 2.4
  Makefile: Revert the header install removal
            Support sparc64 (Nicolas Boullis)
            Support mips and sparc32 (Aurelien Jarno)
            Use -fno-strict-aliasing on all architectures
  i2c-core: Unhide i2c_get_client
            Fix force parameter loop iteration
  i2c-id.h: Add ID for Marvell 64xxx
            Sync IDs with Linux 2.6
  i2c.h: Drop 2.4.9 compatibility define of MODULE_LICENSE
         Fix defines lacking parentheses (Corey Minyard)
  i2c-algo-bit, i2c-algo-biths, i2c-algo-pcf: Declare I2C_FUNC_I2C
            as being supported
  i2c-algo-biths: Replace assembly code by C (Aurelien Jarno)

2.9.0 (20041228)
  Interface changes
	- Struct i2c_adapter: restore inc_use() and dec_use(), remove owner
	- Struct i2c_algorithm: remove owner
	- Struct i2c_driver: restore inc_use() and dec_use(), remove owner
	- Restore controlling_mod argument in i2c_register_entry()
        These changes restore compatibility with pre-2.8.0 i2c, in
        particular with the version of i2c present in the Linux 2.4 kernels.
  Makefile: Do not export any kernel header
  i2c-id.h: Add IDs for virtual adapter, lpc47b397
  i2c-proc.c: Increase SENSORS_ENTRY_MAX to 24
  i2c-proc.c: Fix a bug in the real parsing code
  mkpatch: Generate diffs for drivers/i2c/Config.in and
           drivers/i2c/Makefile again

2.8.8 (20041007)
  Makefile: Do not export i2c-dev.h
  i2c-pport.c: Code cleanups
               Do not test lines, i2c-algo-bit already does
  i2c-proc.c: Do not rely on procname but instead on ctl_name to determine
              sysctl table lengths. (Louis-Martin Cote)

2.8.7 (20040611)
  Makefile: Do not run depmod on staged installs (Peter Breitenlohner)
  i2c-id.h: Add IDs for MAX6900, PCILYNX, SIBYTE, SGI_VINO, SGI_MACE
  i2c-proc.c: Fail to compile if kernel lacks sysctl support

NOTE: there was no 2.8.5 or 2.8.6 release

2.8.4 (20040207)
  i2c-id.h: Add IDs for the OV511 project
  i2c-philips-par.c: Fix bus reset with type!=0

2.8.3 (20040115)
  File i2c-rh.spec: Updated
  Makefile: Update Alpha CMODFLAGS (Daniel Nilsson)
  Makefiles: Remove -o and -g arguments to install
  i2c.h: Add I2C_M_RECV_LEN and I2C_M_RECV_PEC
  i2c-algo-bit.c: Add SMBus block read and block process call emulation
  i2c-core.c: Add SMBus block read and block process call emulation

2.8.2 (20031211)
  Makefiles: Fail if no kernel .config file exists
  i2c-algo-bit: Fix sclhi() for adapters that do not have getscl();
                Enable bit_test for adapters that do not have getscl();
                Mostly rewrite test_bus(), cleaner and probably faster.
  i2c-id.h:  Add IDs for FSC Hermes, usbvision, and
             drivers found in the Linux 2.4.22 kernel.

2.8.1 (20031005)
  Modules (various): Fix includes for compilation on alpha
  i2c.h: Add utility function i2c_delay(1)
  i2c-algo-8xx.h: Header fix (Richard Laing)
  i2c-core.c: Trivial bugfix to i2c_check_addr()
  i2c-dev.c: Ioctl fixes: user/kernel bug, memory leak
             (Robert T. Johnson, Sergey Vlasov)
  i2c-elektor.c: Fix memory mapped I/O
  i2c-id.h: Add IDs for the LM90, ASB100, Radeon, Xeon, MAX6650

2.8.0 (20030714)
  Interface changes:
	- File i2c-dev.h: remove all userspace code, moved to
                          i2c-dev.h in lm_sensors2 package
	- Struct i2c_adapter: remove inc_use() and dec_use(), add owner,
                              remove client_count, replace semaphore lock
                              with semaphores bus and list.
	- Struct i2c_algorithm: add owner
	- Struct i2c_driver: remove inc_use() and dec_use()
	- Struct i2c_msg: type changes; add err and done
	- Struct i2c_smbus_ioctl_data, i2c_rdwr_ioctl_data: type changes
	- Remove controlling_mod argument in i2c_register_entry()
	- Remove i2c_inc_use_client() and i2c_dec_use_client()
	- Add i2c_client_command()
  Makefiles: Handle multiple UTS_RELEASE definitions in linux/version.h;
             Remove old gzipped modules; remove old misc directory if empty;
             Don't use /usr/include headers for modules;
             Remove pre-2.4 installation method;
             Run depmod after module installation
  Modules (all): Cleanups including
	- C99 initializers
	- Remove #ifdef MODULE
	- Remove #ifndef THIS_MODULE
	- Remove #ifndef MODULE_LICENSE
	- Remove init_MUTEX #define
	- Remove EXPORT_NO_SYMBOLS
	- Remove dummy xxx_command() definitions
	- Use module_init() and module_exit()
  drivers (several): make spinlock_t's static
  i2c-algo-biths.[ch]: (new) Rewrite of i2c-algo-bit with improved
                       bus timing and error handling.
                       This is not a drop-in replacement for i2c-algo-bit.
                       Interface subject to change.
  i2c-core.c: Rewrite locking;
              Remove initialization of other modules in i2c_init_all()
  i2c-dev.c: Fixes from kernel 2.4.21-rc7
  i2c-id.h: add IDs for i2c-algo-biths, W83627HF, LM85, nForce2, OMAHA, GUIDE,
            MPC107, IXP2000, IXP425, IOP3XX, UDA1342, S3VIA
  i2c-proc.c: Fix ignore and probe tests
  mkpatch: Remove patching of drivers/char/mem.c

2.7.0 (20021208)
  drivers (several): C99 initializers (sync w/ kernel 2.5.49); HZ fixes
  i2c.h: Add I2C_M_IGNORE_NAK, I2C_M_NO_RD_ACK to flags.
  i2c-algo-bit.c: Support I2C_M_IGNORE_NAK. Use time_after() with jiffies.
	   Debug message improvements. Fix clock high time in sclhi().
  i2c-algo-8xx.c: Several updates and cleanups
  i2c-algo-ibm_ocp.[ch], i2c-adap-ibm_ocp.c: Rename i2c_iic_[add,del]_bus to
           i2c_ocp... to avoid duplicate with i2c-algo-ite in kernel
  i2c-core.c: Fix emulated i2c block writes
  i2c-dev.c: Remove data copy limit
  i2c-id.h: Add driver IDs for smart battery, IPMI, BMC, FS451, AMD8111,
            SCx200
  i2c-proc.h: Add SENSORS_INSMOD_8; add naming for new dummy adapters
  mkpatch: Fix export-objs
  doc/i2c-protocol: Comment new client flags, fix I2C_M_NOSTART samples.
  Makefile: Take kernel source location from /lib/modules/x.x.x/build;
            add flags for x86_64 compiles

2.6.5 (20020915)
  mkpatch: Fix i2c-algo-8xx.o target causing kernel to not compile;
           add doc/i2c-old-porting, i2c-algo-8xx.[ch], i2c-adap-ibm_ocp.c,
           i2c-algo-ibm_ocp.[ch], i2c-frodo, i2c-rpx,
           i2c-pport, i2c-pcf-epp.
  i2c-adap-ibm_ocp.c, i2c-elektor.c, i2c-pcf-epp.c : Replaced deprecated cli()
	   and sti() with spin_lock_irq(&driver_lock); and 
	   spin_unlock_irq(&driver_lock);  Added spinlock_t driver_lock =
	   SPIN_LOCK_UNLOCKED 
  i2c-adap-ibm_ocp.c, i2c-elektor.c, i2c-pcf-epp.c : Moved driver_lock to
	   module level and renamed to irq_driver_lock to avoid conflict with
           driver_lock semaphore in i2c-core.
  i2c-algo-8xx.c: Replaced deprecated save_flags(flags); cli() with 
	   local_irq_save(flags); and restore_flags(flags) with
	   local_irq_restore(flags);
  i2c-core.c: Remove buffer size limit in i2cproc_bus_read();
              add initializations for modules added to mkpatch.
  i2c-id.h: Add driver IDs for MPC824X, SIS630, SIS645

2.6.4 (20020719)        (in kernel 2.5.32)
  doc/i2c-old-porting: New
  i2c.h: Add defines for SMBus 2.0
  i2c-algo-8xx.[ch]: Compile updates, Add GPL
  i2c-algo-bit.c: Wait for clock low extension by slow devices;
                  add cond_resched() for 2.5 kernels	
  i2c-algo-ibm_ocp.[ch], i2c-adap-ibm_ocp.c: renamed from *ppc405*, rewritten
                  to support the ppc4xx kernel and multiple 4xx devices
  i2c-core.c: Add SMBus 2.0 PEC and Block Process Call support;
              change back to 'old' CONFIG names;
              fix i2c emulated process call
  i2c-dev.c: Add SMBus 2.0 PEC and Block Process Call support
  i2c-dev.h: Add SMBus 2.0 Block Process Call support
  i2c-frodo.c: New. Support for I2C on Frodo (2d3D, Inc. SA-1110 Dev Board).
  i2c-id.h: Add driver IDs for Savage 4, smbus-arp, smbus-alert, DS1307,
            SA-1110, SMSC47M1, ADV717x, ZR36067, ZR36120, VT1211, LM92, Frodo.
  i2c-pcf-epp.c: Remove compile warning
  i2c-proc.c: Check kmalloc() return code (sync with kernel 2.4.18)
  i2c-rpx.c: Compile updates
  mkpatch: Change back to 'old' CONFIG names
  Makefiles: For 2.4+ kernels, modules now install in
             kernel/drivers/i2c , not misc/ , and
             removes old versions in misc/ .
             Don't compile i2c-philips-par if no CONFIG_PARPORT.
             Change back to 'old' CONFIG names.

2.6.3 (20020322)	(in kernel 2.5.24)
  TODO: Many updates
  Config.in: i2c-proc requires sysctl
  doc/i2c-velleman: New
  drivers (all): Add message loglevels to printk's
  i2c.h: Add defines for 2-byte address block reads/writes, SAA7108
  i2c-core.c, i2c-dev.h: Add SMBus emluated i2c block reads
  i2c-core.c: Increase max buffer size for /proc/bus/i2c-x handler
  i2c-pcf-epp.c: Fix so it compiles
  i2c-philips-par.c: Check return code of parport_claim_or_block()
  i2c-proc.[ch]: Change i2c_sysctl_real 3rd arg to unsigned for kernel 2.2.19;
                 printk if no sysctl support in kernel
  mkpatch: Sync with kernel 2.4.15 (Configure.help)
  Module.mk: Add i2c-pcf-epp

2.6.2 (20011118)
  drivers (all): Add version to printk
  drivers (all): sync with kernel 2.4.11 (Add MODULE_LICENSE("GPL"))
  i2c-algo-8xx.c: Fix nasty cache problem
  i2c-algo-pcf.c: Fix detection for some boards (PIN bit)
  i2c-core.c: Don't redefine init_MUTEX() for kernels 2.2.18+;
              fix CONFIG_xxx inconsistencies for i2c-elektor, i2c-elv,
              i2c-philips-par, i2c-velleman
  i2c-elektor.c: Fix segfault when module not inserted, and
                 small IRQ issue.
  i2c-id.h: Add device IDs for Fujitsu-Siemens Poseidon and Scylla;
            sync with kernel 2.4.10 (ITE IIC id's); add SAA7134 ID;
            add PCF8591 ID.
  mkpatch: Fix CONFIG_xxx inconsistencies for i2c-elektor, i2c-elv,
           i2c-philips-par, i2c-velleman

2.6.1 (20010830) 	(in kernel 2.4.13)
  drivers (all): Sync with kernel 2.4.2 (malloc.h -> slab.h)
  i2c-core.c: Fix iteration bug in i2c_get_client();
              initialize i2c-proc if built-in.
  i2c-dev.c: Sync with kernel 2.4.9 (i2cdev_lseek -> no_llseek)
  i2c-id.h: Add device ID for Chrontel 700X driver;
            add ID for primitive parallel port driver.
  i2c-pport.c: New - not mkpatched by default
  mkpatch/Config.in: PPC405 fix

2.6.0 (20010612)
  Makefile: Added support for alpha architecture
  i2c.h: Add #defines from lm_sensors i2c-isa.h
  i2c-algo-8xx.[ch]: New - not built or mkpatched by default
  i2c-algo-pcf.c: Increase I2C clock speed from 6.25 kHz to 50 kHz;
                  add detect code; remove test_bus function;
                  add support for multiple messages (proper generation
                  of stop/repstart sequences)
  i2c-algo-ppc405.[ch]: New - not built or mkpatched by default
  i2c-dev.c: Fix cleanup
  i2c-elektor.c: Add Alpha detection; add support for memory mapped 8584
                 behind a PCI bridge on Alphas; set interrupt bit correctly
  i2c-elektor.h: Comment out unused structure for now
  i2c-id.h: Add device ID's from lm_sensors sensors.h; add DEC Tsunami;
            added ID's for VPX32XX, DRP3510, SP5055, STV0030.
  i2c-ppc405.[ch]: New - not built or mkpatched by default
  i2c-ppc405adap.h: New
  i2c-proc.[ch]: New, from lm_sensors sensors.[ch]
  i2c-rpx.c: New - not built or mkpatched by default
  mkpatch: Add support for i2c-proc.[ch]

2.5.5 (20010115)	(in kernel 2.4.0-prerelease)
  mkpatch no longer supports 2.3 kernels
  i2c-core.c: Fix SMBus emulated i2c block writes

2.5.4 (20001012)
  i2c-id.h: Add VES1893, VES1820, SAA7113, TDA8444
  i2c-pcf-epp.c: New (no .h file, not compiled or patched to kernel)

2.5.3 (20001008)
  i2c-dev.c: Fix bug that MOD_COUNT was incremented instead of decremented
             on close; add devfs support.
  i2c-id.h: Add algorithms for ACPI and ACCESS.bus
  i2c-id.h: Add smart battery devices
  i2c-id.h: Add ALI 1535 device
  i2c-core.c, i2c-dev.c, i2c-dev.h, i2c.h: Add i2c block write support

2.5.2 (20000709)
  i2c-philips-par: Now compiles on all 2.2 kernels
  i2c-core: Corrected some SMBus block commands-related stuff
  i2c-core: Much better error checking in (de)registering functions
  i2c-core: Saner and now even documented handling of dummy drivers

2.5.1 (20000618) and older:
  No data available

