Browse Source

Merge branch 'topic/ste' into for-linus

Vinod Koul 8 years ago
parent
commit
25036f2a73
1 changed files with 5 additions and 2 deletions
  1. 5 2
      drivers/dma/ste_dma40.c

+ 5 - 2
drivers/dma/ste_dma40.c

@@ -2809,12 +2809,14 @@ static void __init d40_chan_init(struct d40_base *base, struct dma_device *dma,
 
 
 static void d40_ops_init(struct d40_base *base, struct dma_device *dev)
 static void d40_ops_init(struct d40_base *base, struct dma_device *dev)
 {
 {
-	if (dma_has_cap(DMA_SLAVE, dev->cap_mask))
+	if (dma_has_cap(DMA_SLAVE, dev->cap_mask)) {
 		dev->device_prep_slave_sg = d40_prep_slave_sg;
 		dev->device_prep_slave_sg = d40_prep_slave_sg;
+		dev->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
+	}
 
 
 	if (dma_has_cap(DMA_MEMCPY, dev->cap_mask)) {
 	if (dma_has_cap(DMA_MEMCPY, dev->cap_mask)) {
 		dev->device_prep_dma_memcpy = d40_prep_memcpy;
 		dev->device_prep_dma_memcpy = d40_prep_memcpy;
-
+		dev->directions = BIT(DMA_MEM_TO_MEM);
 		/*
 		/*
 		 * This controller can only access address at even
 		 * This controller can only access address at even
 		 * 32bit boundaries, i.e. 2^2
 		 * 32bit boundaries, i.e. 2^2
@@ -2836,6 +2838,7 @@ static void d40_ops_init(struct d40_base *base, struct dma_device *dev)
 	dev->device_pause = d40_pause;
 	dev->device_pause = d40_pause;
 	dev->device_resume = d40_resume;
 	dev->device_resume = d40_resume;
 	dev->device_terminate_all = d40_terminate_all;
 	dev->device_terminate_all = d40_terminate_all;
+	dev->residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
 	dev->dev = base->dev;
 	dev->dev = base->dev;
 }
 }