i2c: Add an interface to lock/unlock an I2C bus segment
Some drivers need to be able to prevent access to an I2C bus segment for a specific period of time. Add an interface for them to do so without twiddling with i2c-core internals. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
@@ -188,7 +188,7 @@ static int sfn4111t_reset(struct efx_nic *efx)
|
||||
efx_oword_t reg;
|
||||
|
||||
/* GPIO 3 and the GPIO register are shared with I2C, so block that */
|
||||
mutex_lock(&efx->i2c_adap.bus_lock);
|
||||
i2c_lock_adapter(&efx->i2c_adap);
|
||||
|
||||
/* Pull RST_N (GPIO 2) low then let it up again, setting the
|
||||
* FLASH_CFG_1 strap (GPIO 3) appropriately. Only change the
|
||||
@@ -204,7 +204,7 @@ static int sfn4111t_reset(struct efx_nic *efx)
|
||||
falcon_write(efx, ®, GPIO_CTL_REG_KER);
|
||||
msleep(1);
|
||||
|
||||
mutex_unlock(&efx->i2c_adap.bus_lock);
|
||||
i2c_unlock_adapter(&efx->i2c_adap);
|
||||
|
||||
ssleep(1);
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user