OK, sorry to nitpick, but could you do one more favor and split the commit message up into a short one-liner and longer text separated by a blank line, like: --- cpukit/libi2c allowed to probe on device init
libi2c registration of a device fails if the device initialization fails Benefits: allows for device probing on multiple addresses --- then I'll merge I promise. :) On Wed, Apr 1, 2015 at 11:41 AM, Alexandru-Sever Horin <alex.seve...@gmail.com> wrote: > From: Alexandru-Sever Horin <alex.seve...@gmail.com> > > --- > cpukit/libi2c/libi2c.c | 27 ++++++++++++++++----------- > 1 file changed, 16 insertions(+), 11 deletions(-) > > diff --git a/cpukit/libi2c/libi2c.c b/cpukit/libi2c/libi2c.c > index 233cb68..315a761 100644 > --- a/cpukit/libi2c/libi2c.c > +++ b/cpukit/libi2c/libi2c.c > @@ -736,6 +736,16 @@ rtems_libi2c_register_drv (const char *name, > rtems_libi2c_drv_t * drvtbl, > /* found a free slot; encode slot + 1 ! */ > minor = ((i + 1) << 13) | RTEMS_LIBI2C_MAKE_MINOR (busno, i2caddr); > > + /* before registering, try to initialize the device to check it's > there */ > + if (drvtbl->ops->initialization_entry) { > + err = drvtbl->ops->initialization_entry (rtems_libi2c_major, minor, > 0); > + if (err) { > + LIBUNLOCK (); > + /* returned value must be negative on failure */ > + return err < 0 ? err : -err; > + } > + } > + > if (name) { > size_t length = strlen (busses[busno].name) + strlen (name) + 2; > str = malloc (length); > @@ -751,9 +761,10 @@ rtems_libi2c_register_drv (const char *name, > rtems_libi2c_drv_t * drvtbl, > > /* note that 'umask' is applied to 'mode' */ > if (mknod (str, mode, dev)) { > - safe_printf( DRVNM > - "Creating device node failed: %s; you can try to do it > manually...\n", > - strerror (errno)); > + safe_printf ( DRVNM > + "Creating device node failed: %s;\n" > + "you can try to do it manually...\n", > + strerror (errno)); > } > > free (str); > @@ -761,17 +772,11 @@ rtems_libi2c_register_drv (const char *name, > rtems_libi2c_drv_t * drvtbl, > > drvs[i].drv = drvtbl; > > - if (drvtbl->ops->initialization_entry) > - err = > - drvs[i].drv->ops->initialization_entry (rtems_libi2c_major, minor, > - 0); > - else > - err = RTEMS_SUCCESSFUL; > - > LIBUNLOCK (); > - return err ? -err : minor; > + return minor; > } > } > + > LIBUNLOCK (); > return -RTEMS_TOO_MANY; > } > -- > 2.3.5 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel