[PATCH v7 06/13] spi: spidev_test: always compare loopback data
From: Jonas Rebmann
Date: Thu Sep 24 2026 - 09:48:10 EST
In loopback mode, spidev_test verifies that the received data matches
the sent data. However this test was only performed when random data was
transferred using the -S switch. Always perform the test by moving it
from transfer_buf() to transfer().
Signed-off-by: Jonas Rebmann <jre@xxxxxxxxxxxxxx>
---
tools/spi/spidev_test.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/tools/spi/spidev_test.c b/tools/spi/spidev_test.c
index 97d09bf4dafb..e46eaef4d2ab 100644
--- a/tools/spi/spidev_test.c
+++ b/tools/spi/spidev_test.c
@@ -173,6 +173,15 @@ static void transfer(int fd, uint8_t const *tx, uint8_t const *rx, size_t len)
if (verbose)
hex_dump(rx, len, 32, "RX");
+
+ if (mode & SPI_LOOP) {
+ if (memcmp(tx, rx, len)) {
+ fprintf(stderr, "transfer error !\n");
+ hex_dump(tx, len, 32, "TX");
+ hex_dump(rx, len, 32, "RX");
+ exit(1);
+ }
+ }
}
static void print_usage(const char *prog)
@@ -435,15 +444,6 @@ static void transfer_buf(int fd, int len)
_write_count += len;
_read_count += len;
- if (mode & SPI_LOOP) {
- if (memcmp(tx, rx, len)) {
- fprintf(stderr, "transfer error !\n");
- hex_dump(tx, len, 32, "TX");
- hex_dump(rx, len, 32, "RX");
- exit(1);
- }
- }
-
free(rx);
free(tx);
}
--
2.56.0.rc0.108.gf0ef1b96a0