This is a backport of "iio: stm32-adc: fix a race with dma and irq" series on top of v4.14.148 at the time of writing. The original series doesn't apply cleanly on v4.14.x: the precursor patch needed a slight update. Original series can be found in [1]. [1] https://www.lkml.org/lkml/2019/9/17/394 Original cover-letter: This series fixes a race condition observed when using several ADCs with DMA and irq. There's a precusor patch to the fix. It keeps registers definitions as a whole block, to ease readability and allow simple (readl) access path to EOC bits in stm32-adc-core driver. Fabrice Gasnier (2): iio: adc: stm32-adc: move registers definitions iio: adc: stm32-adc: fix a race when using several adcs with dma and irq drivers/iio/adc/stm32-adc-core.c | 70 +++++++++++--------- drivers/iio/adc/stm32-adc-core.h | 135 +++++++++++++++++++++++++++++++++++++++ drivers/iio/adc/stm32-adc.c | 107 ------------------------------- 3 files changed, 175 insertions(+), 137 deletions(-) -- 2.7.4