Browse Source

regmap: Don't try to map non-existant IRQs

If the driver supplied an empty entry in the array of IRQs then return
an error rather than trying to do the mapping. This is intended for use
with handling chip variants and similar situations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown 13 years ago
parent
commit
bfd6185dde
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/base/regmap/regmap-irq.c

+ 4 - 0
drivers/base/regmap/regmap-irq.c

@@ -346,6 +346,10 @@ EXPORT_SYMBOL_GPL(regmap_irq_chip_get_base);
  */
  */
 int regmap_irq_get_virq(struct regmap_irq_chip_data *data, int irq)
 int regmap_irq_get_virq(struct regmap_irq_chip_data *data, int irq)
 {
 {
+	/* Handle holes in the IRQ list */
+	if (!data->chip->irqs[irq].mask)
+		return -EINVAL;
+
 	return irq_create_mapping(data->domain, irq);
 	return irq_create_mapping(data->domain, irq);
 }
 }
 EXPORT_SYMBOL_GPL(regmap_irq_get_virq);
 EXPORT_SYMBOL_GPL(regmap_irq_get_virq);