spi: pxa2xx: Use local struct spi_master pointer in pump_transfers()
[linux-2.6-microblaze.git] / drivers / spi / spi-pxa2xx.c
index fe07c05..e5c457a 100644 (file)
@@ -915,6 +915,7 @@ static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
 static void pump_transfers(unsigned long data)
 {
        struct driver_data *drv_data = (struct driver_data *)data;
+       struct spi_master *master = drv_data->master;
        struct spi_message *message = NULL;
        struct spi_transfer *transfer = NULL;
        struct spi_transfer *previous = NULL;
@@ -1072,12 +1073,12 @@ static void pump_transfers(unsigned long data)
        cr0 = pxa2xx_configure_sscr0(drv_data, clk_div, bits);
        if (!pxa25x_ssp_comp(drv_data))
                dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
-                       drv_data->master->max_speed_hz
+                       master->max_speed_hz
                                / (1 + ((cr0 & SSCR0_SCR(0xfff)) >> 8)),
                        drv_data->dma_mapped ? "DMA" : "PIO");
        else
                dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
-                       drv_data->master->max_speed_hz / 2
+                       master->max_speed_hz / 2
                                / (1 + ((cr0 & SSCR0_SCR(0x0ff)) >> 8)),
                        drv_data->dma_mapped ? "DMA" : "PIO");
 
@@ -1240,7 +1241,7 @@ static int setup(struct spi_device *spi)
                        chip->frm = spi->chip_select;
                } else
                        chip->gpio_cs = -1;
-               chip->enable_dma = 0;
+               chip->enable_dma = drv_data->master_info->enable_dma;
                chip->timeout = TIMOUT_DFLT;
        }
 
@@ -1259,17 +1260,9 @@ static int setup(struct spi_device *spi)
                        tx_hi_thres = chip_info->tx_hi_threshold;
                if (chip_info->rx_threshold)
                        rx_thres = chip_info->rx_threshold;
-               chip->enable_dma = drv_data->master_info->enable_dma;
                chip->dma_threshold = 0;
                if (chip_info->enable_loopback)
                        chip->cr1 = SSCR1_LBM;
-       } else if (ACPI_HANDLE(&spi->dev)) {
-               /*
-                * Slave devices enumerated from ACPI namespace don't
-                * usually have chip_info but we still might want to use
-                * DMA with them.
-                */
-               chip->enable_dma = drv_data->master_info->enable_dma;
        }
 
        chip->lpss_rx_threshold = SSIRF_RxThresh(rx_thres);