diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2011-07-25 17:49:43 +0200 |
---|---|---|
committer | Jean Delvare <khali@endymion.delvare> | 2011-07-25 17:49:43 +0200 |
commit | 488bf314bf219c66922305a1a320950efa86662f (patch) | |
tree | 84337cff8d57af18311129495f7cac4979845c55 /drivers/i2c/i2c-core.c | |
parent | 3fea5df41df685de53aa985678ad7a9b2d6b3bb5 (diff) | |
download | linux-3.10-488bf314bf219c66922305a1a320950efa86662f.tar.gz linux-3.10-488bf314bf219c66922305a1a320950efa86662f.tar.bz2 linux-3.10-488bf314bf219c66922305a1a320950efa86662f.zip |
i2c: Allow i2c_add_numbered_adapter() to assign a bus id
Currently, if an i2c bus driver supports both static and dynamic bus
ids, it needs to choose between calling i2c_add_numbered_adapter() and
i2c_add_adapter(). This patch makes i2c_add_numbered_adapter()
redirect to i2c_add_adapter() if the requested bus id is -1.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/i2c/i2c-core.c')
-rw-r--r-- | drivers/i2c/i2c-core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 9a58994ff7e..131079a3e29 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -925,6 +925,9 @@ EXPORT_SYMBOL(i2c_add_adapter); * or otherwise built in to the system's mainboard, and where i2c_board_info * is used to properly configure I2C devices. * + * If the requested bus number is set to -1, then this function will behave + * identically to i2c_add_adapter, and will dynamically assign a bus number. + * * If no devices have pre-been declared for this bus, then be sure to * register the adapter before any dynamically allocated ones. Otherwise * the required bus ID may not be available. @@ -940,6 +943,8 @@ int i2c_add_numbered_adapter(struct i2c_adapter *adap) int id; int status; + if (adap->nr == -1) /* -1 means dynamically assign bus id */ + return i2c_add_adapter(adap); if (adap->nr & ~MAX_ID_MASK) return -EINVAL; |