> -----Original Message----- > From: linux-input-owner@xxxxxxxxxxxxxxx [mailto:linux-input- > owner@xxxxxxxxxxxxxxx] On Behalf Of Datta, Shubhrajyoti > Sent: Tuesday, July 27, 2010 11:15 PM > To: Dmitry Torokhov > Cc: linux-input@xxxxxxxxxxxxxxx > Subject: RE: [RFC][PATCH] GPIO keys > > Hi Dmitry, > > > -----Original Message----- > > From: Dmitry Torokhov [mailto:dmitry.torokhov@xxxxxxxxx] > > Sent: Tuesday, July 27, 2010 10:31 PM > > To: Datta, Shubhrajyoti > > Cc: linux-input@xxxxxxxxxxxxxxx > > Subject: Re: [RFC][PATCH] GPIO keys > > > > Hi Shubhrajyoti, > > > > On Tue, Jul 27, 2010 at 08:11:31PM +0530, Datta, Shubhrajyoti wrote: > > > > > > Allowing the call of open and close functions. > > > If the gpio-keys device has some initialization > > > to be done allow the call of platform functions. > > > An example would be to enable the device. > > > > > > > Makes sense, although I'd prefer 2 separate methods. Also, make sure you > > run you patch through scripts/checkpatch.pl - I see a coupe of small > > formatting issues (note that I do not care strongly about 80 column > > limit). > > > I did run checkpatch maybe you may be I corrupted something while sending. > Will check. > may be I corrupted something while sending. -Correcting the typo > I chose this approach as at later point maybe some driver may use it for > custom suspend and resume etc. However will send another patch if you so > prefer. > > Thanks. > > > > > Signed-off-by: Shubhrajyoti D <shubhrajyoti@xxxxxx> > > > --- > > > drivers/input/keyboard/gpio_keys.c | 23 +++++++++++++++++++++++ > > > include/linux/gpio_keys.h | 1 + > > > 2 files changed, 24 insertions(+), 0 deletions(-) > > > > > > diff --git a/drivers/input/keyboard/gpio_keys.c > > b/drivers/input/keyboard/gpio_keys.c > > > index b8213fd..f459f38 100644 > > > --- a/drivers/input/keyboard/gpio_keys.c > > > +++ b/drivers/input/keyboard/gpio_keys.c > > > @@ -38,6 +38,7 @@ struct gpio_keys_drvdata { > > > struct input_dev *input; > > > struct mutex disable_lock; > > > unsigned int n_buttons; > > > + void (*enable)(int state); > > > struct gpio_button_data data[0]; > > > }; > > > > > > @@ -414,6 +415,24 @@ fail2: > > > return error; > > > } > > > > > > +static int gpio_keys_open(struct input_dev *dev) > > > +{ > > > + struct gpio_keys_drvdata *ddata; > > > + ddata = input_get_drvdata(dev); > > > + if (ddata->enable) > > > + ddata->enable(1); > > > + return 0; > > > +} > > > + > > > +static void gpio_keys_close(struct input_dev *dev) > > > +{ > > > + struct gpio_keys_drvdata *ddata; > > > + > > > + ddata = input_get_drvdata(dev); > > > + if (ddata->enable) > > > + ddata->enable(0); > > > +} > > > + > > > static int __devinit gpio_keys_probe(struct platform_device *pdev) > > > { > > > struct gpio_keys_platform_data *pdata = pdev->dev.platform_data; > > > @@ -435,13 +454,17 @@ static int __devinit gpio_keys_probe(struct > > platform_device *pdev) > > > > > > ddata->input = input; > > > ddata->n_buttons = pdata->nbuttons; > > > + ddata->enable = pdata->enable; > > > mutex_init(&ddata->disable_lock); > > > > > > platform_set_drvdata(pdev, ddata); > > > + input_set_drvdata(input , ddata); > > > > > > input->name = pdev->name; > > > input->phys = "gpio-keys/input0"; > > > input->dev.parent = &pdev->dev; > > > + input->open = gpio_keys_open; > > > + input->close = gpio_keys_close; > > > > > > input->id.bustype = BUS_HOST; > > > input->id.vendor = 0x0001; > > > diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h > > > index cd0b3f3..5645996 100644 > > > --- a/include/linux/gpio_keys.h > > > +++ b/include/linux/gpio_keys.h > > > @@ -17,6 +17,7 @@ struct gpio_keys_platform_data { > > > struct gpio_keys_button *buttons; > > > int nbuttons; > > > unsigned int rep:1; /* enable input subsystem auto repeat > > */ > > > + void (*enable)(int state); > > > }; > > > > > > #endif > > > -- > > > 1.5.4.7 > > > > > > -- > > > 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 > > > > -- > > 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 -- 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