Subsystem History

From Linux i2c Wiki
(Difference between revisions)
Jump to: navigation, search
(History of the i2c subsystem: Add entries for kernels 3.0 to 3.7)
(History of the i2c subsystem: Add code mark-up)
 
Line 10: Line 10:
 
| 3.6
 
| 3.6
 
|
 
|
* An unlocked flavor of function i2c_transfer was exported ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b37d2a3a75cb0e72e18c29336cb2095b63dabfc8 commit]).
+
* An unlocked flavor of function <code>i2c_transfer</code> was exported ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b37d2a3a75cb0e72e18c29336cb2095b63dabfc8 commit]).
 
* SCCB support was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=d47726c52122d64253ae56e0fafdb7d0b954e97c 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=72fc2c7f78b0c365454e60ad33b0e74aea43e3ab 2/2]).
 
* SCCB support was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=d47726c52122d64253ae56e0fafdb7d0b954e97c 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=72fc2c7f78b0c365454e60ad33b0e74aea43e3ab 2/2]).
 
|-
 
|-
 
| 3.5
 
| 3.5
 
|
 
|
* Helper function i2c_verify_adapter was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=643dd09eb27b40ced671564edbe2640935fe37c2 commit]).
+
* Helper function <code>i2c_verify_adapter</code> was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=643dd09eb27b40ced671564edbe2640935fe37c2 commit]).
* Support for I2C_M_RECV_LEN was added to i2c-dev ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=838bfa6049fb84dc66c9c9bbeb3a968ec987fd3d commit]).
+
* Support for <code>I2C_M_RECV_LEN</code> was added to i2c-dev ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=838bfa6049fb84dc66c9c9bbeb3a968ec987fd3d commit]).
* I2C_M_NOSTART support was split out of I2C_FUNC_PROTOCOL_MANGLING ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=14674e70119ea01549ce593d8901a797f8a90f74 commit]).
+
* <code>I2C_M_NOSTART</code> support was split out of <code>I2C_FUNC_PROTOCOL_MANGLING</code> ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=14674e70119ea01549ce593d8901a797f8a90f74 commit]).
 
|-
 
|-
 
| 3.3
 
| 3.3
 
|
 
|
* The module_i2c_driver helper macro was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=7c92784a546d2945b6d6973a30f7134be78eb7a4 commit]).
+
* The <code>module_i2c_driver</code> helper macro was added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=7c92784a546d2945b6d6973a30f7134be78eb7a4 commit]).
 
|-
 
|-
 
| 3.2
 
| 3.2
 
|
 
|
* Functions for byte-swapped smbus_write/read_word_data were added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=06a67848c6681a73e621e47c056490d51a07289f commit]).
+
* Functions for byte-swapped SMBus Read/Write Word were added ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=06a67848c6681a73e621e47c056490d51a07289f commit]).
 
* Device name for 10-bit slave address was fixed ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=cbb44514048a250647c6c6b3df27ff62cb71f7d5 commit]).
 
* Device name for 10-bit slave address was fixed ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=cbb44514048a250647c6c6b3df27ff62cb71f7d5 commit]).
 
|-
 
|-
 
| 3.1
 
| 3.1
 
|
 
|
* Function i2c_add_numbered_adapter was allowed to assign a bus id ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=488bf314bf219c66922305a1a320950efa86662f commit]).
+
* Function <code>i2c_add_numbered_adapter</code> was allowed to assign a bus id ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=488bf314bf219c66922305a1a320950efa86662f commit]).
 
|-
 
|-
 
| 2.6.39
 
| 2.6.39
 
|
 
|
* Header file <linux/i2c-id.h> was deleted ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0c31f8e5720e1191b4cf46a9b5374fe6b857c53c commit]) and i2c_adapter.id was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c185a9420bd1c645252249018e6887a968d3e1de commit]).
+
* Header file <linux/i2c-id.h> was deleted ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0c31f8e5720e1191b4cf46a9b5374fe6b857c53c commit]) and <code>i2c_adapter.id</code> was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c185a9420bd1c645252249018e6887a968d3e1de commit]).
* The i2c_for_each_dev iterator was made available to drivers ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ae31482a8376fb0df3a0c5ff0677a92820c06b7 commit]).
+
* The <code>i2c_for_each_dev</code> iterator was made available to drivers ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ae31482a8376fb0df3a0c5ff0677a92820c06b7 commit]).
* i2c_driver.attach_adapter and i2c_driver.detach_adapter were deprecated ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ea3e941d161f41f920462c50e9b651cc00eccc7 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fe6fc25857d293546bd400432cdb77866c797c9b 2/2]).
+
* <code>i2c_driver.attach_adapter</code> and <code>i2c_driver.detach_adapter</code> were deprecated ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ea3e941d161f41f920462c50e9b651cc00eccc7 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fe6fc25857d293546bd400432cdb77866c797c9b 2/2]).
 
|-
 
|-
 
| 2.6.37
 
| 2.6.37
 
|
 
|
* Function i2c_parent_is_i2c_adapter was changed to return the parent adapter ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97cc4d49cfcda1c2dad89c00b62a25b628ce2115 commit]).
+
* Function <code>i2c_parent_is_i2c_adapter</code> was changed to return the parent adapter ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97cc4d49cfcda1c2dad89c00b62a25b628ce2115 commit]).
* The I2C_CLASS_TV_* flags were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbf4bd380a9caa72118525eabe7b82c6a3c8da78 commit]).
+
* The <code>I2C_CLASS_TV_ANALOG</code> and <code>I2C_CLASS_TV_DIGITAL</code> flags were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbf4bd380a9caa72118525eabe7b82c6a3c8da78 commit]).
 
|-
 
|-
 
| 2.6.36
 
| 2.6.36
Line 61: Line 61:
 
| 2.6.33
 
| 2.6.33
 
|
 
|
* Probe, ignore and force module parameters were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c7b25a9e96dc89954ae8d8f473f56fae62030f84 commit]).<br />Structure i2c_client_address_data was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3813d6af177fab19e322f3114b1f64fbcf08d71 commit]).<br />The "kind" parameter of detect driver callbacks was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=310ec79210d754afe51e2e4a983e846b60179abd commit]).
+
* Probe, ignore and force module parameters were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c7b25a9e96dc89954ae8d8f473f56fae62030f84 commit]).<br />Structure <code>i2c_client_address_data</code> was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3813d6af177fab19e322f3114b1f64fbcf08d71 commit]).<br />The "kind" parameter of detect driver callbacks was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=310ec79210d754afe51e2e4a983e846b60179abd commit]).
* The I2C_CLIENT_INSMOD_* macros were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f86df49ddfd0067cce941187d57b2fd2f749a9e 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5e9f44c246fbafe723e579e9fe887677beb40e4 2/2]).<br />The I2C_CLIENT_MODULE_PARM macro was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7f508118b1c1f9856a1c899a2bd4867a962b0225 commit]).
+
* The <code>I2C_CLIENT_INSMOD_*</code> macros were dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f86df49ddfd0067cce941187d57b2fd2f749a9e 1/2], [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5e9f44c246fbafe723e579e9fe887677beb40e4 2/2]).<br />The <code>I2C_CLIENT_MODULE_PARM</code> macro was dropped ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7f508118b1c1f9856a1c899a2bd4867a962b0225 commit]).
 
* Adapter locking moved to real-time mutex ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=194684e596af4bdaebb424166d94a8aa528edfda commit]).
 
* Adapter locking moved to real-time mutex ([http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=194684e596af4bdaebb424166d94a8aa528edfda commit]).
 
|-
 
|-

Latest revision as of 09:13, 29 November 2012

[edit] History of the i2c subsystem

This document lists the important changes that happened to the i2c subsystem over time. Device driver changes are purposely not listed. Changes are listed from newest to oldest.

Kernel version Changes
3.6
  • An unlocked flavor of function i2c_transfer was exported (commit).
  • SCCB support was added (1/2, 2/2).
3.5
  • Helper function i2c_verify_adapter was added (commit).
  • Support for I2C_M_RECV_LEN was added to i2c-dev (commit).
  • I2C_M_NOSTART support was split out of I2C_FUNC_PROTOCOL_MANGLING (commit).
3.3
  • The module_i2c_driver helper macro was added (commit).
3.2
  • Functions for byte-swapped SMBus Read/Write Word were added (commit).
  • Device name for 10-bit slave address was fixed (commit).
3.1
  • Function i2c_add_numbered_adapter was allowed to assign a bus id (commit).
2.6.39
  • Header file <linux/i2c-id.h> was deleted (commit) and i2c_adapter.id was dropped (commit).
  • The i2c_for_each_dev iterator was made available to drivers (commit).
  • i2c_driver.attach_adapter and i2c_driver.detach_adapter were deprecated (1/2, 2/2).
2.6.37
  • Function i2c_parent_is_i2c_adapter was changed to return the parent adapter (commit).
  • The I2C_CLASS_TV_ANALOG and I2C_CLASS_TV_DIGITAL flags were dropped (commit).
2.6.36
  • Support for custom probe functions was added (1/2, 2/2).
  • Support for multiplexed I2C bus topologies was added (commit).
2.6.35
  • User-space device lists are now handled per adapter (commit).
  • The same I2C device presence detection logic is used everywhere (1/2, 2/2).
2.6.34
  • Support for SMBus alert was added (commit).
  • Directory drivers/i2c/chips was emptied and deleted (commit).
    Configuration option I2C_DEBUG_CHIP was dropped (commit).
  • Pre- and post-transfer hooks were added to i2c-algo-bit (commit).
2.6.33
  • Probe, ignore and force module parameters were dropped (commit).
    Structure i2c_client_address_data was dropped (commit).
    The "kind" parameter of detect driver callbacks was dropped (commit).
  • The I2C_CLIENT_INSMOD_* macros were dropped (1/2, 2/2).
    The I2C_CLIENT_MODULE_PARM macro was dropped (commit).
  • Adapter locking moved to real-time mutex (commit).
2.6.32
  • I2C bus segments (i2c_adapter) were converted from class devices to bus devices (1/2, 2/2).
2.6.31
  • Support for instantiating I2C devices from user-space (using sysfs) was added (commit).
2.6.25
  • Migration to the standard device driver binding model was finalized (1/4, 2/4, 3/4, 4/4).
2.6.22
  • Migration to the standard device driver binding model was initiated (1/5, 2/5, 3/5, 4/5, 5/5).
2.6.21
  • Driver suspend/resume/shutdown support was added (commit).
Personal tools