Do not register type setting callback if HW does not support
setting the irq type. IRQ core can then handle cases where
type setting is not supported and no regmap-irq specific handling
is required.

Signed-off-by: Matti Vaittinen <matti.vaitti...@fi.rohmeurope.com>
---
 drivers/base/regmap/regmap-irq.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/base/regmap/regmap-irq.c b/drivers/base/regmap/regmap-irq.c
index d2d0014b0d23..a387ee499b5c 100644
--- a/drivers/base/regmap/regmap-irq.c
+++ b/drivers/base/regmap/regmap-irq.c
@@ -322,7 +322,6 @@ static const struct irq_chip regmap_irq_chip = {
        .irq_bus_sync_unlock    = regmap_irq_sync_unlock,
        .irq_disable            = regmap_irq_disable,
        .irq_enable             = regmap_irq_enable,
-       .irq_set_type           = regmap_irq_set_type,
        .irq_set_wake           = regmap_irq_set_wake,
 };
 
@@ -560,6 +559,9 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int 
irq_flags,
        d->chip = chip;
        d->irq_base = irq_base;
 
+       if (num_type_reg)
+               d->irq_chip.irq_set_type = regmap_irq_set_type;
+
        if (chip->irq_reg_stride)
                d->irq_reg_stride = chip->irq_reg_stride;
        else
-- 
2.14.3


-- 
Matti Vaittinen
ROHM Semiconductors

~~~ "I don't think so," said Rene Descartes.  Just then, he vanished ~~~

Reply via email to