Merge remote-tracking branches 'spi/topic/pxa2xx', 'spi/topic/qup', 'spi/topic/rockchip', 'spi/topic/st-ssc4' and 'spi/topic/xlp' into spi-next
This commit is contained in:
@@ -570,9 +570,8 @@ static void giveback(struct driver_data *drv_data)
|
||||
/* see if the next and current messages point
|
||||
* to the same chip
|
||||
*/
|
||||
if (next_msg && next_msg->spi != msg->spi)
|
||||
next_msg = NULL;
|
||||
if (!next_msg || msg->state == ERROR_STATE)
|
||||
if ((next_msg && next_msg->spi != msg->spi) ||
|
||||
msg->state == ERROR_STATE)
|
||||
cs_deassert(drv_data);
|
||||
}
|
||||
|
||||
@@ -928,6 +927,7 @@ static void pump_transfers(unsigned long data)
|
||||
u32 dma_thresh = drv_data->cur_chip->dma_threshold;
|
||||
u32 dma_burst = drv_data->cur_chip->dma_burst_size;
|
||||
u32 change_mask = pxa2xx_spi_get_ssrc1_change_mask(drv_data);
|
||||
int err;
|
||||
|
||||
/* Get current state information */
|
||||
message = drv_data->cur_msg;
|
||||
@@ -1047,7 +1047,12 @@ static void pump_transfers(unsigned long data)
|
||||
/* Ensure we have the correct interrupt handler */
|
||||
drv_data->transfer_handler = pxa2xx_spi_dma_transfer;
|
||||
|
||||
pxa2xx_spi_dma_prepare(drv_data, dma_burst);
|
||||
err = pxa2xx_spi_dma_prepare(drv_data, dma_burst);
|
||||
if (err) {
|
||||
message->status = err;
|
||||
giveback(drv_data);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Clear status and start DMA engine */
|
||||
cr1 = chip->cr1 | dma_thresh | drv_data->dma_cr1;
|
||||
@@ -1555,6 +1560,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
|
||||
master->unprepare_transfer_hardware = pxa2xx_spi_unprepare_transfer;
|
||||
master->fw_translate_cs = pxa2xx_spi_fw_translate_cs;
|
||||
master->auto_runtime_pm = true;
|
||||
master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
|
||||
|
||||
drv_data->ssp_type = ssp->type;
|
||||
|
||||
|
Viittaa uudesa ongelmassa
Block a user