Input: h3600_ts_input - bugfix for request_irq()/free_irq() parameters
Subsystems (2)
PATCH 1/1 Input: h3600_ts_input - bugfix for request_irq()/free_irq() parameters
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().
--- drivers/input/touchscreen/h3600_ts_input.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
drivers/input/touchscreen/h3600_ts_input.c +4 -4
@@ -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);
Signature · 1 line
1.7.1
Dmitry Torokhov
maintainerQuoted 2 lines · Axel Lin
The dev field of
h3600_devis a pointer, thus usets->devinstead of&ts->devas thedev_idargument 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.
Thanks.
Signature · 1 line
Dmitry
Hi Dmitry,
2011/4/29 Dmitry Torokhov <[email protected]>:
Quoted 7 lines · Axel Lin
Quoted 2 lines
The dev field of
h3600_devis a pointer, thus usets->devinstead of&ts->devas thedev_idargument while calling request_irq()/free_irq().
dev_iddoes not need to have specific type, it is just a cookie so as long as it's value is unique we are OK.&ts->devworks as well asts->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
Dmitry Torokhov
maintainerQuoted 7 lines · Axel Lin
Hi Dmitry,
2011/4/29 Dmitry Torokhov <[email protected]>:
Quoted 4 lines · Axel Lin
Quoted 2 lines
The dev field of
h3600_devis a pointer, thus usets->devinstead of&ts->devas thedev_idargument while calling request_irq()/free_irq().
Quoted 9 lines
Quoted 3 lines
dev_iddoes not need to have specific type, it is just a cookie so as long as it's value is unique we are OK.&ts->devworks as well asts->dev.Then you might want to apply below patch:
http://www.spinics.net/lists/linux-input/msg15042.htmlMy 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.
Signature · 1 line
Dmitry