Merge remote-tracking branch 'spi/for-6.2' into spi-6.2
This commit is contained in:
commit
35bba23e67
2 changed files with 17 additions and 6 deletions
|
@ -366,7 +366,7 @@ static void dw_spi_irq_setup(struct dw_spi *dws)
|
||||||
* will be adjusted at the final stage of the IRQ-based SPI transfer
|
* will be adjusted at the final stage of the IRQ-based SPI transfer
|
||||||
* execution so not to lose the leftover of the incoming data.
|
* execution so not to lose the leftover of the incoming data.
|
||||||
*/
|
*/
|
||||||
level = min_t(u16, dws->fifo_len / 2, dws->tx_len);
|
level = min_t(unsigned int, dws->fifo_len / 2, dws->tx_len);
|
||||||
dw_writel(dws, DW_SPI_TXFTLR, level);
|
dw_writel(dws, DW_SPI_TXFTLR, level);
|
||||||
dw_writel(dws, DW_SPI_RXFTLR, level - 1);
|
dw_writel(dws, DW_SPI_RXFTLR, level - 1);
|
||||||
|
|
||||||
|
|
|
@ -89,10 +89,22 @@ MODULE_PARM_DESC(bufsiz, "data bytes in biggest supported SPI message");
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static ssize_t
|
||||||
|
spidev_sync_unlocked(struct spi_device *spi, struct spi_message *message)
|
||||||
|
{
|
||||||
|
ssize_t status;
|
||||||
|
|
||||||
|
status = spi_sync(spi, message);
|
||||||
|
if (status == 0)
|
||||||
|
status = message->actual_length;
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
spidev_sync(struct spidev_data *spidev, struct spi_message *message)
|
spidev_sync(struct spidev_data *spidev, struct spi_message *message)
|
||||||
{
|
{
|
||||||
int status;
|
ssize_t status;
|
||||||
struct spi_device *spi;
|
struct spi_device *spi;
|
||||||
|
|
||||||
mutex_lock(&spidev->spi_lock);
|
mutex_lock(&spidev->spi_lock);
|
||||||
|
@ -101,10 +113,9 @@ spidev_sync(struct spidev_data *spidev, struct spi_message *message)
|
||||||
if (spi == NULL)
|
if (spi == NULL)
|
||||||
status = -ESHUTDOWN;
|
status = -ESHUTDOWN;
|
||||||
else
|
else
|
||||||
status = spi_sync(spi, message);
|
status = spidev_sync_unlocked(spi, message);
|
||||||
|
|
||||||
if (status == 0)
|
mutex_unlock(&spidev->spi_lock);
|
||||||
status = message->actual_length;
|
|
||||||
|
|
||||||
mutex_unlock(&spidev->spi_lock);
|
mutex_unlock(&spidev->spi_lock);
|
||||||
return status;
|
return status;
|
||||||
|
@ -294,7 +305,7 @@ static int spidev_message(struct spidev_data *spidev,
|
||||||
spi_message_add_tail(k_tmp, &msg);
|
spi_message_add_tail(k_tmp, &msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
status = spidev_sync(spidev, &msg);
|
status = spidev_sync_unlocked(spidev->spi, &msg);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue