regmap: irq: enable wake support by default
Subsystems (2)
PATCH 1/1 regmap: irq: enable wake support by default
regmap-irq framework is used vastly by mfd drivers and some of devices like TPS65910, TPS80036 do not support the wake base register to enable wake.
Currently wake in regmap-irq only supported if client driver passes the wake base register.
As the regmap-irq is mostly used by mfd devices and it is require to have wake support from these devices in most of use cases, enabling wake support by default in regmap-irq.
Signed-off-by Laxman Dewangan <[email protected]>
--- drivers/base/regmap/regmap-irq.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-)
drivers/base/regmap/regmap-irq.c +6 -12
@@ -129,16 +129,15 @@ static int regmap_irq_set_wake(struct irq_data *data, unsigned int on)struct regmap *map = d->map;const struct regmap_irq *irq_data =irq_to_regmap_irq (d, data->hwirq); -if (!d->chip->wake_base) -return -EINVAL ; -if (on) { - d->wake_buf[irq_data->reg_offset / map->reg_stride] - &= ~irq_data->mask; +if (d->wake_buf) + d->wake_buf[irq_data->reg_offset / map->reg_stride] + &= ~irq_data->mask; d->wake_count++; }else { - d->wake_buf[irq_data->reg_offset / map->reg_stride] - |= irq_data->mask; +if (d->wake_buf) + d->wake_buf[irq_data->reg_offset / map->reg_stride] + |= irq_data->mask; d->wake_count--; }
@@ -316,11 +315,6 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags, d->irq_chip = regmap_irq_chip; d->irq_chip.name = chip->name; -if (!chip->wake_base) { - d->irq_chip.irq_set_wake =NULL ; - d->irq_chip.flags |=IRQCHIP_MASK_ON_SUSPEND | -IRQCHIP_SKIP_SET_WAKE ; - } d->irq = irq; d->map = map; d->chip = chip;
Signature · 1 line
1.7.1.1
Mark Brown
AppliedQuoted 3 lines · Laxman Dewangan
regmap-irq framework is used vastly by mfd drivers and some of devices like TPS65910, TPS80036 do not support the wake base register to enable wake.
Applied, thanks.