Loading drivers/base/regmap/regmap-irq.c +17 −4 Original line number Diff line number Diff line Loading @@ -92,8 +92,14 @@ static void regmap_irq_sync_unlock(struct irq_data *data) reg = d->chip->wake_base + (i * map->reg_stride * d->irq_reg_stride); if (d->wake_buf) { if (d->chip->wake_invert) ret = regmap_update_bits(d->map, reg, d->mask_buf_def[i], d->wake_buf[i]); d->mask_buf_def[i], ~d->wake_buf[i]); else ret = regmap_update_bits(d->map, reg, d->mask_buf_def[i], d->wake_buf[i]); if (ret != 0) dev_err(d->map->dev, "Failed to sync wakes in %x: %d\n", Loading Loading @@ -419,7 +425,14 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags, d->wake_buf[i] = d->mask_buf_def[i]; reg = chip->wake_base + (i * map->reg_stride * d->irq_reg_stride); ret = regmap_update_bits(map, reg, d->wake_buf[i], if (chip->wake_invert) ret = regmap_update_bits(map, reg, d->mask_buf_def[i], 0); else ret = regmap_update_bits(map, reg, d->mask_buf_def[i], d->wake_buf[i]); if (ret != 0) { dev_err(map->dev, "Failed to set masks in 0x%x: %d\n", Loading include/linux/regmap.h +1 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,7 @@ struct regmap_irq_chip { unsigned int wake_base; unsigned int irq_reg_stride; unsigned int mask_invert; unsigned int wake_invert; bool runtime_pm; int num_regs; Loading Loading
drivers/base/regmap/regmap-irq.c +17 −4 Original line number Diff line number Diff line Loading @@ -92,8 +92,14 @@ static void regmap_irq_sync_unlock(struct irq_data *data) reg = d->chip->wake_base + (i * map->reg_stride * d->irq_reg_stride); if (d->wake_buf) { if (d->chip->wake_invert) ret = regmap_update_bits(d->map, reg, d->mask_buf_def[i], d->wake_buf[i]); d->mask_buf_def[i], ~d->wake_buf[i]); else ret = regmap_update_bits(d->map, reg, d->mask_buf_def[i], d->wake_buf[i]); if (ret != 0) dev_err(d->map->dev, "Failed to sync wakes in %x: %d\n", Loading Loading @@ -419,7 +425,14 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags, d->wake_buf[i] = d->mask_buf_def[i]; reg = chip->wake_base + (i * map->reg_stride * d->irq_reg_stride); ret = regmap_update_bits(map, reg, d->wake_buf[i], if (chip->wake_invert) ret = regmap_update_bits(map, reg, d->mask_buf_def[i], 0); else ret = regmap_update_bits(map, reg, d->mask_buf_def[i], d->wake_buf[i]); if (ret != 0) { dev_err(map->dev, "Failed to set masks in 0x%x: %d\n", Loading
include/linux/regmap.h +1 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,7 @@ struct regmap_irq_chip { unsigned int wake_base; unsigned int irq_reg_stride; unsigned int mask_invert; unsigned int wake_invert; bool runtime_pm; int num_regs; Loading