simplify spi_sync() calling convention
PATCH 1/2 simplify spi_sync() calling convention
From: Marc Pignat <[email protected]>
Simplify spi_sync calling convention, eliminating the need to check both the return value AND the message->status. In consequence, this corrects misbehaviours of spi_read and spi_write (which only checked the former) and their callers.
Signed-off-by Marc Pignat <[email protected]>
Signed-off-by David Brownell <[email protected]>
--- drivers/spi/spi.c | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-)
drivers/spi/spi.c +5 -8
@@ -539,10 +539,7 @@ static void spi_complete(void *arg)* Also, the caller is guaranteeing that the memory associated with the * message will not be freed before this call returns. * -* The return value is a negative error code if the message could not be -* submitted, else zero. When the value is zero, then message->status is -* also defined; it's the completion code for the transfer, either zero -* or a negative error code from the controller driver. +* It returns zero on success, else a negative error code. */ int spi_sync (struct spi_device *spi,struct spi_message *message) {
@@ -552,8 +549,10 @@ int spi_sync(struct spi_device *spi, str message->complete = spi_complete; message->context = &done; status =spi_async (spi, message); -if (status ==0 ) +if (status ==0 ) {wait_for_completion (&done); + status = message->status; + } message->context =NULL ;return status; }
@@ -626,10 +625,8 @@ int spi_write_then_read(struct spi_devic/* do the i/o */ status =spi_sync (spi, &message); -if (status ==0 ) { +if (status ==0 )memcpy (rxbuf, x[1 ].rx_buf, n_rx); - status = message.status; - }if (x[0 ].tx_buf == buf)up (&lock);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/