Messages in this thread Patch in this message | | | Date | Thu, 23 Jun 2011 13:09:21 +0800 | From | Feng Tang <> | Subject | Re: [PATCH 09/11] spi-dw: Fix condition in spi_dw_{writer/reader} |
| |
On Thu, 23 Jun 2011 11:30:02 +0800 Dirk Brandewie <dirk.brandewie@gmail.com> wrote:
> This patch should have been: > > spi-dw: Fix condition in spi_dw_{writer/reader} > > From: Dirk Brandewie <dirk.brandewie@gmail.com> > > Fix the condition based on whether the current transfer has a tx/rx > buffer. > > Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com> > --- > drivers/spi/spi-dw.c | 10 +++++----- > 1 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c > index 96ae4a7..0a848bc 100644 > --- a/drivers/spi/spi-dw.c > +++ b/drivers/spi/spi-dw.c > @@ -193,15 +193,15 @@ static void spi_dw_writer(struct spi_dw *dws) > u16 txw = 0; > > while (max--) { > - /* Set the tx word if the transfer's original "tx" is > not null */ > - if (dws->tx_end - dws->len) { > + /* Set the tx word if the transfer's "tx" is not null > */ > + if (dws->tx) { > if (dws->n_bytes == 1) > txw = *(u8 *)(dws->tx); > else > txw = *(u16 *)(dws->tx); > + dws->tx += dws->n_bytes; > } > dw_writew(dws, dr, txw); > - dws->tx += dws->n_bytes; > } > }
emm, this patch still break the NULL original tx buf case, as it is used in
/* Return the max entries we can fill into tx fifo */ static inline u32 tx_max(struct dw_spi *dws) { u32 tx_left, tx_room, rxtx_gap;
tx_left = (dws->tx_end - dws->tx) / dws->n_bytes; tx_room = dws->fifo_len - dw_readw(dws, txflr);
> > @@ -213,13 +213,13 @@ static void spi_dw_reader(struct spi_dw *dws) > while (max--) { > rxw = dw_readw(dws, dr); > /* Care rx only if the transfer's original "rx" is > not null */ > - if (dws->rx_end - dws->len) { > + if (dws->rx) { > if (dws->n_bytes == 1) > *(u8 *)(dws->rx) = rxw; > else > *(u16 *)(dws->rx) = rxw; > + dws->rx += dws->n_bytes; > } > - dws->rx += dws->n_bytes; > } > } >
| |