aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/twl6040-irq.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2011-07-04 13:15:19 -0400
committerPeter Ujfalusi <peter.ujfalusi@ti.com>2011-07-07 07:23:25 -0400
commitd20e1d21fd0c398a8beb170beacf8e2ca839844c (patch)
tree08f292359e01b4069e6042d958c12384fbce64ed /drivers/mfd/twl6040-irq.c
parent2a433b9daff58c8ff231b879242a586371acc93f (diff)
MFD: twl6040: Demand valid interrupt configuration
In order to operate correctly twl6040 needs correct interrupt configuration. The slave drivers (vibra, and ASoC codec) will refuse to probe, if the interrupt configuration is not correct. In this way some checks can be removed from the code. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd/twl6040-irq.c')
-rw-r--r--drivers/mfd/twl6040-irq.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/drivers/mfd/twl6040-irq.c b/drivers/mfd/twl6040-irq.c
index 938053541520..b3f8ddaa28a8 100644
--- a/drivers/mfd/twl6040-irq.c
+++ b/drivers/mfd/twl6040-irq.c
@@ -148,19 +148,6 @@ int twl6040_irq_init(struct twl6040 *twl6040)
148 twl6040->irq_masks_cache = TWL6040_ALLINT_MSK; 148 twl6040->irq_masks_cache = TWL6040_ALLINT_MSK;
149 twl6040_reg_write(twl6040, TWL6040_REG_INTMR, TWL6040_ALLINT_MSK); 149 twl6040_reg_write(twl6040, TWL6040_REG_INTMR, TWL6040_ALLINT_MSK);
150 150
151 if (!twl6040->irq) {
152 dev_warn(twl6040->dev,
153 "no interrupt specified, no interrupts\n");
154 twl6040->irq_base = 0;
155 return 0;
156 }
157
158 if (!twl6040->irq_base) {
159 dev_err(twl6040->dev,
160 "no interrupt base specified, no interrupts\n");
161 return 0;
162 }
163
164 /* Register them with genirq */ 151 /* Register them with genirq */
165 for (cur_irq = twl6040->irq_base; 152 for (cur_irq = twl6040->irq_base;
166 cur_irq < twl6040->irq_base + ARRAY_SIZE(twl6040_irqs); 153 cur_irq < twl6040->irq_base + ARRAY_SIZE(twl6040_irqs);
@@ -199,7 +186,6 @@ EXPORT_SYMBOL(twl6040_irq_init);
199 186
200void twl6040_irq_exit(struct twl6040 *twl6040) 187void twl6040_irq_exit(struct twl6040 *twl6040)
201{ 188{
202 if (twl6040->irq) 189 free_irq(twl6040->irq, twl6040);
203 free_irq(twl6040->irq, twl6040);
204} 190}
205EXPORT_SYMBOL(twl6040_irq_exit); 191EXPORT_SYMBOL(twl6040_irq_exit);