linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] spi: spi-geni-qcom: Fixes / perf improvements
@ 2020-06-16 10:40 Douglas Anderson
  2020-06-16 10:40 ` [PATCH v3 1/5] spi: spi-geni-qcom: No need for irqsave variant of spinlock calls Douglas Anderson
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Douglas Anderson @ 2020-06-16 10:40 UTC (permalink / raw)
  To: Mark Brown
  Cc: Alok Chauhan, skakit, swboyd, Douglas Anderson, Andy Gross,
	Bjorn Andersson, Dilip Kota, linux-arm-msm, linux-kernel,
	linux-spi

This patch series is a new version of the previous patch posted:
  [PATCH v2] spi: spi-geni-qcom: Speculative fix of "nobody cared" about interrupt
  https://lore.kernel.org/r/20200317133653.v2.1.I752ebdcfd5e8bf0de06d66e767b8974932b3620e@changeid

At this point I've done enough tracing to know that there was a real
race in the old code (not just weakly ordered memory problems) and
that should be fixed with the locking patches.

While looking at this driver, I also noticed we weren't properly
noting error interrupts and also weren't actually using our FIFO
effectively, so I fixed those.

The last patch in the series addresses review feedback about dislike
for the "cur_mcmd" state variable.  It also could possibly make
"abort" work ever-so-slightly more reliably.

Changes in v3:
- ("spi: spi-geni-qcom: No need for irqsave variant...") new for v3
- Split out some lock cleanup to previous patch.
- Don't need to read IRQ status register inside spinlock.
- Don't check for state CMD_NONE; later patch is removing state var.
- Don't hold the lock for all of setup_fifo_xfer().
- Comment about why it's safe to Ack interrupts at the end.
- Subject/desc changed since race is definitely there.
- ("spi: spi-geni-qcom: Check for error IRQs") new in v3.
- ("spi: spi-geni-qcom: Actually use our FIFO") new in v3.
- ("spi: spi-geni-qcom: Don't keep a local state variable") new in v3.

Changes in v2:
- Detect true spurious interrupt.
- Still return IRQ_NONE for state machine mismatch, but print warn.

Douglas Anderson (5):
  spi: spi-geni-qcom: No need for irqsave variant of spinlock calls
  spi: spi-geni-qcom: Mo' betta locking
  spi: spi-geni-qcom: Check for error IRQs
  spi: spi-geni-qcom: Actually use our FIFO
  spi: spi-geni-qcom: Don't keep a local state variable

 drivers/spi/spi-geni-qcom.c | 120 ++++++++++++++++++++++++------------
 1 file changed, 81 insertions(+), 39 deletions(-)

-- 
2.27.0.290.gba653c62da-goog


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-06-18 16:48 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-16 10:40 [PATCH v3 0/5] spi: spi-geni-qcom: Fixes / perf improvements Douglas Anderson
2020-06-16 10:40 ` [PATCH v3 1/5] spi: spi-geni-qcom: No need for irqsave variant of spinlock calls Douglas Anderson
2020-06-17 20:24   ` Stephen Boyd
2020-06-16 10:40 ` [PATCH v3 2/5] spi: spi-geni-qcom: Mo' betta locking Douglas Anderson
2020-06-17 20:53   ` Stephen Boyd
2020-06-17 21:19     ` Doug Anderson
2020-06-18  0:47       ` Stephen Boyd
2020-06-16 10:40 ` [PATCH v3 3/5] spi: spi-geni-qcom: Check for error IRQs Douglas Anderson
2020-06-17 20:54   ` Stephen Boyd
2020-06-16 10:40 ` [PATCH v3 4/5] spi: spi-geni-qcom: Actually use our FIFO Douglas Anderson
2020-06-17 20:56   ` Stephen Boyd
2020-06-16 10:40 ` [PATCH v3 5/5] spi: spi-geni-qcom: Don't keep a local state variable Douglas Anderson
2020-06-17 21:16   ` Stephen Boyd
2020-06-18 15:05     ` Doug Anderson
2020-06-18 16:48 ` [PATCH v3 0/5] spi: spi-geni-qcom: Fixes / perf improvements Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).