Finally, here is my prototype to request an unused I2C address at runtime. This is needed by serial/deserializer pairs like GMSL or FPD-Link. This is the first outcome of various discussions how to support the above devices. It is only for obtaining the alias. I started sketching actual use cases for GMSL and FPD-Link, but they should not be part of this series. I am eager to get feedback on this, if this really matches what we discussed and if it is useful for downstream users as-is. I don't have GMSL hardware myself, so the last patch is a simple testcase which can be copied to any I2C driver you probe during boot. More testing is still needed, especially regression testing for the refactored functions in patch 1. kdocs are missing, too. I'd like some feedback on the approach first. While I think some kind of caching is useful, I am not super-happy with the actual implementation in patch 4. The use of another I2C_CLIENT_* flag just for the caching looks a bit too much to me. Still, I wanted to keep it simple for the users of this mechanism and not enforce a 'return-the-alias' function call. Anyhow, I hope this series is useful to you and will spawn fruitful discussion. Thanks for all your cooperation and working together in 2019. I am looking forward to continue that path in 2020. Have a great new year, everyone, Wolfram Wolfram Sang (5): i2c: core: refactor scanning for a client i2c: core: add new variant to check for a client i2c: core: add function to request an alias i2c: core: add simple caching to the 'alias' scanning simple test case for the I2C alias functionality drivers/i2c/i2c-core-base.c | 109 +++++++++++++++++++++++++----------- include/linux/i2c.h | 4 ++ sound/soc/codecs/ak4642.c | 20 +++++++ 3 files changed, 101 insertions(+), 32 deletions(-) -- 2.20.1