[PATCH v4 0/3] spi: A better solution for cros_ec_spi reliability

From: Douglas Anderson
Date: Wed May 15 2019 - 12:50:32 EST


This series is a much better solution for getting the Chrome OS EC to
talk reliably.

Patch #1 in this series is the most important. It can land any time.

Patch #2 in this series (a SPI framework patch) needs to land before
patch #3. Note that patches #2 and #3 really just fix a corner case
and just having patch #1 is the most important. We don't end up on
the pumping thread very often.

Note:
- If you want some history on investigation done here, feel free to
peruse the Chrome OS bug: <https://crbug.com/948742>.

Changes in v4:
- No needless init of err in cros_ec_spi_devm_high_pri_alloc (Guenter).
- Removed blank lines near #includes (Guenter).
- Switch to kthread_create_worker() and fix error handling (Guenter).
- Cleaner devm code (Guenter).

Changes in v3:
- cros_ec realtime patch replaces revert; now patch #1
- SPI core change now like patch v1 patch #2 (with name "rt").
- Updated description and variable name since we no longer force.

Changes in v2:
- Now only force transfers to the thread for devices that want it.
- Squashed patch #1 and #2 together.
- Renamed variable to "force_rt_transfers".
- Renamed variable to "force_rt_transfers".

Douglas Anderson (3):
platform/chrome: cros_ec_spi: Move to real time priority for transfers
spi: Allow SPI devices to request the pumping thread be realtime
platform/chrome: cros_ec_spi: Request the SPI thread be realtime

drivers/platform/chrome/cros_ec_spi.c | 66 ++++++++++++++++++++++-----
drivers/spi/spi.c | 36 ++++++++++++---
include/linux/spi/spi.h | 2 +
3 files changed, 86 insertions(+), 18 deletions(-)

--
2.21.0.1020.gf2820cf01a-goog