[PATCH 4.4 19/24] serial: samsung: fix maxburst parameter for DMA transactions

2018-06-14 Thread Greg Kroah-Hartman
4.4-stable review patch.  If anyone has any objections, please let me know.

--

From: Marek Szyprowski 

commit aa2f80e752c75e593b3820f42c416ed9458fa73e upstream.

The best granularity of residue that DMA engine can report is in the BURST
units, so the serial driver must use MAXBURST = 1 and DMA_SLAVE_BUSWIDTH_1_BYTE
if it relies on exact number of bytes transferred by DMA engine.

Fixes: 62c37eedb74c ("serial: samsung: add dma reqest/release functions")
Signed-off-by: Marek Szyprowski 
Acked-by: Krzysztof Kozlowski 
Cc: stable 
Signed-off-by: Greg Kroah-Hartman 

---
 drivers/tty/serial/samsung.c |7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -860,15 +860,12 @@ static int s3c24xx_serial_request_dma(st
dma->rx_conf.direction  = DMA_DEV_TO_MEM;
dma->rx_conf.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
dma->rx_conf.src_addr   = p->port.mapbase + S3C2410_URXH;
-   dma->rx_conf.src_maxburst   = 16;
+   dma->rx_conf.src_maxburst   = 1;
 
dma->tx_conf.direction  = DMA_MEM_TO_DEV;
dma->tx_conf.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
dma->tx_conf.dst_addr   = p->port.mapbase + S3C2410_UTXH;
-   if (dma_get_cache_alignment() >= 16)
-   dma->tx_conf.dst_maxburst = 16;
-   else
-   dma->tx_conf.dst_maxburst = 1;
+   dma->tx_conf.dst_maxburst   = 1;
 
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);




[PATCH 4.4 19/24] serial: samsung: fix maxburst parameter for DMA transactions

2018-06-14 Thread Greg Kroah-Hartman
4.4-stable review patch.  If anyone has any objections, please let me know.

--

From: Marek Szyprowski 

commit aa2f80e752c75e593b3820f42c416ed9458fa73e upstream.

The best granularity of residue that DMA engine can report is in the BURST
units, so the serial driver must use MAXBURST = 1 and DMA_SLAVE_BUSWIDTH_1_BYTE
if it relies on exact number of bytes transferred by DMA engine.

Fixes: 62c37eedb74c ("serial: samsung: add dma reqest/release functions")
Signed-off-by: Marek Szyprowski 
Acked-by: Krzysztof Kozlowski 
Cc: stable 
Signed-off-by: Greg Kroah-Hartman 

---
 drivers/tty/serial/samsung.c |7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -860,15 +860,12 @@ static int s3c24xx_serial_request_dma(st
dma->rx_conf.direction  = DMA_DEV_TO_MEM;
dma->rx_conf.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
dma->rx_conf.src_addr   = p->port.mapbase + S3C2410_URXH;
-   dma->rx_conf.src_maxburst   = 16;
+   dma->rx_conf.src_maxburst   = 1;
 
dma->tx_conf.direction  = DMA_MEM_TO_DEV;
dma->tx_conf.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;
dma->tx_conf.dst_addr   = p->port.mapbase + S3C2410_UTXH;
-   if (dma_get_cache_alignment() >= 16)
-   dma->tx_conf.dst_maxburst = 16;
-   else
-   dma->tx_conf.dst_maxburst = 1;
+   dma->tx_conf.dst_maxburst   = 1;
 
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);