Message ID | 20250507121917.2364416-1-demonsingur@gmail.com |
---|---|
Headers | show |
Series | i2c: atr: allow usage of nested ATRs | expand |
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!