diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2011-07-04 13:15:19 -0400 |
---|---|---|
committer | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2011-07-07 07:23:25 -0400 |
commit | d20e1d21fd0c398a8beb170beacf8e2ca839844c (patch) | |
tree | 08f292359e01b4069e6042d958c12384fbce64ed /drivers/mfd/twl6040-irq.c | |
parent | 2a433b9daff58c8ff231b879242a586371acc93f (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.c | 16 |
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 | ||
200 | void twl6040_irq_exit(struct twl6040 *twl6040) | 187 | void 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 | } |
205 | EXPORT_SYMBOL(twl6040_irq_exit); | 191 | EXPORT_SYMBOL(twl6040_irq_exit); |