diff options
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;  |