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