diff options
author | Fabio Estevam <fabio.estevam@freescale.com> | 2012-10-03 23:15:07 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-11-20 06:21:11 -0500 |
commit | 21eed07d122a69d32220256c9a461a9d047e92b9 (patch) | |
tree | e73d4d7b4ab25a4973d3a74443b836934b443f68 /drivers/input | |
parent | 8f520803d2a5dda0cf099c13cbf50ecf575d0341 (diff) |
Input: da9052_onkey.c: Convert to the new da9052 interrupt functions.
Use the new da9052 irq functions and allow the driver to probe successfully.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/misc/da9052_onkey.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/input/misc/da9052_onkey.c b/drivers/input/misc/da9052_onkey.c index 3c843cd725fa..3be3acc3a6eb 100644 --- a/drivers/input/misc/da9052_onkey.c +++ b/drivers/input/misc/da9052_onkey.c | |||
@@ -24,7 +24,6 @@ struct da9052_onkey { | |||
24 | struct da9052 *da9052; | 24 | struct da9052 *da9052; |
25 | struct input_dev *input; | 25 | struct input_dev *input; |
26 | struct delayed_work work; | 26 | struct delayed_work work; |
27 | unsigned int irq; | ||
28 | }; | 27 | }; |
29 | 28 | ||
30 | static void da9052_onkey_query(struct da9052_onkey *onkey) | 29 | static void da9052_onkey_query(struct da9052_onkey *onkey) |
@@ -76,7 +75,6 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev) | |||
76 | struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent); | 75 | struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent); |
77 | struct da9052_onkey *onkey; | 76 | struct da9052_onkey *onkey; |
78 | struct input_dev *input_dev; | 77 | struct input_dev *input_dev; |
79 | int irq; | ||
80 | int error; | 78 | int error; |
81 | 79 | ||
82 | if (!da9052) { | 80 | if (!da9052) { |
@@ -84,13 +82,6 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev) | |||
84 | return -EINVAL; | 82 | return -EINVAL; |
85 | } | 83 | } |
86 | 84 | ||
87 | irq = platform_get_irq_byname(pdev, "ONKEY"); | ||
88 | if (irq < 0) { | ||
89 | dev_err(&pdev->dev, | ||
90 | "Failed to get an IRQ for input device, %d\n", irq); | ||
91 | return -EINVAL; | ||
92 | } | ||
93 | |||
94 | onkey = kzalloc(sizeof(*onkey), GFP_KERNEL); | 85 | onkey = kzalloc(sizeof(*onkey), GFP_KERNEL); |
95 | input_dev = input_allocate_device(); | 86 | input_dev = input_allocate_device(); |
96 | if (!onkey || !input_dev) { | 87 | if (!onkey || !input_dev) { |
@@ -101,7 +92,6 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev) | |||
101 | 92 | ||
102 | onkey->input = input_dev; | 93 | onkey->input = input_dev; |
103 | onkey->da9052 = da9052; | 94 | onkey->da9052 = da9052; |
104 | onkey->irq = irq; | ||
105 | INIT_DELAYED_WORK(&onkey->work, da9052_onkey_work); | 95 | INIT_DELAYED_WORK(&onkey->work, da9052_onkey_work); |
106 | 96 | ||
107 | input_dev->name = "da9052-onkey"; | 97 | input_dev->name = "da9052-onkey"; |
@@ -111,13 +101,11 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev) | |||
111 | input_dev->evbit[0] = BIT_MASK(EV_KEY); | 101 | input_dev->evbit[0] = BIT_MASK(EV_KEY); |
112 | __set_bit(KEY_POWER, input_dev->keybit); | 102 | __set_bit(KEY_POWER, input_dev->keybit); |
113 | 103 | ||
114 | error = request_threaded_irq(onkey->irq, NULL, da9052_onkey_irq, | 104 | error = da9052_request_irq(onkey->da9052, DA9052_IRQ_NONKEY, "ONKEY", |
115 | IRQF_TRIGGER_LOW | IRQF_ONESHOT, | 105 | da9052_onkey_irq, onkey); |
116 | "ONKEY", onkey); | ||
117 | if (error < 0) { | 106 | if (error < 0) { |
118 | dev_err(onkey->da9052->dev, | 107 | dev_err(onkey->da9052->dev, |
119 | "Failed to register ONKEY IRQ %d, error = %d\n", | 108 | "Failed to register ONKEY IRQ: %d\n", error); |
120 | onkey->irq, error); | ||
121 | goto err_free_mem; | 109 | goto err_free_mem; |
122 | } | 110 | } |
123 | 111 | ||
@@ -132,7 +120,7 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev) | |||
132 | return 0; | 120 | return 0; |
133 | 121 | ||
134 | err_free_irq: | 122 | err_free_irq: |
135 | free_irq(onkey->irq, onkey); | 123 | da9052_free_irq(onkey->da9052, DA9052_IRQ_NONKEY, onkey); |
136 | cancel_delayed_work_sync(&onkey->work); | 124 | cancel_delayed_work_sync(&onkey->work); |
137 | err_free_mem: | 125 | err_free_mem: |
138 | input_free_device(input_dev); | 126 | input_free_device(input_dev); |
@@ -145,7 +133,7 @@ static int __devexit da9052_onkey_remove(struct platform_device *pdev) | |||
145 | { | 133 | { |
146 | struct da9052_onkey *onkey = platform_get_drvdata(pdev); | 134 | struct da9052_onkey *onkey = platform_get_drvdata(pdev); |
147 | 135 | ||
148 | free_irq(onkey->irq, onkey); | 136 | da9052_free_irq(onkey->da9052, DA9052_IRQ_NONKEY, onkey); |
149 | cancel_delayed_work_sync(&onkey->work); | 137 | cancel_delayed_work_sync(&onkey->work); |
150 | 138 | ||
151 | input_unregister_device(onkey->input); | 139 | input_unregister_device(onkey->input); |