| 1 | i2c CHANGES file |
|---|
| 2 | ----------------------- |
|---|
| 3 | This is a list of the most important changes between 2.x versions. It is by |
|---|
| 4 | no means complete, listing only user-visible changes which are interesting. |
|---|
| 5 | The ultimate way to know what has changed is to run diff, or even neater, |
|---|
| 6 | ask CVS about it: |
|---|
| 7 | |
|---|
| 8 | * Checkout the archive (see doc/cvs for how you can do this) |
|---|
| 9 | * Determine which tags are valid, by running this command from the |
|---|
| 10 | project root directory: |
|---|
| 11 | cvs status -v -l Makefile |
|---|
| 12 | Valid tags are usually like form V2-1-0 for version 2.1.0 |
|---|
| 13 | * Ask cvs for the difference between two versions: |
|---|
| 14 | cvs diff -r TAG1 -r TAG2 DIFF-OPTIONS |
|---|
| 15 | for example: |
|---|
| 16 | cvs diff -r V2-0-0 -r V2-0-1 -u |
|---|
| 17 | |
|---|
| 18 | ----------------------------------------------------------------------------- |
|---|
| 19 | |
|---|
| 20 | 2.9.3 (2005????) |
|---|
| 21 | doc/functionality: Fix I2C_FUNC_PROTOCOL_MANGLING description (Hideki |
|---|
| 22 | Iwamoto) |
|---|
| 23 | doc/writing-clients: New memory allocation model |
|---|
| 24 | i2c-core: Fix logic error in SMBus Write Word transaction with software |
|---|
| 25 | PEC (Hideki Iwamoto) |
|---|
| 26 | Fix temporary buffer size for SMBus Block Write transaction with |
|---|
| 27 | software PEC (Hideki Iwamoto) |
|---|
| 28 | Fix buffer overrun in SMBus Block Write and Block Process Call |
|---|
| 29 | transactions (Hideki Iwamoto) |
|---|
| 30 | Rewrite software PEC implementation (2.6 backport) |
|---|
| 31 | Improve debugging in i2c_transfer (2.6 backport) |
|---|
| 32 | i2c.h: Fix union i2c_smbus_data definition |
|---|
| 33 | Delete 2 out-of-date, colliding ioctl defines |
|---|
| 34 | Drop I2C_FUNC_SMBUS_*_PEC (2.6 backport) |
|---|
| 35 | Drop I2C_SMBUS_*_PEC (2.6 backport) |
|---|
| 36 | |
|---|
| 37 | 2.9.2 (20050906) |
|---|
| 38 | Makefile: Do not compile i2c-algo-biths by default |
|---|
| 39 | Detect 2.6+ kernels and stop |
|---|
| 40 | i2c-core, i2c-proc: Fix cast warnings on gcc 3.3 |
|---|
| 41 | i2c.h: Drop additional members of struct i2c_msg, so as to |
|---|
| 42 | restore the binary compatibility with Linux 2.4 |
|---|
| 43 | i2c-dev.h: Fix compilation problem (missing include) |
|---|
| 44 | i2c-algo-bit: Drop Linux 2.5+ compatibility code |
|---|
| 45 | |
|---|
| 46 | |
|---|
| 47 | 2.9.1 (20050412) |
|---|
| 48 | Interface changes |
|---|
| 49 | - Restore binary compatibility with Linux 2.4 |
|---|
| 50 | Makefile: Revert the header install removal |
|---|
| 51 | Support sparc64 (Nicolas Boullis) |
|---|
| 52 | Support mips and sparc32 (Aurelien Jarno) |
|---|
| 53 | Use -fno-strict-aliasing on all architectures |
|---|
| 54 | i2c-core: Unhide i2c_get_client |
|---|
| 55 | Fix force parameter loop iteration |
|---|
| 56 | i2c-id.h: Add ID for Marvell 64xxx |
|---|
| 57 | Sync IDs with Linux 2.6 |
|---|
| 58 | i2c.h: Drop 2.4.9 compatibility define of MODULE_LICENSE |
|---|
| 59 | Fix defines lacking parentheses (Corey Minyard) |
|---|
| 60 | i2c-algo-bit, i2c-algo-biths, i2c-algo-pcf: Declare I2C_FUNC_I2C |
|---|
| 61 | as being supported |
|---|
| 62 | i2c-algo-biths: Replace assembly code by C (Aurelien Jarno) |
|---|
| 63 | |
|---|
| 64 | 2.9.0 (20041228) |
|---|
| 65 | Interface changes |
|---|
| 66 | - Struct i2c_adapter: restore inc_use() and dec_use(), remove owner |
|---|
| 67 | - Struct i2c_algorithm: remove owner |
|---|
| 68 | - Struct i2c_driver: restore inc_use() and dec_use(), remove owner |
|---|
| 69 | - Restore controlling_mod argument in i2c_register_entry() |
|---|
| 70 | These changes restore compatibility with pre-2.8.0 i2c, in |
|---|
| 71 | particular with the version of i2c present in the Linux 2.4 kernels. |
|---|
| 72 | Makefile: Do not export any kernel header |
|---|
| 73 | i2c-id.h: Add IDs for virtual adapter, lpc47b397 |
|---|
| 74 | i2c-proc.c: Increase SENSORS_ENTRY_MAX to 24 |
|---|
| 75 | i2c-proc.c: Fix a bug in the real parsing code |
|---|
| 76 | mkpatch: Generate diffs for drivers/i2c/Config.in and |
|---|
| 77 | drivers/i2c/Makefile again |
|---|
| 78 | |
|---|
| 79 | 2.8.8 (20041007) |
|---|
| 80 | Makefile: Do not export i2c-dev.h |
|---|
| 81 | i2c-pport.c: Code cleanups |
|---|
| 82 | Do not test lines, i2c-algo-bit already does |
|---|
| 83 | i2c-proc.c: Do not rely on procname but instead on ctl_name to determine |
|---|
| 84 | sysctl table lengths. (Louis-Martin Cote) |
|---|
| 85 | |
|---|
| 86 | 2.8.7 (20040611) |
|---|
| 87 | Makefile: Do not run depmod on staged installs (Peter Breitenlohner) |
|---|
| 88 | i2c-id.h: Add IDs for MAX6900, PCILYNX, SIBYTE, SGI_VINO, SGI_MACE |
|---|
| 89 | i2c-proc.c: Fail to compile if kernel lacks sysctl support |
|---|
| 90 | |
|---|
| 91 | NOTE: there was no 2.8.5 or 2.8.6 release |
|---|
| 92 | |
|---|
| 93 | 2.8.4 (20040207) |
|---|
| 94 | i2c-id.h: Add IDs for the OV511 project |
|---|
| 95 | i2c-philips-par.c: Fix bus reset with type!=0 |
|---|
| 96 | |
|---|
| 97 | 2.8.3 (20040115) |
|---|
| 98 | File i2c-rh.spec: Updated |
|---|
| 99 | Makefile: Update Alpha CMODFLAGS (Daniel Nilsson) |
|---|
| 100 | Makefiles: Remove -o and -g arguments to install |
|---|
| 101 | i2c.h: Add I2C_M_RECV_LEN and I2C_M_RECV_PEC |
|---|
| 102 | i2c-algo-bit.c: Add SMBus block read and block process call emulation |
|---|
| 103 | i2c-core.c: Add SMBus block read and block process call emulation |
|---|
| 104 | |
|---|
| 105 | 2.8.2 (20031211) |
|---|
| 106 | Makefiles: Fail if no kernel .config file exists |
|---|
| 107 | i2c-algo-bit: Fix sclhi() for adapters that do not have getscl(); |
|---|
| 108 | Enable bit_test for adapters that do not have getscl(); |
|---|
| 109 | Mostly rewrite test_bus(), cleaner and probably faster. |
|---|
| 110 | i2c-id.h: Add IDs for FSC Hermes, usbvision, and |
|---|
| 111 | drivers found in the Linux 2.4.22 kernel. |
|---|
| 112 | |
|---|
| 113 | 2.8.1 (20031005) |
|---|
| 114 | Modules (various): Fix includes for compilation on alpha |
|---|
| 115 | i2c.h: Add utility function i2c_delay(1) |
|---|
| 116 | i2c-algo-8xx.h: Header fix (Richard Laing) |
|---|
| 117 | i2c-core.c: Trivial bugfix to i2c_check_addr() |
|---|
| 118 | i2c-dev.c: Ioctl fixes: user/kernel bug, memory leak |
|---|
| 119 | (Robert T. Johnson, Sergey Vlasov) |
|---|
| 120 | i2c-elektor.c: Fix memory mapped I/O |
|---|
| 121 | i2c-id.h: Add IDs for the LM90, ASB100, Radeon, Xeon, MAX6650 |
|---|
| 122 | |
|---|
| 123 | 2.8.0 (20030714) |
|---|
| 124 | Interface changes: |
|---|
| 125 | - File i2c-dev.h: remove all userspace code, moved to |
|---|
| 126 | i2c-dev.h in lm_sensors2 package |
|---|
| 127 | - Struct i2c_adapter: remove inc_use() and dec_use(), add owner, |
|---|
| 128 | remove client_count, replace semaphore lock |
|---|
| 129 | with semaphores bus and list. |
|---|
| 130 | - Struct i2c_algorithm: add owner |
|---|
| 131 | - Struct i2c_driver: remove inc_use() and dec_use() |
|---|
| 132 | - Struct i2c_msg: type changes; add err and done |
|---|
| 133 | - Struct i2c_smbus_ioctl_data, i2c_rdwr_ioctl_data: type changes |
|---|
| 134 | - Remove controlling_mod argument in i2c_register_entry() |
|---|
| 135 | - Remove i2c_inc_use_client() and i2c_dec_use_client() |
|---|
| 136 | - Add i2c_client_command() |
|---|
| 137 | Makefiles: Handle multiple UTS_RELEASE definitions in linux/version.h; |
|---|
| 138 | Remove old gzipped modules; remove old misc directory if empty; |
|---|
| 139 | Don't use /usr/include headers for modules; |
|---|
| 140 | Remove pre-2.4 installation method; |
|---|
| 141 | Run depmod after module installation |
|---|
| 142 | Modules (all): Cleanups including |
|---|
| 143 | - C99 initializers |
|---|
| 144 | - Remove #ifdef MODULE |
|---|
| 145 | - Remove #ifndef THIS_MODULE |
|---|
| 146 | - Remove #ifndef MODULE_LICENSE |
|---|
| 147 | - Remove init_MUTEX #define |
|---|
| 148 | - Remove EXPORT_NO_SYMBOLS |
|---|
| 149 | - Remove dummy xxx_command() definitions |
|---|
| 150 | - Use module_init() and module_exit() |
|---|
| 151 | drivers (several): make spinlock_t's static |
|---|
| 152 | i2c-algo-biths.[ch]: (new) Rewrite of i2c-algo-bit with improved |
|---|
| 153 | bus timing and error handling. |
|---|
| 154 | This is not a drop-in replacement for i2c-algo-bit. |
|---|
| 155 | Interface subject to change. |
|---|
| 156 | i2c-core.c: Rewrite locking; |
|---|
| 157 | Remove initialization of other modules in i2c_init_all() |
|---|
| 158 | i2c-dev.c: Fixes from kernel 2.4.21-rc7 |
|---|
| 159 | i2c-id.h: add IDs for i2c-algo-biths, W83627HF, LM85, nForce2, OMAHA, GUIDE, |
|---|
| 160 | MPC107, IXP2000, IXP425, IOP3XX, UDA1342, S3VIA |
|---|
| 161 | i2c-proc.c: Fix ignore and probe tests |
|---|
| 162 | mkpatch: Remove patching of drivers/char/mem.c |
|---|
| 163 | |
|---|
| 164 | 2.7.0 (20021208) |
|---|
| 165 | drivers (several): C99 initializers (sync w/ kernel 2.5.49); HZ fixes |
|---|
| 166 | i2c.h: Add I2C_M_IGNORE_NAK, I2C_M_NO_RD_ACK to flags. |
|---|
| 167 | i2c-algo-bit.c: Support I2C_M_IGNORE_NAK. Use time_after() with jiffies. |
|---|
| 168 | Debug message improvements. Fix clock high time in sclhi(). |
|---|
| 169 | i2c-algo-8xx.c: Several updates and cleanups |
|---|
| 170 | i2c-algo-ibm_ocp.[ch], i2c-adap-ibm_ocp.c: Rename i2c_iic_[add,del]_bus to |
|---|
| 171 | i2c_ocp... to avoid duplicate with i2c-algo-ite in kernel |
|---|
| 172 | i2c-core.c: Fix emulated i2c block writes |
|---|
| 173 | i2c-dev.c: Remove data copy limit |
|---|
| 174 | i2c-id.h: Add driver IDs for smart battery, IPMI, BMC, FS451, AMD8111, |
|---|
| 175 | SCx200 |
|---|
| 176 | i2c-proc.h: Add SENSORS_INSMOD_8; add naming for new dummy adapters |
|---|
| 177 | mkpatch: Fix export-objs |
|---|
| 178 | doc/i2c-protocol: Comment new client flags, fix I2C_M_NOSTART samples. |
|---|
| 179 | Makefile: Take kernel source location from /lib/modules/x.x.x/build; |
|---|
| 180 | add flags for x86_64 compiles |
|---|
| 181 | |
|---|
| 182 | 2.6.5 (20020915) |
|---|
| 183 | mkpatch: Fix i2c-algo-8xx.o target causing kernel to not compile; |
|---|
| 184 | add doc/i2c-old-porting, i2c-algo-8xx.[ch], i2c-adap-ibm_ocp.c, |
|---|
| 185 | i2c-algo-ibm_ocp.[ch], i2c-frodo, i2c-rpx, |
|---|
| 186 | i2c-pport, i2c-pcf-epp. |
|---|
| 187 | i2c-adap-ibm_ocp.c, i2c-elektor.c, i2c-pcf-epp.c : Replaced deprecated cli() |
|---|
| 188 | and sti() with spin_lock_irq(&driver_lock); and |
|---|
| 189 | spin_unlock_irq(&driver_lock); Added spinlock_t driver_lock = |
|---|
| 190 | SPIN_LOCK_UNLOCKED |
|---|
| 191 | i2c-adap-ibm_ocp.c, i2c-elektor.c, i2c-pcf-epp.c : Moved driver_lock to |
|---|
| 192 | module level and renamed to irq_driver_lock to avoid conflict with |
|---|
| 193 | driver_lock semaphore in i2c-core. |
|---|
| 194 | i2c-algo-8xx.c: Replaced deprecated save_flags(flags); cli() with |
|---|
| 195 | local_irq_save(flags); and restore_flags(flags) with |
|---|
| 196 | local_irq_restore(flags); |
|---|
| 197 | i2c-core.c: Remove buffer size limit in i2cproc_bus_read(); |
|---|
| 198 | add initializations for modules added to mkpatch. |
|---|
| 199 | i2c-id.h: Add driver IDs for MPC824X, SIS630, SIS645 |
|---|
| 200 | |
|---|
| 201 | 2.6.4 (20020719) (in kernel 2.5.32) |
|---|
| 202 | doc/i2c-old-porting: New |
|---|
| 203 | i2c.h: Add defines for SMBus 2.0 |
|---|
| 204 | i2c-algo-8xx.[ch]: Compile updates, Add GPL |
|---|
| 205 | i2c-algo-bit.c: Wait for clock low extension by slow devices; |
|---|
| 206 | add cond_resched() for 2.5 kernels |
|---|
| 207 | i2c-algo-ibm_ocp.[ch], i2c-adap-ibm_ocp.c: renamed from *ppc405*, rewritten |
|---|
| 208 | to support the ppc4xx kernel and multiple 4xx devices |
|---|
| 209 | i2c-core.c: Add SMBus 2.0 PEC and Block Process Call support; |
|---|
| 210 | change back to 'old' CONFIG names; |
|---|
| 211 | fix i2c emulated process call |
|---|
| 212 | i2c-dev.c: Add SMBus 2.0 PEC and Block Process Call support |
|---|
| 213 | i2c-dev.h: Add SMBus 2.0 Block Process Call support |
|---|
| 214 | i2c-frodo.c: New. Support for I2C on Frodo (2d3D, Inc. SA-1110 Dev Board). |
|---|
| 215 | i2c-id.h: Add driver IDs for Savage 4, smbus-arp, smbus-alert, DS1307, |
|---|
| 216 | SA-1110, SMSC47M1, ADV717x, ZR36067, ZR36120, VT1211, LM92, Frodo. |
|---|
| 217 | i2c-pcf-epp.c: Remove compile warning |
|---|
| 218 | i2c-proc.c: Check kmalloc() return code (sync with kernel 2.4.18) |
|---|
| 219 | i2c-rpx.c: Compile updates |
|---|
| 220 | mkpatch: Change back to 'old' CONFIG names |
|---|
| 221 | Makefiles: For 2.4+ kernels, modules now install in |
|---|
| 222 | kernel/drivers/i2c , not misc/ , and |
|---|
| 223 | removes old versions in misc/ . |
|---|
| 224 | Don't compile i2c-philips-par if no CONFIG_PARPORT. |
|---|
| 225 | Change back to 'old' CONFIG names. |
|---|
| 226 | |
|---|
| 227 | 2.6.3 (20020322) (in kernel 2.5.24) |
|---|
| 228 | TODO: Many updates |
|---|
| 229 | Config.in: i2c-proc requires sysctl |
|---|
| 230 | doc/i2c-velleman: New |
|---|
| 231 | drivers (all): Add message loglevels to printk's |
|---|
| 232 | i2c.h: Add defines for 2-byte address block reads/writes, SAA7108 |
|---|
| 233 | i2c-core.c, i2c-dev.h: Add SMBus emluated i2c block reads |
|---|
| 234 | i2c-core.c: Increase max buffer size for /proc/bus/i2c-x handler |
|---|
| 235 | i2c-pcf-epp.c: Fix so it compiles |
|---|
| 236 | i2c-philips-par.c: Check return code of parport_claim_or_block() |
|---|
| 237 | i2c-proc.[ch]: Change i2c_sysctl_real 3rd arg to unsigned for kernel 2.2.19; |
|---|
| 238 | printk if no sysctl support in kernel |
|---|
| 239 | mkpatch: Sync with kernel 2.4.15 (Configure.help) |
|---|
| 240 | Module.mk: Add i2c-pcf-epp |
|---|
| 241 | |
|---|
| 242 | 2.6.2 (20011118) |
|---|
| 243 | drivers (all): Add version to printk |
|---|
| 244 | drivers (all): sync with kernel 2.4.11 (Add MODULE_LICENSE("GPL")) |
|---|
| 245 | i2c-algo-8xx.c: Fix nasty cache problem |
|---|
| 246 | i2c-algo-pcf.c: Fix detection for some boards (PIN bit) |
|---|
| 247 | i2c-core.c: Don't redefine init_MUTEX() for kernels 2.2.18+; |
|---|
| 248 | fix CONFIG_xxx inconsistencies for i2c-elektor, i2c-elv, |
|---|
| 249 | i2c-philips-par, i2c-velleman |
|---|
| 250 | i2c-elektor.c: Fix segfault when module not inserted, and |
|---|
| 251 | small IRQ issue. |
|---|
| 252 | i2c-id.h: Add device IDs for Fujitsu-Siemens Poseidon and Scylla; |
|---|
| 253 | sync with kernel 2.4.10 (ITE IIC id's); add SAA7134 ID; |
|---|
| 254 | add PCF8591 ID. |
|---|
| 255 | mkpatch: Fix CONFIG_xxx inconsistencies for i2c-elektor, i2c-elv, |
|---|
| 256 | i2c-philips-par, i2c-velleman |
|---|
| 257 | |
|---|
| 258 | 2.6.1 (20010830) (in kernel 2.4.13) |
|---|
| 259 | drivers (all): Sync with kernel 2.4.2 (malloc.h -> slab.h) |
|---|
| 260 | i2c-core.c: Fix iteration bug in i2c_get_client(); |
|---|
| 261 | initialize i2c-proc if built-in. |
|---|
| 262 | i2c-dev.c: Sync with kernel 2.4.9 (i2cdev_lseek -> no_llseek) |
|---|
| 263 | i2c-id.h: Add device ID for Chrontel 700X driver; |
|---|
| 264 | add ID for primitive parallel port driver. |
|---|
| 265 | i2c-pport.c: New - not mkpatched by default |
|---|
| 266 | mkpatch/Config.in: PPC405 fix |
|---|
| 267 | |
|---|
| 268 | 2.6.0 (20010612) |
|---|
| 269 | Makefile: Added support for alpha architecture |
|---|
| 270 | i2c.h: Add #defines from lm_sensors i2c-isa.h |
|---|
| 271 | i2c-algo-8xx.[ch]: New - not built or mkpatched by default |
|---|
| 272 | i2c-algo-pcf.c: Increase I2C clock speed from 6.25 kHz to 50 kHz; |
|---|
| 273 | add detect code; remove test_bus function; |
|---|
| 274 | add support for multiple messages (proper generation |
|---|
| 275 | of stop/repstart sequences) |
|---|
| 276 | i2c-algo-ppc405.[ch]: New - not built or mkpatched by default |
|---|
| 277 | i2c-dev.c: Fix cleanup |
|---|
| 278 | i2c-elektor.c: Add Alpha detection; add support for memory mapped 8584 |
|---|
| 279 | behind a PCI bridge on Alphas; set interrupt bit correctly |
|---|
| 280 | i2c-elektor.h: Comment out unused structure for now |
|---|
| 281 | i2c-id.h: Add device ID's from lm_sensors sensors.h; add DEC Tsunami; |
|---|
| 282 | added ID's for VPX32XX, DRP3510, SP5055, STV0030. |
|---|
| 283 | i2c-ppc405.[ch]: New - not built or mkpatched by default |
|---|
| 284 | i2c-ppc405adap.h: New |
|---|
| 285 | i2c-proc.[ch]: New, from lm_sensors sensors.[ch] |
|---|
| 286 | i2c-rpx.c: New - not built or mkpatched by default |
|---|
| 287 | mkpatch: Add support for i2c-proc.[ch] |
|---|
| 288 | |
|---|
| 289 | 2.5.5 (20010115) (in kernel 2.4.0-prerelease) |
|---|
| 290 | mkpatch no longer supports 2.3 kernels |
|---|
| 291 | i2c-core.c: Fix SMBus emulated i2c block writes |
|---|
| 292 | |
|---|
| 293 | 2.5.4 (20001012) |
|---|
| 294 | i2c-id.h: Add VES1893, VES1820, SAA7113, TDA8444 |
|---|
| 295 | i2c-pcf-epp.c: New (no .h file, not compiled or patched to kernel) |
|---|
| 296 | |
|---|
| 297 | 2.5.3 (20001008) |
|---|
| 298 | i2c-dev.c: Fix bug that MOD_COUNT was incremented instead of decremented |
|---|
| 299 | on close; add devfs support. |
|---|
| 300 | i2c-id.h: Add algorithms for ACPI and ACCESS.bus |
|---|
| 301 | i2c-id.h: Add smart battery devices |
|---|
| 302 | i2c-id.h: Add ALI 1535 device |
|---|
| 303 | i2c-core.c, i2c-dev.c, i2c-dev.h, i2c.h: Add i2c block write support |
|---|
| 304 | |
|---|
| 305 | 2.5.2 (20000709) |
|---|
| 306 | i2c-philips-par: Now compiles on all 2.2 kernels |
|---|
| 307 | i2c-core: Corrected some SMBus block commands-related stuff |
|---|
| 308 | i2c-core: Much better error checking in (de)registering functions |
|---|
| 309 | i2c-core: Saner and now even documented handling of dummy drivers |
|---|
| 310 | |
|---|
| 311 | 2.5.1 (20000618) and older: |
|---|
| 312 | No data available |
|---|
| 313 | |
|---|