Hi Mike, On Tue, Jan 12, 2010 at 04:04:57PM -0500, Mike Frysinger wrote: > + > + err = gpiochip_add(&ts->gc); > + if (err) > + dev_err(&bus->dev, "failed to register gpio %d\n", > + ts->gc.base); > + } So if it fails here... > + struct ad7879_platform_data *pdata = bus->dev.platform_data; > + if (pdata->gpio_export) { > + if (gpiochip_remove(&ts->gc)) > + dev_err(&bus->dev, "failed to remove gpio %d\n", > + ts->gc.base); ... how valid is it to remove it here? Also, could you stub out ad7879_gptiochip_export/ad7879_gptiochip_unexport in case of !CONFIG_GPIOLIB? > + } > +#endif > + > ad7879_disable(ts); > sysfs_remove_group(&ts->bus->dev.kobj, &ad7879_attr_group); > free_irq(ts->bus->irq, ts); > diff --git a/include/linux/spi/ad7879.h b/include/linux/spi/ad7879.h > index 4231104..7231eab 100644 > --- a/include/linux/spi/ad7879.h > +++ b/include/linux/spi/ad7879.h > @@ -28,8 +28,12 @@ struct ad7879_platform_data { > * 1 = 4, 2 = 8, 3 = 16 (median > averaging) > */ > u8 median; > - /* 1 = AUX/VBAT/GPIO set to GPIO Output */ > - u8 gpio_output; > - /* Initial GPIO pin state (valid if gpio_output = 1) */ > - u8 gpio_default; > + /* 1 = AUX/VBAT/GPIO export GPIO to gpiolib > + * requires CONFIG_GPIOLIB > + */ > + u8 gpio_export; And make this a bool while you are at it. Thanks! -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html