summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2017-03-14 17:47:58 +0100
committerchrome-bot <chrome-bot@chromium.org>2017-03-16 00:11:42 -0700
commitdd94e6e2ebfcebf31dd4530909ef818299cb8f3e (patch)
tree57a1d97c43c6684e33ca15c6362f8fd10077a3a4
parent879b7bc8f13e42123ac2e767d8934f86676ab9b2 (diff)
downloadchrome-ec-dd94e6e2ebfcebf31dd4530909ef818299cb8f3e.tar.gz
stm32: clean-up the SPI_READBACK_ALL implementation
As advised by Daisuke makes the new API slightly better: - remove the useless rxlen assignment. - keep the normal asynchronous behavior of the function by skipping the last dma wait. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=b:35648259 TEST=on Eve, use the FP sensor with the passthru. Change-Id: Iedb8e77cb1af58c273ab5ae6f0a670ce93dfde5a Reviewed-on: https://chromium-review.googlesource.com/454699 Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Tested-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
-rw-r--r--chip/stm32/spi_master.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/chip/stm32/spi_master.c b/chip/stm32/spi_master.c
index 647dcd9e7a..3d7fd070b2 100644
--- a/chip/stm32/spi_master.c
+++ b/chip/stm32/spi_master.c
@@ -219,7 +219,6 @@ int spi_transaction_async(const struct spi_device_t *spi_device,
if (rxlen == SPI_READBACK_ALL) {
buf = rxdata;
- rxlen = txlen;
full_readback = 1;
} else {
rv = shared_mem_acquire(MAX(txlen, rxlen), &buf);
@@ -238,11 +237,14 @@ int spi_transaction_async(const struct spi_device_t *spi_device,
if (rv != EC_SUCCESS)
goto err_free;
+ if (full_readback)
+ return EC_SUCCESS;
+
rv = spi_dma_wait(port);
if (rv != EC_SUCCESS)
goto err_free;
- if (!full_readback && rxlen) {
+ if (rxlen) {
rv = spi_dma_start(port, buf, rxdata, rxlen);
if (rv != EC_SUCCESS)
goto err_free;