i2c: mlxbf: support lock mechanism
authorAsmaa Mnebhi <asmaa@nvidia.com>
Mon, 26 Sep 2022 19:45:04 +0000 (15:45 -0400)
committerWolfram Sang <wsa@kernel.org>
Tue, 27 Sep 2022 19:42:41 +0000 (21:42 +0200)
commit86067ccfa1424a26491542d6f6d7546d40b61a10
treefbd17002e4469a1285bd97307a7178e0c2ad039a
parent85f17d677f6c40069287617630f202eb20fcfe36
i2c: mlxbf: support lock mechanism

Linux is not the only entity using the BlueField I2C busses so
support a lock mechanism provided by hardware to avoid issues
when multiple entities are trying to access the same bus.

The lock is acquired whenever written explicitely or the lock
register is read. So make sure it is always released at the end
of a successful or failed transaction.

Fixes: b5b5b32081cd206b (i2c: mlxbf: I2C SMBus driver for Mellanox BlueField SoC)
Reviewed-by: Khalil Blaiech <kblaiech@nvidia.com>
Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-mlxbf.c