> +static int i2c_mux_trylock_bus(struct i2c_adapter *adapter, int flags) > +{ > + struct i2c_mux_priv *priv = adapter->algo_data; > + struct i2c_adapter *parent = priv->muxc->parent; > + > + if (!rt_mutex_trylock(&parent->mux_lock)) > + return 0; > + if (!(flags & I2C_LOCK_ADAPTER)) > + return 1; > + if (parent->trylock_bus(parent, flags)) > + return 1; > + rt_mutex_unlock(&parent->mux_lock); > + return 0; > +} This function needs a few short comments why we can leave in this or that state. Not everyone knows the exit values of trylock by heart and then it can look a little confusing. > static int i2c_parent_trylock_bus(struct i2c_adapter *adapter, int flags) > @@ -111,7 +189,12 @@ static int i2c_parent_trylock_bus(struct i2c_adapter *adapter, int flags) > struct i2c_mux_priv *priv = adapter->algo_data; > struct i2c_adapter *parent = priv->muxc->parent; > > - return parent->trylock_bus(parent, flags); > + if (!rt_mutex_trylock(&parent->mux_lock)) > + return 0; > + if (parent->trylock_bus(parent, flags)) > + return 1; > + rt_mutex_unlock(&parent->mux_lock); > + return 0; > } Same comment as i2c_mux_trylock_bus. > struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent, > struct device *dev, int max_adapters, > @@ -140,6 +250,8 @@ struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent, > > muxc->parent = parent; > muxc->dev = dev; > + if (flags & I2C_MUX_LOCKED) > + muxc->mux_locked = 1; s/1/true/; -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html