> I do not feel myself experienced I2C developer, so please be merciful if > I write stupid things :) Don't worry :) Thanks for sharing! > From what I see the whole recovery infrastructure partially duplicates > i2c_bit_algo/i2c_algo_bit_data algorithm, and GPIO recovery duplicates > i2c-gpio driver. > Wouldn't be better to somehow reuse existing code? For example by adding > recovery callback in i2c_algorithm, and call i2c-gpio::recovery or > i2c_bit_algo::recovery from rcar-i2c-recovery (in this particular case). I understand what you mean but I also don't think it is a good idea in practice. We can't save much by using i2c-gpio, because GPIO is only one use-case, having custom set/get functions being another one, for example. A bigger chance for reuse would, in deed, be i2c-algo-bit.c, but there are some subtle differences and encoding them in the generic functions would make them more unreadable IMHO. But the real argument is: dependency hell. The core might be build-in, the rest is a module, and things get more complicated. And I don't want to enforce this on _every_ I2C user out there. So, given the really simple functions, I think it makes sense to have them in the core.
Attachment:
signature.asc
Description: PGP signature