diff options
-rw-r--r-- | drivers/spi/spi-pl022.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 6120e6abcd96..0c793e31d60f 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c | |||
@@ -861,11 +861,10 @@ static void dma_callback(void *data) | |||
861 | 861 | ||
862 | /* Update total bytes transferred */ | 862 | /* Update total bytes transferred */ |
863 | msg->actual_length += pl022->cur_transfer->len; | 863 | msg->actual_length += pl022->cur_transfer->len; |
864 | if (pl022->cur_transfer->cs_change) | ||
865 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
866 | |||
867 | /* Move to next transfer */ | 864 | /* Move to next transfer */ |
868 | msg->state = next_transfer(pl022); | 865 | msg->state = next_transfer(pl022); |
866 | if (msg->state != STATE_DONE && pl022->cur_transfer->cs_change) | ||
867 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
869 | tasklet_schedule(&pl022->pump_transfers); | 868 | tasklet_schedule(&pl022->pump_transfers); |
870 | } | 869 | } |
871 | 870 | ||
@@ -1333,10 +1332,10 @@ static irqreturn_t pl022_interrupt_handler(int irq, void *dev_id) | |||
1333 | } | 1332 | } |
1334 | /* Update total bytes transferred */ | 1333 | /* Update total bytes transferred */ |
1335 | msg->actual_length += pl022->cur_transfer->len; | 1334 | msg->actual_length += pl022->cur_transfer->len; |
1336 | if (pl022->cur_transfer->cs_change) | ||
1337 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
1338 | /* Move to next transfer */ | 1335 | /* Move to next transfer */ |
1339 | msg->state = next_transfer(pl022); | 1336 | msg->state = next_transfer(pl022); |
1337 | if (msg->state != STATE_DONE && pl022->cur_transfer->cs_change) | ||
1338 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
1340 | tasklet_schedule(&pl022->pump_transfers); | 1339 | tasklet_schedule(&pl022->pump_transfers); |
1341 | return IRQ_HANDLED; | 1340 | return IRQ_HANDLED; |
1342 | } | 1341 | } |
@@ -1544,10 +1543,11 @@ static void do_polling_transfer(struct pl022 *pl022) | |||
1544 | 1543 | ||
1545 | /* Update total byte transferred */ | 1544 | /* Update total byte transferred */ |
1546 | message->actual_length += pl022->cur_transfer->len; | 1545 | message->actual_length += pl022->cur_transfer->len; |
1547 | if (pl022->cur_transfer->cs_change) | ||
1548 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
1549 | /* Move to next transfer */ | 1546 | /* Move to next transfer */ |
1550 | message->state = next_transfer(pl022); | 1547 | message->state = next_transfer(pl022); |
1548 | if (message->state != STATE_DONE | ||
1549 | && pl022->cur_transfer->cs_change) | ||
1550 | pl022_cs_control(pl022, SSP_CHIP_DESELECT); | ||
1551 | } | 1551 | } |
1552 | out: | 1552 | out: |
1553 | /* Handle end of message */ | 1553 | /* Handle end of message */ |