On Wed, Jun 01, 2022 at 08:48:07AM -0500, Dinh Nguyen wrote: > On 5/24/22 11:43, Andy Shevchenko wrote: > > On Tue, May 24, 2022 at 08:54:40AM -0500, Dinh Nguyen wrote: ... > > > + switch (dev->flags & MODEL_MASK) { > > > + case MODEL_SOCFPGA: > > > + rinfo->recover_bus = i2c_socfpga_scl_recovery; > > > + break; > > > + default: > > > + rinfo->recover_bus = i2c_generic_scl_recovery; > > > + break; > > > + } > > > > > + adap->bus_recovery_info = rinfo; > > > > Usually we do not assign the pointer while data structure is incomplete. > > That's said, please leave this line as it was. > > > > On top of that, why you can't move the above switch to the place where old > > function was assigned? > > The reason is the assignment of the recover_bus needs to get done before the > call to devm_gpiod_get_optional(), otherwise, the assignment is not taking > place because of an error after returning from devm_gpiod_get_optional(). Update commit message accordingly then. Also consider moving GPIO request part in the code, maybe it will bring better looking / grouped code. Try and see, then choose the best one. -- With Best Regards, Andy Shevchenko