Re: [PATCH 0/3] i2c: i2c-qcom-geni: More properly fix the DMA race

From: Stephen Boyd
Date: Fri Oct 09 2020 - 20:46:09 EST


+Roja

Quoting Douglas Anderson (2020-10-08 15:52:32)
> Previously I landed commit 02b9aec59243 ("i2c: i2c-qcom-geni: Fix DMA
> transfer race") to fix a race we were seeing. While that most
> definitely fixed the race we were seeing, it looks like it causes
> problems in the TX path, which we didn't stress test until we started
> trying to update firmware on devices.
>
> Let's revert that patch and try another way: fix the original problem
> by disabling the interrupts that aren't relevant to DMA transfers.
> Now we can stress both TX and RX cases and see no problems. I also
> can't find any place to put an msleep() that causes problems anymore.
>
> Since this problem only affects i2c, I'm hoping for an Ack from Bjorn
> and then all these patches can go through the i2c tree. However, if
> maintainers want to work a different way out to land that's OK too.
>
> NOTE: the 3rd patch in the series could certianly be squashed with
> patch #1 or I could re-order / rejigger. To me it seemed like a good
> idea to first fix the probelm (and make the two functions as much of
> an inverse as possible) and later try to clean things up. Yell if you
> want something different.
>
>
> Douglas Anderson (3):
> soc: qcom: geni: More properly switch to DMA mode
> Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
> soc: qcom: geni: Optimize select fifo/dma mode
>
> drivers/i2c/busses/i2c-qcom-geni.c | 6 ++--
> drivers/soc/qcom/qcom-geni-se.c | 47 ++++++++++++++++++++----------
> 2 files changed, 34 insertions(+), 19 deletions(-)
>
> --
> 2.28.0.1011.ga647a8990f-goog
>