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 SVN about it.

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

2.10.2 (20070115)
  IMPORTANT_CHANGES: Obsolete, removed.
  DIRECTORIES: Useless, removed.
  RPM: Obsolete, removed.
  doc/smbus-protocol: Fix typo in SMBus Write Word Data description
                      (2.6 backport, Mike Frysinger)
  i2c.h: Drop declaration of unimplemented slave functions (2.6 backport)
  i2c-core: Drop useless bitmasking (2.6 backport)
  i2c-algo-bit: Cleanups (2.6 backport)
  i2c-elv: Fix test during device initialization (Willy Tarreau)

2.10.1 (20060924)
  Makefile: Fix i2c-pcf8584.h installation
            Fix depmod on non-running kernel version
  i2c-core, i2c.h: Mark block write buffers as const (2.6 backport)
  i2c-iop3xx: Fix return value of master_xfer method
  i2c-algo-*: i2c_add_adapter may fail (2.6 backport)

2.10.0 (20060214)
  doc/functionality: Fix I2C_FUNC_PROTOCOL_MANGLING description (Hideki
                     Iwamoto)
  doc/writing-clients: New memory allocation model
                       Drop empty command implementation example
  i2c-core: Fix logic error in SMBus Write Word transaction with software
            PEC (Hideki Iwamoto)
            Fix temporary buffer size for SMBus Block Write transaction with
            software PEC (Hideki Iwamoto)
            Fix buffer overrun in SMBus Block Write and Block Process Call
            transactions (Hideki Iwamoto)
            Rewrite software PEC implementation (2.6 backport)
            Improve debugging in i2c_transfer (2.6 backport)
  i2c-dev: Drop empty command implementation (2.6 backport, Laurent Riffard)
  i2c.h: Fix union i2c_smbus_data definition
         Delete 2 out-of-date, colliding ioctl defines
         Drop I2C_FUNC_SMBUS_*_PEC (2.6 backport)
         Drop I2C_SMBUS_*_PEC (2.6 backport)

2.9.2 (20050906)
  Makefile: Do not compile i2c-algo-biths by default
            Detect 2.6+ kernels and stop
  i2c-core, i2c-proc: Fix cast warnings on gcc 3.3
  i2c.h: Drop additional members of struct i2c_msg, so as to
         restore the binary compatibility with Linux 2.4
  i2c-dev.h: Fix compilation problem (missing include)
  i2c-algo-bit: Drop Linux 2.5+ compatibility code


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

