From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] spi: soft_spi: Support NULL din/dout buffers
Date: Tue, 22 Oct 2013 19:11:17 -0500 [thread overview]
Message-ID: <20131023001117.GA22717@gmail.com> (raw)
This mirrors the conventions used in other SPI drivers (kirkwood,
davinci, atmel, et al) where the din/dout buffer can be NULL when the
received/transmitted data isn't important. This reduces the need for
allocating additional buffers when write-only/read-only functionality is
needed.
In the din == NULL case, the received data is simply not stored. In the
dout == NULL case, zeroes are transmitted.
Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
---
drivers/spi/soft_spi.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/spi/soft_spi.c b/drivers/spi/soft_spi.c
index 5d22351..5fdd091 100644
--- a/drivers/spi/soft_spi.c
+++ b/drivers/spi/soft_spi.c
@@ -137,9 +137,15 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
* Check if it is time to work on a new byte.
*/
if((j % 8) == 0) {
- tmpdout = *txd++;
+ if (txd) {
+ tmpdout = *txd++;
+ } else {
+ tmpdout = 0;
+ }
if(j != 0) {
- *rxd++ = tmpdin;
+ if (rxd) {
+ *rxd++ = tmpdin;
+ }
}
tmpdin = 0;
}
@@ -164,9 +170,11 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
* bits over to left-justify them. Then store the last byte
* read in.
*/
- if((bitlen % 8) != 0)
- tmpdin <<= 8 - (bitlen % 8);
- *rxd++ = tmpdin;
+ if (rxd) {
+ if((bitlen % 8) != 0)
+ tmpdin <<= 8 - (bitlen % 8);
+ *rxd++ = tmpdin;
+ }
if (flags & SPI_XFER_END)
spi_cs_deactivate(slave);
--
1.8.4.rc3
next reply other threads:[~2013-10-23 0:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-23 0:11 Andrew Ruder [this message]
2014-01-08 12:41 ` [U-Boot] [PATCH] spi: soft_spi: Support NULL din/dout buffers Jagan Teki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131023001117.GA22717@gmail.com \
--to=andrew.ruder@elecsyscorp.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox