diff mbox

Input: h3600_ts_input - bugfix for request_irq()/free_irq() parameters

Message ID 1302698231.3002.4.camel@phoenix (mailing list archive)
State Accepted
Commit 4296f1ad5aa513500a87a4709579d31be8ba461f
Headers show

Commit Message

axel lin April 13, 2011, 12:37 p.m. UTC
The dev field of h3600_dev is a pointer, thus use ts->dev instead of &ts->dev
as the dev_id argument while calling request_irq()/free_irq().

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/input/touchscreen/h3600_ts_input.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

Comments

axel lin May 1, 2011, 4:23 p.m. UTC | #1
Hi Dmitry,

2011/4/29 Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> On Wed, Apr 13, 2011 at 08:37:11PM +0800, Axel Lin wrote:
>> The dev field of h3600_dev is a pointer, thus use ts->dev instead of &ts->dev
>> as the dev_id argument while calling request_irq()/free_irq().
>
> dev_id does not need to have specific type, it is just a cookie so as
> long as it's value is unique we are OK. &ts->dev works as well as
> ts->dev.

Then you might want to apply below patch:
http://www.spinics.net/lists/linux-input/msg15042.html

My original intension was to fix the irq driver data mismatch.

Regards,
Axel
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov May 1, 2011, 4:50 p.m. UTC | #2
On Mon, May 02, 2011 at 12:23:43AM +0800, Axel Lin wrote:
> Hi Dmitry,
> 
> 2011/4/29 Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> > On Wed, Apr 13, 2011 at 08:37:11PM +0800, Axel Lin wrote:
> >> The dev field of h3600_dev is a pointer, thus use ts->dev instead of &ts->dev
> >> as the dev_id argument while calling request_irq()/free_irq().
> >
> > dev_id does not need to have specific type, it is just a cookie so as
> > long as it's value is unique we are OK. &ts->dev works as well as
> > ts->dev.
> 
> Then you might want to apply below patch:
> http://www.spinics.net/lists/linux-input/msg15042.html
> 
> My original intension was to fix the irq driver data mismatch.
> 

Ah, I see. Then I'll apply it but with teh above as commit message.
diff mbox

Patch

diff --git a/drivers/input/touchscreen/h3600_ts_input.c b/drivers/input/touchscreen/h3600_ts_input.c
index 45f93d0..211811a 100644
--- a/drivers/input/touchscreen/h3600_ts_input.c
+++ b/drivers/input/touchscreen/h3600_ts_input.c
@@ -396,14 +396,14 @@  static int h3600ts_connect(struct serio *serio, struct serio_driver *drv)
 	set_GPIO_IRQ_edge(GPIO_BITSY_NPOWER_BUTTON, GPIO_RISING_EDGE);
 
 	if (request_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, action_button_handler,
-			IRQF_SHARED | IRQF_DISABLED, "h3600_action", &ts->dev)) {
+			IRQF_SHARED | IRQF_DISABLED, "h3600_action", ts->dev)) {
 		printk(KERN_ERR "h3600ts.c: Could not allocate Action Button IRQ!\n");
 		err = -EBUSY;
 		goto fail1;
 	}
 
 	if (request_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, npower_button_handler,
-			IRQF_SHARED | IRQF_DISABLED, "h3600_suspend", &ts->dev)) {
+			IRQF_SHARED | IRQF_DISABLED, "h3600_suspend", ts->dev)) {
 		printk(KERN_ERR "h3600ts.c: Could not allocate Power Button IRQ!\n");
 		err = -EBUSY;
 		goto fail2;
@@ -439,8 +439,8 @@  static void h3600ts_disconnect(struct serio *serio)
 {
 	struct h3600_dev *ts = serio_get_drvdata(serio);
 
-	free_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, &ts->dev);
-	free_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, &ts->dev);
+	free_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, ts->dev);
+	free_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, ts->dev);
 	input_get_device(ts->dev);
 	input_unregister_device(ts->dev);
 	serio_close(serio);