Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'regmap-fix-v5.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap fix from Mark Brown:
"A fix for interrupt controllers which require the explicit
acknowledgement of interrupts using a different register to the one
where interrupts are reported.

Urgent for the few devices this affects"

* tag 'regmap-fix-v5.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
regmap-irq: Update interrupt clear register for proper reset

+6 -14
+6 -14
drivers/base/regmap/regmap-irq.c
··· 189 189 ret = regmap_write(map, reg, d->mask_buf[i]); 190 190 if (d->chip->clear_ack) { 191 191 if (d->chip->ack_invert && !ret) 192 - ret = regmap_write(map, reg, 193 - d->mask_buf[i]); 192 + ret = regmap_write(map, reg, UINT_MAX); 194 193 else if (!ret) 195 - ret = regmap_write(map, reg, 196 - ~d->mask_buf[i]); 194 + ret = regmap_write(map, reg, 0); 197 195 } 198 196 if (ret != 0) 199 197 dev_err(d->map->dev, "Failed to ack 0x%x: %d\n", ··· 554 556 data->status_buf[i]); 555 557 if (chip->clear_ack) { 556 558 if (chip->ack_invert && !ret) 557 - ret = regmap_write(map, reg, 558 - data->status_buf[i]); 559 + ret = regmap_write(map, reg, UINT_MAX); 559 560 else if (!ret) 560 - ret = regmap_write(map, reg, 561 - ~data->status_buf[i]); 561 + ret = regmap_write(map, reg, 0); 562 562 } 563 563 if (ret != 0) 564 564 dev_err(map->dev, "Failed to ack 0x%x: %d\n", ··· 813 817 d->status_buf[i] & d->mask_buf[i]); 814 818 if (chip->clear_ack) { 815 819 if (chip->ack_invert && !ret) 816 - ret = regmap_write(map, reg, 817 - (d->status_buf[i] & 818 - d->mask_buf[i])); 820 + ret = regmap_write(map, reg, UINT_MAX); 819 821 else if (!ret) 820 - ret = regmap_write(map, reg, 821 - ~(d->status_buf[i] & 822 - d->mask_buf[i])); 822 + ret = regmap_write(map, reg, 0); 823 823 } 824 824 if (ret != 0) { 825 825 dev_err(map->dev, "Failed to ack 0x%x: %d\n",