Message ID | 1389776863.28509.0.camel@phoenix (mailing list archive) |
---|---|
State | Accepted |
Commit | 8c328a262f513c042f97fcd2f2797a6d69fc0773 |
Headers | show |
2014/1/15 Barry Song <Barry.Song@csr.com>: >> -----Original Message----- >> From: Axel Lin [mailto:axel.lin@ingics.com] >> Sent: Wednesday, January 15, 2014 5:08 PM >> To: Mark Brown >> Cc: Zhiwu Song; Barry Song; Qipan Li; linux-spi@vger.kernel.org >> Subject: [PATCH v2] spi: sirf: Avoid duplicate code in various bits_per_word >> cases >> >> Trivial cleanup to avoid duplicate code in various bits_per_word cases. >> >> Signed-off-by: Axel Lin <axel.lin@ingics.com> looks good to me. Thank, Axel. Reviewed-by: Barry Song <Baohua.Song@csr.com> >> --- >> drivers/spi/spi-sirf.c | 21 ++++++--------------- >> 1 file changed, 6 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/spi/spi-sirf.c b/drivers/spi/spi-sirf.c index >> ed5e501..4b43310 100644 >> --- a/drivers/spi/spi-sirf.c >> +++ b/drivers/spi/spi-sirf.c >> @@ -459,11 +459,6 @@ spi_sirfsoc_setup_transfer(struct spi_device *spi, >> struct spi_transfer *t) >> regval |= SIRFSOC_SPI_TRAN_DAT_FORMAT_8; >> sspi->rx_word = spi_sirfsoc_rx_word_u8; >> sspi->tx_word = spi_sirfsoc_tx_word_u8; >> - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_BYTE; >> - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_BYTE; >> - sspi->word_width = 1; >> break; >> case 12: >> case 16: >> @@ -471,26 +466,22 @@ spi_sirfsoc_setup_transfer(struct spi_device *spi, >> struct spi_transfer *t) >> SIRFSOC_SPI_TRAN_DAT_FORMAT_16; >> sspi->rx_word = spi_sirfsoc_rx_word_u16; >> sspi->tx_word = spi_sirfsoc_tx_word_u16; >> - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_WORD; >> - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_WORD; >> - sspi->word_width = 2; >> break; >> case 32: >> regval |= SIRFSOC_SPI_TRAN_DAT_FORMAT_32; >> sspi->rx_word = spi_sirfsoc_rx_word_u32; >> sspi->tx_word = spi_sirfsoc_tx_word_u32; >> - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_DWORD; >> - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE >> / 2) | >> - SIRFSOC_SPI_FIFO_WIDTH_DWORD; >> - sspi->word_width = 4; >> break; >> default: >> BUG(); >> } >> >> + sspi->word_width = DIV_ROUND_UP(bits_per_word, 8); >> + txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | >> + sspi->word_width; >> + rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | >> + sspi->word_width; >> + >> if (!(spi->mode & SPI_CS_HIGH)) >> regval |= SIRFSOC_SPI_CS_IDLE_STAT; >> if (!(spi->mode & SPI_LSB_FIRST)) >> -- >> 1.8.1.2 -barry -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jan 15, 2014 at 05:07:43PM +0800, Axel Lin wrote:
> Trivial cleanup to avoid duplicate code in various bits_per_word cases.
Applied, thanks.
diff --git a/drivers/spi/spi-sirf.c b/drivers/spi/spi-sirf.c index ed5e501..4b43310 100644 --- a/drivers/spi/spi-sirf.c +++ b/drivers/spi/spi-sirf.c @@ -459,11 +459,6 @@ spi_sirfsoc_setup_transfer(struct spi_device *spi, struct spi_transfer *t) regval |= SIRFSOC_SPI_TRAN_DAT_FORMAT_8; sspi->rx_word = spi_sirfsoc_rx_word_u8; sspi->tx_word = spi_sirfsoc_tx_word_u8; - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_BYTE; - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_BYTE; - sspi->word_width = 1; break; case 12: case 16: @@ -471,26 +466,22 @@ spi_sirfsoc_setup_transfer(struct spi_device *spi, struct spi_transfer *t) SIRFSOC_SPI_TRAN_DAT_FORMAT_16; sspi->rx_word = spi_sirfsoc_rx_word_u16; sspi->tx_word = spi_sirfsoc_tx_word_u16; - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_WORD; - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_WORD; - sspi->word_width = 2; break; case 32: regval |= SIRFSOC_SPI_TRAN_DAT_FORMAT_32; sspi->rx_word = spi_sirfsoc_rx_word_u32; sspi->tx_word = spi_sirfsoc_tx_word_u32; - txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_DWORD; - rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | - SIRFSOC_SPI_FIFO_WIDTH_DWORD; - sspi->word_width = 4; break; default: BUG(); } + sspi->word_width = DIV_ROUND_UP(bits_per_word, 8); + txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | + sspi->word_width; + rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) | + sspi->word_width; + if (!(spi->mode & SPI_CS_HIGH)) regval |= SIRFSOC_SPI_CS_IDLE_STAT; if (!(spi->mode & SPI_LSB_FIRST))
Trivial cleanup to avoid duplicate code in various bits_per_word cases. Signed-off-by: Axel Lin <axel.lin@ingics.com> --- drivers/spi/spi-sirf.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-)