On 08.03.2012 09:50, Jean-Christophe PLAGNIOL-VILLARD wrote: > +static int __devinit of_i2c_gpio_probe(struct device_node *np, > + struct i2c_gpio_platform_data *pdata) > +{ > + u32 reg; > + > + if (of_gpio_count(np) < 2) > + return -ENODEV; > + > + pdata->sda_pin = of_get_gpio(np, 0); > + pdata->scl_pin = of_get_gpio(np, 1); > + > + if (pdata->sda_pin < 0 || pdata->scl_pin < 0) { > + pr_err("%s: invalid GPIO pins, sda=%d/scl=%d\n", > + np->full_name, pdata->sda_pin, pdata->scl_pin); > + return -ENODEV; > + } > + > + of_property_read_u32(np, "i2c-gpio,delay-us", &pdata->udelay); > + > + if (of_property_read_u32(np, "i2c-gpio,timeout-ms", ®)) > + pdata->timeout = msecs_to_jiffies(reg); I've already said (two times!) that of_property_read_u32() returns nonzero (negative) error code on _error_. Don't you see obvious error in above code fragment? You assign to pdata->timeout on _error_. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html