diff options
author | Wendly Li <wendlyli@google.com> | 2022-01-17 17:31:14 +0000 |
---|---|---|
committer | Wendly Li <wendlyli@google.com> | 2022-05-24 13:08:47 +0000 |
commit | 2066943eca0910f544389120ff8c4e503f2ccbc6 (patch) | |
tree | 0a1f3837bd98a945fa08a7b4fa906a893e62b2aa /goodix_brl_spi.c | |
parent | 4d5d4a97a95d7958ba0060212beadd3bb7adffb5 (diff) | |
download | goodix_touch-2066943eca0910f544389120ff8c4e503f2ccbc6.tar.gz |
goodix: Enable DMA
Bug: 214118837
Test: Check DMA is enabled
Change-Id: I3d02e9af8700914fa5eda6875a790cdb30510025
Signed-off-by: Wendly Li <wendlyli@google.com>
Diffstat (limited to 'goodix_brl_spi.c')
-rw-r--r-- | goodix_brl_spi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/goodix_brl_spi.c b/goodix_brl_spi.c index 1356e52..09fc9aa 100644 --- a/goodix_brl_spi.c +++ b/goodix_brl_spi.c @@ -121,6 +121,10 @@ static int goodix_spi_read(struct device *dev, unsigned int addr, int ret = 0; int buf_len = SPI_READ_PREFIX_LEN - 1 + len; + if (buf_len >= 64) { + buf_len = ALIGN(buf_len, 4); + } + if (buf_len <= SPI_PREALLOC_RX_BUF_SIZE && buf_len <= SPI_PREALLOC_TX_BUF_SIZE) { rx_buf = goodix_spi_bus.rx_buf; @@ -158,6 +162,7 @@ static int goodix_spi_read(struct device *dev, unsigned int addr, xfers.rx_buf = rx_buf; xfers.len = buf_len; xfers.cs_change = 0; + xfers.bits_per_word = buf_len >= 64 ? 32 : 8; spi_message_add_tail(&xfers, &spi_msg); ret = spi_sync(spi, &spi_msg); if (ret < 0) { @@ -193,6 +198,10 @@ static int goodix_spi_write(struct device *dev, unsigned int addr, int ret = 0; int buf_len = SPI_WRITE_PREFIX_LEN + len; + if (buf_len >= 64) { + buf_len = ALIGN(buf_len, 4); + } + if (buf_len <= SPI_PREALLOC_TX_BUF_SIZE) { tx_buf = goodix_spi_bus.tx_buf; } else { @@ -215,6 +224,7 @@ static int goodix_spi_write(struct device *dev, unsigned int addr, xfers.tx_buf = tx_buf; xfers.len = buf_len; xfers.cs_change = 0; + xfers.bits_per_word = buf_len >= 64 ? 32 : 8; spi_message_add_tail(&xfers, &spi_msg); ret = spi_sync(spi, &spi_msg); if (ret < 0) |