mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 12:14:01 +08:00
Merge branch 'topic/checkpatch' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-dw
This commit is contained in:
commit
551f6a58d4
@ -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)
|
||||
{
|
||||
u32 data = 0;
|
||||
|
||||
if (dspi->tx) {
|
||||
const u8 *tx = dspi->tx;
|
||||
|
||||
data = *tx++;
|
||||
dspi->tx = tx;
|
||||
}
|
||||
@ -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)
|
||||
{
|
||||
u32 data = 0;
|
||||
|
||||
if (dspi->tx) {
|
||||
const u16 *tx = dspi->tx;
|
||||
|
||||
data = *tx++;
|
||||
dspi->tx = tx;
|
||||
}
|
||||
@ -985,8 +989,8 @@ static int davinci_spi_probe(struct platform_device *pdev)
|
||||
goto free_clk;
|
||||
|
||||
dev_info(&pdev->dev, "DMA: supported\n");
|
||||
dev_info(&pdev->dev, "DMA: RX channel: %pa, TX channel: %pa, "
|
||||
"event queue: %d\n", &dma_rx_chan, &dma_tx_chan,
|
||||
dev_info(&pdev->dev, "DMA: RX channel: %pa, TX channel: %pa, event queue: %d\n",
|
||||
&dma_rx_chan, &dma_tx_chan,
|
||||
pdata->dma_event_q);
|
||||
}
|
||||
|
||||
|
@ -131,8 +131,7 @@ static int mrst_spi_debugfs_init(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
|
||||
@ -173,7 +172,7 @@ static inline u32 rx_max(struct dw_spi *dws)
|
||||
{
|
||||
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)
|
||||
@ -224,8 +223,9 @@ static void *next_transfer(struct dw_spi *dws)
|
||||
struct spi_transfer,
|
||||
transfer_list);
|
||||
return RUNNING_STATE;
|
||||
} else
|
||||
return DONE_STATE;
|
||||
}
|
||||
|
||||
return DONE_STATE;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -467,10 +467,12 @@ static void pump_transfers(unsigned long data)
|
||||
*/
|
||||
if (!dws->dma_mapped && !chip->poll_mode) {
|
||||
int templen = dws->len / dws->n_bytes;
|
||||
|
||||
txint_level = dws->fifo_len / 2;
|
||||
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;
|
||||
}
|
||||
|
||||
@ -511,7 +513,6 @@ static void pump_transfers(unsigned long data)
|
||||
|
||||
early_exit:
|
||||
giveback(dws);
|
||||
return;
|
||||
}
|
||||
|
||||
static int dw_spi_transfer_one_message(struct spi_master *master,
|
||||
@ -615,6 +616,7 @@ static void spi_hw_init(struct dw_spi *dws)
|
||||
*/
|
||||
if (!dws->fifo_len) {
|
||||
u32 fifo;
|
||||
|
||||
for (fifo = 2; fifo <= 257; fifo++) {
|
||||
dw_writew(dws, DW_SPI_TXFLTR, fifo);
|
||||
if (fifo != dw_readw(dws, DW_SPI_TXFLTR))
|
||||
|
@ -266,6 +266,7 @@ static int ep93xx_spi_setup(struct spi_device *spi)
|
||||
|
||||
if (chip->ops && chip->ops->setup) {
|
||||
int ret = chip->ops->setup(spi);
|
||||
|
||||
if (ret) {
|
||||
kfree(chip);
|
||||
return ret;
|
||||
|
@ -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)
|
||||
{
|
||||
struct mxs_spi *spi = param;
|
||||
|
||||
complete(&spi->c);
|
||||
}
|
||||
|
||||
static irqreturn_t mxs_ssp_irq_handler(int irq, void *dev_id)
|
||||
{
|
||||
struct mxs_ssp *ssp = dev_id;
|
||||
|
||||
dev_err(ssp->dev, "%s[%i] CTRL1=%08x STATUS=%08x\n",
|
||||
__func__, __LINE__,
|
||||
readl(ssp->base + HW_SSP_CTRL1(ssp)),
|
||||
@ -189,7 +191,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi,
|
||||
if (!len)
|
||||
return -EINVAL;
|
||||
|
||||
dma_xfer = kzalloc(sizeof(*dma_xfer) * sgs, GFP_KERNEL);
|
||||
dma_xfer = kcalloc(sgs, sizeof(*dma_xfer), GFP_KERNEL);
|
||||
if (!dma_xfer)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -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++) {
|
||||
if (readl(spi_reg(orion_spi, ORION_SPI_INT_CAUSE_REG)))
|
||||
return 1;
|
||||
else
|
||||
udelay(1);
|
||||
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
return -1;
|
||||
@ -360,6 +360,7 @@ static int orion_spi_probe(struct platform_device *pdev)
|
||||
master->bus_num = pdev->id;
|
||||
if (pdev->dev.of_node) {
|
||||
u32 cell_index;
|
||||
|
||||
if (!of_property_read_u32(pdev->dev.of_node, "cell-index",
|
||||
&cell_index))
|
||||
master->bus_num = cell_index;
|
||||
|
@ -302,6 +302,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf(
|
||||
max_n_32bit = DIV_ROUND_UP(nbytes, 4);
|
||||
for (count = 0; count < max_n_32bit; count++) {
|
||||
u32 x = 0;
|
||||
|
||||
for (i = 0; (i < 4) && nbytes; i++, nbytes--)
|
||||
x |= (u32)(*tx_buf++) << (i * 8);
|
||||
tegra_spi_writel(tspi, x, SPI_TX_FIFO);
|
||||
@ -312,6 +313,7 @@ static unsigned tegra_spi_fill_tx_fifo_from_client_txbuf(
|
||||
nbytes = written_words * tspi->bytes_per_word;
|
||||
for (count = 0; count < max_n_32bit; count++) {
|
||||
u32 x = 0;
|
||||
|
||||
for (i = 0; nbytes && (i < tspi->bytes_per_word);
|
||||
i++, nbytes--)
|
||||
x |= (u32)(*tx_buf++) << (i * 8);
|
||||
@ -338,6 +340,7 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf(
|
||||
len = tspi->curr_dma_words * tspi->bytes_per_word;
|
||||
for (count = 0; count < rx_full_count; count++) {
|
||||
u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO);
|
||||
|
||||
for (i = 0; len && (i < 4); i++, len--)
|
||||
*rx_buf++ = (x >> i*8) & 0xFF;
|
||||
}
|
||||
@ -345,8 +348,10 @@ static unsigned int tegra_spi_read_rx_fifo_to_client_rxbuf(
|
||||
read_words += tspi->curr_dma_words;
|
||||
} else {
|
||||
u32 rx_mask = ((u32)1 << t->bits_per_word) - 1;
|
||||
|
||||
for (count = 0; count < rx_full_count; count++) {
|
||||
u32 x = tegra_spi_readl(tspi, SPI_RX_FIFO) & rx_mask;
|
||||
|
||||
for (i = 0; (i < tspi->bytes_per_word); i++)
|
||||
*rx_buf++ = (x >> (i*8)) & 0xFF;
|
||||
}
|
||||
@ -365,6 +370,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf(
|
||||
|
||||
if (tspi->is_packed) {
|
||||
unsigned len = tspi->curr_dma_words * tspi->bytes_per_word;
|
||||
|
||||
memcpy(tspi->tx_dma_buf, t->tx_buf + tspi->cur_pos, len);
|
||||
} else {
|
||||
unsigned int i;
|
||||
@ -374,6 +380,7 @@ static void tegra_spi_copy_client_txbuf_to_spi_txbuf(
|
||||
|
||||
for (count = 0; count < tspi->curr_dma_words; count++) {
|
||||
u32 x = 0;
|
||||
|
||||
for (i = 0; consume && (i < tspi->bytes_per_word);
|
||||
i++, consume--)
|
||||
x |= (u32)(*tx_buf++) << (i * 8);
|
||||
@ -396,6 +403,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf(
|
||||
|
||||
if (tspi->is_packed) {
|
||||
unsigned len = tspi->curr_dma_words * tspi->bytes_per_word;
|
||||
|
||||
memcpy(t->rx_buf + tspi->cur_rx_pos, tspi->rx_dma_buf, len);
|
||||
} else {
|
||||
unsigned int i;
|
||||
@ -405,6 +413,7 @@ static void tegra_spi_copy_spi_rxbuf_to_client_rxbuf(
|
||||
|
||||
for (count = 0; count < tspi->curr_dma_words; count++) {
|
||||
u32 x = tspi->rx_dma_buf[count] & rx_mask;
|
||||
|
||||
for (i = 0; (i < tspi->bytes_per_word); i++)
|
||||
*rx_buf++ = (x >> (i*8)) & 0xFF;
|
||||
}
|
||||
|
@ -99,7 +99,7 @@
|
||||
#define SPI_TX_TRIG_MASK (0x3 << 16)
|
||||
#define SPI_TX_TRIG_1W (0x0 << 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_RX_FIFO 0x20
|
||||
@ -221,6 +221,7 @@ static int tegra_sflash_read_rx_fifo_to_client_rxbuf(
|
||||
while (!(status & SPI_RXF_EMPTY)) {
|
||||
int i;
|
||||
u32 x = tegra_sflash_readl(tsd, SPI_RX_FIFO);
|
||||
|
||||
for (i = 0; (i < tsd->bytes_per_word); i++)
|
||||
*rx_buf++ = (x >> (i*8)) & 0xFF;
|
||||
read_words++;
|
||||
|
@ -97,6 +97,7 @@ static void txx9spi_cs_func(struct spi_device *spi, struct txx9spi *c,
|
||||
int on, unsigned int cs_delay)
|
||||
{
|
||||
int val = (spi->mode & SPI_CS_HIGH) ? on : !on;
|
||||
|
||||
if (on) {
|
||||
/* deselect the chip with cs_change hint in last transfer */
|
||||
if (c->last_chipselect >= 0)
|
||||
@ -188,6 +189,7 @@ static void txx9spi_work_one(struct txx9spi *c, struct spi_message *m)
|
||||
if (prev_speed_hz != speed_hz
|
||||
|| prev_bits_per_word != bits_per_word) {
|
||||
int n = DIV_ROUND_UP(c->baseclk, speed_hz) - 1;
|
||||
|
||||
n = clamp(n, SPI_MIN_DIVIDER, SPI_MAX_DIVIDER);
|
||||
/* enter config mode */
|
||||
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,
|
||||
static inline void xtfpga_spi_wait_busy(struct xtfpga_spi *xspi)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; xtfpga_spi_read32(xspi, XTFPGA_SPI_BUSY) &&
|
||||
i < BUSY_WAIT_US; ++i)
|
||||
udelay(1);
|
||||
|
Loading…
Reference in New Issue
Block a user