spi: dw: Unmask IRQs after enabling the chip

It's theoretically erroneous to enable IRQ before the chip is turned on.
If IRQ handler gets executed before the chip is enabled, then any data
written to the Tx FIFO will be just ignored.

I say "theoretically" because we haven't noticed any problem with that,
but let's fix it anyway just in case...

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20201007235511.4935-12-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Serge Semin 2020-10-08 02:55:00 +03:00 committed by Mark Brown
parent 82d02944d2
commit da8f58909e
No known key found for this signature in database
GPG key ID: 24D68B725D5487D0

View file

@ -376,8 +376,6 @@ static int dw_spi_transfer_one(struct spi_controller *master,
spi_enable_chip(dws, 1);
return ret;
}
} else {
dw_spi_irq_setup(dws);
}
spi_enable_chip(dws, 1);
@ -385,6 +383,8 @@ static int dw_spi_transfer_one(struct spi_controller *master,
if (dws->dma_mapped)
return dws->dma_ops->dma_transfer(dws, transfer);
dw_spi_irq_setup(dws);
return 1;
}