spi/tegra-slink: remove redundant code
[firefly-linux-kernel-4.4.55.git] / drivers / spi / spi-tegra20-slink.c
index 4e58b53990378112fe1002d420ee254881df2f4f..d35315408f649de737650e48b5d2ad59e499a60b 100644 (file)
@@ -189,7 +189,6 @@ struct tegra_slink_data {
        unsigned                                dma_buf_size;
        unsigned                                max_buf_size;
        bool                                    is_curr_dma_xfer;
-       bool                                    is_hw_based_cs;
 
        struct completion                       rx_dma_complete;
        struct completion                       tx_dma_complete;
@@ -467,7 +466,7 @@ static int tegra_slink_start_tx_dma(struct tegra_slink_data *tspi, int len)
        INIT_COMPLETION(tspi->tx_dma_complete);
        tspi->tx_dma_desc = dmaengine_prep_slave_single(tspi->tx_dma_chan,
                                tspi->tx_dma_phys, len, DMA_MEM_TO_DEV,
-                               DMA_PREP_INTERRUPT);
+                               DMA_PREP_INTERRUPT |  DMA_CTRL_ACK);
        if (!tspi->tx_dma_desc) {
                dev_err(tspi->dev, "Not able to get desc for Tx\n");
                return -EIO;
@@ -486,7 +485,7 @@ static int tegra_slink_start_rx_dma(struct tegra_slink_data *tspi, int len)
        INIT_COMPLETION(tspi->rx_dma_complete);
        tspi->rx_dma_desc = dmaengine_prep_slave_single(tspi->rx_dma_chan,
                                tspi->rx_dma_phys, len, DMA_DEV_TO_MEM,
-                               DMA_PREP_INTERRUPT);
+                               DMA_PREP_INTERRUPT |  DMA_CTRL_ACK);
        if (!tspi->rx_dma_desc) {
                dev_err(tspi->dev, "Not able to get desc for Rx\n");
                return -EIO;
@@ -717,7 +716,6 @@ static int tegra_slink_start_transfer_one(struct spi_device *spi,
        u8 bits_per_word;
        unsigned total_fifo_words;
        int ret;
-       struct tegra_spi_device_controller_data *cdata = spi->controller_data;
        unsigned long command;
        unsigned long command2;
 
@@ -740,39 +738,11 @@ static int tegra_slink_start_transfer_one(struct spi_device *spi,
 
                command = tspi->def_command_reg;
                command |= SLINK_BIT_LENGTH(bits_per_word - 1);
+               command |= SLINK_CS_SW | SLINK_CS_VALUE;
 
                command2 = tspi->def_command2_reg;
                command2 |= SLINK_SS_EN_CS(spi->chip_select);
 
-               /* possibly use the hw based chip select */
-               tspi->is_hw_based_cs = false;
-               if (cdata && cdata->is_hw_based_cs && is_single_xfer &&
-                       ((tspi->curr_dma_words * tspi->bytes_per_word) ==
-                                               (t->len - tspi->cur_pos))) {
-                       int setup_count;
-                       int sts2;
-
-                       setup_count = cdata->cs_setup_clk_count >> 1;
-                       setup_count = max(setup_count, 3);
-                       command2 |= SLINK_SS_SETUP(setup_count);
-                       if (tspi->chip_data->cs_hold_time) {
-                               int hold_count;
-
-                               hold_count = cdata->cs_hold_clk_count;
-                               hold_count = max(hold_count, 0xF);
-                               sts2 = tegra_slink_readl(tspi, SLINK_STATUS2);
-                               sts2 &= ~SLINK_SS_HOLD_TIME(0xF);
-                               sts2 |= SLINK_SS_HOLD_TIME(hold_count);
-                               tegra_slink_writel(tspi, sts2, SLINK_STATUS2);
-                       }
-                       tspi->is_hw_based_cs = true;
-               }
-
-               if (tspi->is_hw_based_cs)
-                       command &= ~SLINK_CS_SW;
-               else
-                       command |= SLINK_CS_SW | SLINK_CS_VALUE;
-
                command &= ~SLINK_MODES;
                if (spi->mode & SPI_CPHA)
                        command |= SLINK_CK_SDA;