Re: [PATCH v7 16/24] i2c: allow adapter drivers to override the adapter locking

Wolfram Sang
2016-04-28T20:50:49Z

[-- Attachment #1: Type: text/plain, Size: 1316 bytes --]

On Wed, Apr 20, 2016 at 05:17:56PM +0200, Peter Rosin wrote:
> Add i2c_lock_bus() and i2c_unlock_bus(), which call the new lock_bus and
> unlock_bus ops in the adapter. These funcs/ops take an additional flags
> argument that indicates for what purpose the adapter is locked.
>
> There are two flags, I2C_LOCK_ADAPTER and I2C_LOCK_SEGMENT, but they are
> both implemented the same. For now. Locking the adapter means that the
> whole bus is locked, locking the segment means that only the current bus
> segment is locked (i.e. i2c traffic on the parent side of mux is still
> allowed even if the child side of the mux is locked.
>
> Also support a trylock_bus op (but no function to call it, as it is not
> expected to be needed outside of the i2c core).
>
> Implement i2c_lock_adapter/i2c_unlock_adapter in terms of the new locking
> scheme (i.e. lock with the I2C_LOCK_ADAPTER flag).
>
> Annotate some of the locking with explicit I2C_LOCK_SEGMENT flags.
>
> Signed-off-by: Peter Rosin <peda@axentia.se>

Letting you know that I start reviewing the 2nd part of your series. Did
the first glimpse today. Will hopefully do the in-depth part this
weekend. One thing already:

> +static void i2c_adapter_lock_bus(struct i2c_adapter *adapter, int flags)

Shouldn't flags be unsigned?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]