Hi Lee, On Mon, Nov 26, 2012 at 12:01:43PM +0000, Lee Jones wrote: > /** > + * bu21013_gpio_board_init() - configures the touch panel > + * @reset_pin: reset pin number > + * > + * This function is used to configure the voltage and > + * reset the touch panel controller. > + */ > +static int bu21013_gpio_board_init(int reset_pin) > +{ > + int retval = 0; > + > + retval = gpio_request_one(reset_pin, GPIOF_INIT_HIGH, "touchp_reset"); Also need to specify dircetion (even though it defaults to output). > + if (retval) { > + printk(KERN_ERR "Unable to request gpio reset_pin"); > + return retval; > + } > + > + return retval; > +} > + > +/** > + * bu21013_gpio_board_exit() - deconfigures the touch panel controller > + * @reset_pin: reset pin number > + * > + * This function is used to deconfigure the chip selection > + * for touch panel controller. > + */ > +static int bu21013_gpio_board_exit(int reset_pin) > +{ > + int retval = 0; > + > + retval = gpio_direction_output(reset_pin, 0); > + if (retval < 0) { > + printk(KERN_ERR "%s: gpio direction failed\n", > + __func__); > + return retval; You should not return here, as gpio has to be freed even if you unable to toggle it. > + } > + gpio_set_value(reset_pin, 0); > + gpio_free(reset_pin); > + > + return retval; > +} > + > +/** > * bu21013_init_chip() - power on sequence for the bu21013 controller > * @data: device structure pointer > * > @@ -449,6 +493,8 @@ static int __devinit bu21013_probe(struct i2c_client *client, > return -EINVAL; > } > > + pdata->irq = gpio_to_irq(pdata->touch_pin); > + No, you still can not do it since pdata is a const pointer. Does not your compiler throw a warning here? I already sent you a version of the patch that does not have these issues, is there a particular reason why you needed to roll your own instead of simply trying out the one I sent? 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