On Wed, May 07, 2025 at 03:19:06PM +0300, Cosmin Tanislav wrote:
> For upcoming GMSL drivers, we need to be able to use nested ATRs.
> The deserializer changes the address of the serializers, and can only
> do that for the serializers, while the serializers have proper address
> translation hardware, and can translate the address of its children.
>
> To achieve this, add a static flag and a passthrough flag.
> The static flag prevents usage of dynamic remapping by disallowing
> creation of new mappings outside of the attach_addr() function.
> The passthrough flag prevents messages coming from non-direct children
> (which don't have a local mapping) to be treated as erroneous.
>
> This series also contains various fixes to the logic observed during
> development.
>
> The previous version is at:
> https://lore.kernel.org/lkml/20250428102516.933571-1-demonsingur@gmail.com
>
> V5:
> * pick up Reviewed-by tags
> * expand the I2C_ATR_F_STATIC description
> * place i2c_atr_create_mapping_by_addr() before
> i2c_atr_replace_mapping_by_addr()
>
> V4:
> * rebase on latest merged changes, and latest submitted fixes
>
> V3:
> * remove i2c_atr_new_flags(), add flags parameter to i2c_atr_new() in
> a new patch
> * remove "i2c: atr: unlock mutex after c2a access" patch as it will
> be moved into the base series
> * remove alias_pairs variable used only once
> * remove err_del_c2a label used only once
> * add lockdep_assert_held to i2c_atr_create_mapping_by_addr()
> * I2C_ATR_STATIC -> I2C_ATR_F_STATIC
> * I2C_ATR_PASSTHROUGH -> I2C_ATR_F_PASSTHROUGH
> * add passthrough check to i2c_atr_smbus_xfer()
>
> V2:
> * rename and split up i2c_atr_find_mapping_by_addr() to allow for
> usage of parts of its logic where applicable
>
> Cosmin Tanislav (8):
> i2c: atr: find_mapping() -> get_mapping()
> i2c: atr: split up i2c_atr_get_mapping_by_addr()
> i2c: atr: do not create mapping in detach_addr()
> i2c: atr: deduplicate logic in attach_addr()
> i2c: atr: allow replacing mappings in attach_addr()
> i2c: atr: add flags parameter to i2c_atr_new()
> i2c: atr: add static flag
> i2c: atr: add passthrough flag
>
> Tomi Valkeinen (1):
> i2c: atr: Fix lockdep for nested ATRs
>
Applied to for-next, thanks!