From 0737de1487244a8a252fc4bbee67d02db4b17a35 Mon Sep 17 00:00:00 2001 From: Mingkai Hu Date: Tue, 21 Dec 2010 09:27:02 +0800 Subject: [PATCH] --- yaml --- r: 223608 b: refs/heads/master c: 0dd2c96f19b0cffaeb437e50fa5da195920c6e78 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/spi/spi_fsl_espi.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 82a780183b4b..5e234eaaaaac 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e6289d63a6f39237a027dcee46366ba158cb8406 +refs/heads/master: 0dd2c96f19b0cffaeb437e50fa5da195920c6e78 diff --git a/trunk/drivers/spi/spi_fsl_espi.c b/trunk/drivers/spi/spi_fsl_espi.c index ae789262c981..a99e2333b949 100644 --- a/trunk/drivers/spi/spi_fsl_espi.c +++ b/trunk/drivers/spi/spi_fsl_espi.c @@ -258,18 +258,18 @@ static int fsl_espi_bufs(struct spi_device *spi, struct spi_transfer *t) return mpc8xxx_spi->count; } -static void fsl_espi_addr2cmd(unsigned int addr, u8 *cmd) +static inline void fsl_espi_addr2cmd(unsigned int addr, u8 *cmd) { - if (cmd[1] && cmd[2] && cmd[3]) { + if (cmd) { cmd[1] = (u8)(addr >> 16); cmd[2] = (u8)(addr >> 8); cmd[3] = (u8)(addr >> 0); } } -static unsigned int fsl_espi_cmd2addr(u8 *cmd) +static inline unsigned int fsl_espi_cmd2addr(u8 *cmd) { - if (cmd[1] && cmd[2] && cmd[3]) + if (cmd) return cmd[1] << 16 | cmd[2] << 8 | cmd[3] << 0; return 0; @@ -395,9 +395,11 @@ static void fsl_espi_rw_trans(struct spi_message *m, } } - addr = fsl_espi_cmd2addr(local_buf); - addr += pos; - fsl_espi_addr2cmd(addr, local_buf); + if (pos > 0) { + addr = fsl_espi_cmd2addr(local_buf); + addr += pos; + fsl_espi_addr2cmd(addr, local_buf); + } espi_trans->n_tx = n_tx; espi_trans->n_rx = trans_len;