Commit 551f6a58 authored by Mark Brown's avatar Mark Brown

Merge branch 'topic/checkpatch' of...

Merge branch 'topic/checkpatch' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-dw
parents 197e96b4 a2cea983
...@@ -167,8 +167,10 @@ static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *dspi) ...@@ -167,8 +167,10 @@ static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *dspi)
static u32 davinci_spi_tx_buf_u8(struct davinci_spi *dspi) static u32 davinci_spi_tx_buf_u8(struct davinci_spi *dspi)
{ {
u32 data = 0; u32 data = 0;
if (dspi->tx) { if (dspi->tx) {
const u8 *tx = dspi->tx; const u8 *tx = dspi->tx;
data = *tx++; data = *tx++;
dspi->tx = tx; dspi->tx = tx;
} }
...@@ -178,8 +180,10 @@ static u32 davinci_spi_tx_buf_u8(struct davinci_spi *dspi) ...@@ -178,8 +180,10 @@ static u32 davinci_spi_tx_buf_u8(struct davinci_spi *dspi)
static u32 davinci_spi_tx_buf_u16(struct davinci_spi *dspi) static u32 davinci_spi_tx_buf_u16(struct davinci_spi *dspi)
{ {
u32 data = 0; u32 data = 0;
if (dspi->tx) { if (dspi->tx) {
const u16 *tx = dspi->tx; const u16 *tx = dspi->tx;
data = *tx++; data = *tx++;
dspi->tx = tx; dspi->tx = tx;
} }
...@@ -985,8 +989,8 @@ static int davinci_spi_probe(struct platform_device *pdev) ...@@ -985,8 +989,8 @@ static int davinci_spi_probe(struct platform_device *pdev)
goto free_clk; goto free_clk;
dev_info(&pdev->dev, "DMA: supported\n"); dev_info(&pdev->dev, "DMA: supported\n");
dev_info(&pdev->dev, "DMA: RX channel: %pa, TX channel: %pa, " dev_info(&pdev->dev, "DMA: RX channel: %pa, TX channel: %pa, event queue: %d\n",
"event queue: %d\n", &dma_rx_chan, &dma_tx_chan, &dma_rx_chan, &dma_tx_chan,
pdata->dma_event_q); pdata->dma_event_q);
} }
......
...@@ -131,8 +131,7 @@ static int mrst_spi_debugfs_init(struct dw_spi *dws) ...@@ -131,8 +131,7 @@ static int mrst_spi_debugfs_init(struct dw_spi *dws)
static void mrst_spi_debugfs_remove(struct dw_spi *dws) static void mrst_spi_debugfs_remove(struct dw_spi *dws)
{ {
if (dws->debugfs) debugfs_remove_recursive(dws->debugfs);
debugfs_remove_recursive(dws->debugfs);
} }
#else #else
...@@ -173,7 +172,7 @@ static inline u32 rx_max(struct dw_spi *dws) ...@@ -173,7 +172,7 @@ static inline u32 rx_max(struct dw_spi *dws)
{ {
u32 rx_left = (dws->rx_end - dws->rx) / dws->n_bytes; u32 rx_left = (dws->rx_end - dws->rx) / dws->n_bytes;
return min(rx_left, (u32)dw_readw(dws, DW_SPI_RXFLR)); return min_t(u32, rx_left, dw_readw(dws, DW_SPI_RXFLR));
} }
static void dw_writer(struct dw_spi *dws) static void dw_writer(struct dw_spi *dws)
...@@ -224,8 +223,9 @@ static void *next_transfer(struct dw_spi *dws) ...@@ -224,8 +223,9 @@ static void *next_transfer(struct dw_spi *dws)
struct spi_transfer, struct spi_transfer,
transfer_list); transfer_list);
return RUNNING_STATE; return RUNNING_STATE;
} else }
return DONE_STATE;
return DONE_STATE;
} }
/* /*
...@@ -467,10 +467,12 @@ static void pump_transfers(unsigned long data) ...@@ -467,10 +467,12 @@ static void pump_transfers(unsigned long data)
*/ */
if (!dws->dma_mapped && !chip->poll_mode) { if (!dws->dma_mapped && !chip->poll_mode) {
int templen = dws->len / dws->n_bytes; int templen = dws->len / dws->n_bytes;
txint_level = dws->fifo_len / 2; txint_level = dws->fifo_len / 2;
txint_level = (templen > txint_level) ? txint_level : templen; txint_level = (templen > txint_level) ? txint_level : templen;
imask |= SPI_INT_TXEI | SPI_INT_TXOI | SPI_INT_RXUI | SPI_INT_RXOI; imask |= SPI_INT_TXEI | SPI_INT_TXOI |
SPI_INT_RXUI | SPI_INT_RXOI;
dws->transfer_handler = interrupt_transfer; dws->transfer_handler = interrupt_transfer;
} }
...@@ -511,7 +513,6 @@ static void pump_transfers(unsigned long data) ...@@ -511,7 +513,6 @@ static void pump_transfers(unsigned long data)
early_exit: early_exit:
giveback(dws); giveback(dws);
return;
} }
static int dw_spi_transfer_one_message(struct spi_master *master, static int dw_spi_transfer_one_message(struct spi_master *master,
...@@ -615,6 +616,7 @@ static void spi_hw_init(struct dw_spi *dws) ...@@ -615,6 +616,7 @@ static void spi_hw_init(struct dw_spi *dws)
*/ */
if (!dws->fifo_len) { if (!dws->fifo_len) {
u32 fifo; u32 fifo;
for (fifo = 2; fifo <= 257; fifo++) { for (fifo = 2; fifo <= 257; fifo++) {
dw_writew(dws, DW_SPI_TXFLTR, fifo); dw_writew(dws, DW_SPI_TXFLTR, fifo);
if (fifo != dw_readw(dws, DW_SPI_TXFLTR)) if (fifo != dw_readw(dws, DW_SPI_TXFLTR))
......
...@@ -266,6 +266,7 @@ static int ep93xx_spi_setup(struct spi_device *spi) ...@@ -266,6 +266,7 @@ static int ep93xx_spi_setup(struct spi_device *spi)
if (chip->ops && chip->ops->setup) { if (chip->ops && chip->ops->setup) {
int ret = chip->ops->setup(spi); int ret = chip->ops->setup(spi);
if (ret) { if (ret) {
kfree(chip); kfree(chip);
return ret; return ret;
......
...@@ -154,12 +154,14 @@ static int mxs_ssp_wait(struct mxs_spi *spi, int offset, int mask, bool set) ...@@ -154,12 +154,14 @@ static int mxs_ssp_wait(struct mxs_spi *spi, int offset, int mask, bool set)
static void mxs_ssp_dma_irq_callback(void *param) static void mxs_ssp_dma_irq_callback(void *param)
{ {
struct mxs_spi *spi = param; struct mxs_spi *spi = param;
complete(&spi->c); complete(&spi->c);
} }
static irqreturn_t mxs_ssp_irq_handler(int irq, void *dev_id) static irqreturn_t mxs_ssp_irq_handler(int irq, void *dev_id)
{ {
struct mxs_ssp *ssp = dev_id; struct mxs_ssp *ssp = dev_id;
dev_err(ssp->dev, "%s[%i] CTRL1=%08x STATUS=%08x\n", dev_err(ssp->dev, "%s[%i] CTRL1=%08x STATUS=%08x\n",
__func__, __LINE__, __func__, __LINE__,
readl(ssp->base + HW_SSP_CTRL1(ssp)), readl(ssp->base + HW_SSP_CTRL1(ssp)),
...@@ -189,7 +191,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi, ...@@ -189,7 +191,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi,
if (!len) if (!len)
return -EINVAL; return -EINVAL;
dma_xfer = kzalloc(sizeof(*dma_xfer) * sgs, GFP_KERNEL); dma_xfer = kcalloc(sgs, sizeof(*dma_xfer), GFP_KERNEL);
if (!dma_xfer) if (!dma_xfer)
return -ENOMEM; return -ENOMEM;
......
...@@ -179,8 +179,8 @@ static inline int orion_spi_wait_till_ready(struct orion_spi *orion_spi) ...@@ -179,8 +179,8 @@ static inline int orion_spi_wait_till_ready(struct orion_spi *orion_spi)
for (i = 0; i < ORION_SPI_WAIT_RDY_MAX_LOOP; i++) { for (i = 0; i < ORION_SPI_WAIT_RDY_MAX_LOOP; i++) {
if (readl(spi_reg(orion_spi, ORION_SPI_INT_CAUSE_REG))) if (readl(spi_reg(orion_spi, ORION_SPI_INT_CAUSE_REG)))
return 1; return 1;
else
udelay(1); udelay(1);
} }
return -1; return -1;
...@@ -360,6 +360,7 @@ static int orion_spi_probe(struct platform_device *pdev) ...@@ -360,6 +360,7 @@ static int orion_spi_probe(struct platform_device *pdev)
master->bus_num = pdev->id; master->bus_num = pdev->id;
if (pdev->dev.of_node) { if (pdev->dev.of_node) {
u32 cell_index; u32 cell_index;
if (!of_property_read_u32(pdev->dev.of_node, "cell-index", if (!of_property_read_u32(pdev->dev.of_node, "cell-index",
&cell_index)) &cell_index))
master->bus_num = cell_index; master->bus_num = cell_index;
......
...@@ -302,6 +302,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf( ...@@ -302,6 +302,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf(
max_n_32bit = DIV_ROUND_UP(nbytes, 4); max_n_32bit = DIV_ROUND_UP(nbytes, 4);
for (count = 0; count < max_n_32bit; count++) { for (count = 0; count < max_n_32bit; count++) {
u32 x = 0; u32 x = 0;
for (i = 0; (i < 4) && nbytes; i++, nbytes--) for (i = 0; (i < 4) && nbytes; i++, nbytes--)
x |= (u32)(*tx_buf++) << (i * 8); x |= (u32)(*tx_buf++) << (i * 8);
tegra_spi_writel(tspi, x, SPI_TX_FIFO); tegra_spi_writel(tspi, x, SPI_TX_FIFO);
...@@ -312,6 +313,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf( ...@@ -312,6 +313,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf(
nbytes = written_words * tspi->bytes_per_word; nbytes = written_words * tspi->bytes_per_word;
for (count = 0; count < max_n_32bit; count++) { for (count = 0; count < max_n_32bit; count++) {
u32 x = 0; u32 x = 0;
for (i = 0; nbytes && (i < tspi->bytes_per_word); for (i = 0; nbytes && (i < tspi->bytes_per_word);
i++, nbytes--) i++, nbytes--)
x |= (u32)(*tx_buf++) << (i * 8); x |= (u32)(*tx_buf++) << (i * 8);
...@@ -338,6 +340,7 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf( ...@@ -338,6 +340,7 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf(
len = tspi->curr_dma_words * tspi->bytes_per_word; len = tspi->curr_dma_words * tspi->bytes_per_word;
for (count = 0; count < rx_full_count; count++) { for (count = 0; count < rx_full_count; count++) {
u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO); u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO);
for (i = 0; len && (i < 4); i++, len--) for (i = 0; len && (i < 4); i++, len--)
*rx_buf++ = (x >> i*8) & 0xFF; *rx_buf++ = (x >> i*8) & 0xFF;
} }
...@@ -345,8 +348,10 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf( ...@@ -345,8 +348,10 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf(
read_words += tspi->curr_dma_words; read_words += tspi->curr_dma_words;
} else { } else {
u32 rx_mask = ((u32)1 << t->bits_per_word) - 1; u32 rx_mask = ((u32)1 << t->bits_per_word) - 1;
for (count = 0; count < rx_full_count; count++) { for (count = 0; count < rx_full_count; count++) {
u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO) & rx_mask; u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO) & rx_mask;
for (i = 0; (i < tspi->bytes_per_word); i++) for (i = 0; (i < tspi->bytes_per_word); i++)
*rx_buf++ = (x >> (i*8)) & 0xFF; *rx_buf++ = (x >> (i*8)) & 0xFF;
} }
...@@ -365,6 +370,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf( ...@@ -365,6 +370,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf(
if (tspi->is_packed) { if (tspi->is_packed) {
unsigned len = tspi->curr_dma_words * tspi->bytes_per_word; unsigned len = tspi->curr_dma_words * tspi->bytes_per_word;
memcpy(tspi->tx_dma_buf, t->tx_buf + tspi->cur_pos, len); memcpy(tspi->tx_dma_buf, t->tx_buf + tspi->cur_pos, len);
} else { } else {
unsigned int i; unsigned int i;
...@@ -374,6 +380,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf( ...@@ -374,6 +380,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf(
for (count = 0; count < tspi->curr_dma_words; count++) { for (count = 0; count < tspi->curr_dma_words; count++) {
u32 x = 0; u32 x = 0;
for (i = 0; consume && (i < tspi->bytes_per_word); for (i = 0; consume && (i < tspi->bytes_per_word);
i++, consume--) i++, consume--)
x |= (u32)(*tx_buf++) << (i * 8); x |= (u32)(*tx_buf++) << (i * 8);
...@@ -396,6 +403,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf( ...@@ -396,6 +403,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf(
if (tspi->is_packed) { if (tspi->is_packed) {
unsigned len = tspi->curr_dma_words * tspi->bytes_per_word; unsigned len = tspi->curr_dma_words * tspi->bytes_per_word;
memcpy(t->rx_buf + tspi->cur_rx_pos, tspi->rx_dma_buf, len); memcpy(t->rx_buf + tspi->cur_rx_pos, tspi->rx_dma_buf, len);
} else { } else {
unsigned int i; unsigned int i;
...@@ -405,6 +413,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf( ...@@ -405,6 +413,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf(
for (count = 0; count < tspi->curr_dma_words; count++) { for (count = 0; count < tspi->curr_dma_words; count++) {
u32 x = tspi->rx_dma_buf[count] & rx_mask; u32 x = tspi->rx_dma_buf[count] & rx_mask;
for (i = 0; (i < tspi->bytes_per_word); i++) for (i = 0; (i < tspi->bytes_per_word); i++)
*rx_buf++ = (x >> (i*8)) & 0xFF; *rx_buf++ = (x >> (i*8)) & 0xFF;
} }
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
#define SPI_TX_TRIG_MASK (0x3 << 16) #define SPI_TX_TRIG_MASK (0x3 << 16)
#define SPI_TX_TRIG_1W (0x0 << 16) #define SPI_TX_TRIG_1W (0x0 << 16)
#define SPI_TX_TRIG_4W (0x1 << 16) #define SPI_TX_TRIG_4W (0x1 << 16)
#define SPI_DMA_BLK_COUNT(count) (((count) - 1) & 0xFFFF); #define SPI_DMA_BLK_COUNT(count) (((count) - 1) & 0xFFFF)
#define SPI_TX_FIFO 0x10 #define SPI_TX_FIFO 0x10
#define SPI_RX_FIFO 0x20 #define SPI_RX_FIFO 0x20
...@@ -221,6 +221,7 @@ static int tegra_sflash_read_rx_fifo_to_client_rxbuf( ...@@ -221,6 +221,7 @@ static int tegra_sflash_read_rx_fifo_to_client_rxbuf(
while (!(status & SPI_RXF_EMPTY)) { while (!(status & SPI_RXF_EMPTY)) {
int i; int i;
u32 x = tegra_sflash_readl(tsd, SPI_RX_FIFO); u32 x = tegra_sflash_readl(tsd, SPI_RX_FIFO);
for (i = 0; (i < tsd->bytes_per_word); i++) for (i = 0; (i < tsd->bytes_per_word); i++)
*rx_buf++ = (x >> (i*8)) & 0xFF; *rx_buf++ = (x >> (i*8)) & 0xFF;
read_words++; read_words++;
......
...@@ -97,6 +97,7 @@ static void txx9spi_cs_func(struct spi_device *spi, struct txx9spi *c, ...@@ -97,6 +97,7 @@ static void txx9spi_cs_func(struct spi_device *spi, struct txx9spi *c,
int on, unsigned int cs_delay) int on, unsigned int cs_delay)
{ {
int val = (spi->mode & SPI_CS_HIGH) ? on : !on; int val = (spi->mode & SPI_CS_HIGH) ? on : !on;
if (on) { if (on) {
/* deselect the chip with cs_change hint in last transfer */ /* deselect the chip with cs_change hint in last transfer */
if (c->last_chipselect >= 0) if (c->last_chipselect >= 0)
...@@ -188,6 +189,7 @@ static void txx9spi_work_one(struct txx9spi *c, struct spi_message *m) ...@@ -188,6 +189,7 @@ static void txx9spi_work_one(struct txx9spi *c, struct spi_message *m)
if (prev_speed_hz != speed_hz if (prev_speed_hz != speed_hz
|| prev_bits_per_word != bits_per_word) { || prev_bits_per_word != bits_per_word) {
int n = DIV_ROUND_UP(c->baseclk, speed_hz) - 1; int n = DIV_ROUND_UP(c->baseclk, speed_hz) - 1;
n = clamp(n, SPI_MIN_DIVIDER, SPI_MAX_DIVIDER); n = clamp(n, SPI_MIN_DIVIDER, SPI_MAX_DIVIDER);
/* enter config mode */ /* enter config mode */
txx9spi_wr(c, mcr | TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR, txx9spi_wr(c, mcr | TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR,
......
...@@ -46,6 +46,7 @@ static inline unsigned int xtfpga_spi_read32(const struct xtfpga_spi *spi, ...@@ -46,6 +46,7 @@ static inline unsigned int xtfpga_spi_read32(const struct xtfpga_spi *spi,
static inline void xtfpga_spi_wait_busy(struct xtfpga_spi *xspi) static inline void xtfpga_spi_wait_busy(struct xtfpga_spi *xspi)
{ {
unsigned i; unsigned i;
for (i = 0; xtfpga_spi_read32(xspi, XTFPGA_SPI_BUSY) && for (i = 0; xtfpga_spi_read32(xspi, XTFPGA_SPI_BUSY) &&
i < BUSY_WAIT_US; ++i) i < BUSY_WAIT_US; ++i)
udelay(1); udelay(1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment