64 bit transfers are possible on both sides in slave transfers (memory as well
as peripherals). This patch adds support for it memory side 64 bit transfers.

Signed-off-by: Viresh Kumar <viresh.ku...@st.com>
---
 drivers/dma/dw_dmac.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 49d477c..44d8069 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -756,8 +756,14 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct 
scatterlist *sgl,
 
                        mem = sg_phys(sg);
                        len = sg_dma_len(sg);
-                       mem_width = 2;
-                       if (unlikely(mem & 3 || len & 3))
+
+                       if (!((mem | len) & 7))
+                               mem_width = 3;
+                       else if (!((mem | len) & 3))
+                               mem_width = 2;
+                       else if (!((mem | len) & 1))
+                               mem_width = 1;
+                       else
                                mem_width = 0;
 
 slave_sg_todev_fill_desc:
@@ -814,8 +820,14 @@ slave_sg_todev_fill_desc:
 
                        mem = sg_phys(sg);
                        len = sg_dma_len(sg);
-                       mem_width = 2;
-                       if (unlikely(mem & 3 || len & 3))
+
+                       if (!((mem | len) & 7))
+                               mem_width = 3;
+                       else if (!((mem | len) & 3))
+                               mem_width = 2;
+                       else if (!((mem | len) & 1))
+                               mem_width = 1;
+                       else
                                mem_width = 0;
 
 slave_sg_fromdev_fill_desc:
-- 
1.7.8.110.g4cb5d

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to