On 03/21/2018 03:19 AM, Guenter Roeck wrote: > On 03/20/2018 04:17 PM, Vladimir Zapolskiy wrote: >> Hi Peter, Ken, >> >> On 03/20/2018 11:32 AM, Peter Rosin wrote: >>> Make the arbitrate and release_bus implementation chip specific. >>> >> >> by chance I took a look at the original implementation done by Ken, and >> I would say that this 3/3 change is an overkill as a too generic one. >> Is there any next observable extension? And do two abstracted (*arbitrate) >> and (*release_bus) cover it well? Probably no. >> >> At first it would be simpler to add a new chip id field into struct pca9541 >> (struct rename would be needed of course), and do a selection of specific >> pca9x41_arbitrate() and pca9x41_release_bus() depending on it: >> > > FWIW, I very much prefer Peter's code. I think it is much cleaner. Peter's code is generic, and it makes the change about 3 times longer in lines of code, and the following pca9641 change on top of it will be larger as well, because generalization requires service. My main concern is that if such generalization is really needed in the driver. -- With best wishes, Vladimir