All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
@ 2010-12-15 17:50 ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2010-12-15 17:50 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, Nicolas Ferre

In atc_prep_slave_sg() function we use dma_address field of scatterlist with
sg_dma_address() macro instead of sg_phys(). DMA address is already computed
by dma_map_sg() or another mapping function in calling driver.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index ea0ee81..ee7dacd 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -670,7 +670,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 			if (!desc)
 				goto err_desc_get;
 
-			mem = sg_phys(sg);
+			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
@@ -712,7 +712,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 			if (!desc)
 				goto err_desc_get;
 
-			mem = sg_phys(sg);
+			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
@ 2010-12-15 17:50 ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2010-12-15 17:50 UTC (permalink / raw)
  To: linux-arm-kernel

In atc_prep_slave_sg() function we use dma_address field of scatterlist with
sg_dma_address() macro instead of sg_phys(). DMA address is already computed
by dma_map_sg() or another mapping function in calling driver.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index ea0ee81..ee7dacd 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -670,7 +670,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 			if (!desc)
 				goto err_desc_get;
 
-			mem = sg_phys(sg);
+			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
@@ -712,7 +712,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 			if (!desc)
 				goto err_desc_get;
 
-			mem = sg_phys(sg);
+			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-10 13:21   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-10 13:21 UTC (permalink / raw)
  To: dan.j.williams; +Cc: linux-arm-kernel, linux-kernel

Le 15/12/2010 18:50, Nicolas Ferre :
> In atc_prep_slave_sg() function we use dma_address field of scatterlist with
> sg_dma_address() macro instead of sg_phys(). DMA address is already computed
> by dma_map_sg() or another mapping function in calling driver.

Ping?

> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
>  drivers/dma/at_hdmac.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> index ea0ee81..ee7dacd 100644
> --- a/drivers/dma/at_hdmac.c
> +++ b/drivers/dma/at_hdmac.c
> @@ -670,7 +670,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  			if (!desc)
>  				goto err_desc_get;
>  
> -			mem = sg_phys(sg);
> +			mem = sg_dma_address(sg);
>  			len = sg_dma_len(sg);
>  			mem_width = 2;
>  			if (unlikely(mem & 3 || len & 3))
> @@ -712,7 +712,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  			if (!desc)
>  				goto err_desc_get;
>  
> -			mem = sg_phys(sg);
> +			mem = sg_dma_address(sg);
>  			len = sg_dma_len(sg);
>  			mem_width = 2;
>  			if (unlikely(mem & 3 || len & 3))


-- 
Nicolas Ferre

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
@ 2011-01-10 13:21   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-10 13:21 UTC (permalink / raw)
  To: linux-arm-kernel

Le 15/12/2010 18:50, Nicolas Ferre :
> In atc_prep_slave_sg() function we use dma_address field of scatterlist with
> sg_dma_address() macro instead of sg_phys(). DMA address is already computed
> by dma_map_sg() or another mapping function in calling driver.

Ping?

> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
>  drivers/dma/at_hdmac.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> index ea0ee81..ee7dacd 100644
> --- a/drivers/dma/at_hdmac.c
> +++ b/drivers/dma/at_hdmac.c
> @@ -670,7 +670,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  			if (!desc)
>  				goto err_desc_get;
>  
> -			mem = sg_phys(sg);
> +			mem = sg_dma_address(sg);
>  			len = sg_dma_len(sg);
>  			mem_width = 2;
>  			if (unlikely(mem & 3 || len & 3))
> @@ -712,7 +712,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
>  			if (!desc)
>  				goto err_desc_get;
>  
> -			mem = sg_phys(sg);
> +			mem = sg_dma_address(sg);
>  			len = sg_dma_len(sg);
>  			mem_width = 2;
>  			if (unlikely(mem & 3 || len & 3))


-- 
Nicolas Ferre

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 2/6] dmaengine: at_hdmac: trivial add precision to unmapping comment
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-12 14:39   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, hong.xu, Nicolas Ferre

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
Hi Dan,

I link this patch series to the previous single patch that I sent a few days
ago so that you will have the whole overview of current (little) improvements
on the Atmel at_hdmac driver.

Thanks, best regards,

Nicolas.

 drivers/dma/at_hdmac.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index ee7dacd..a4dd4bc 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -253,7 +253,7 @@ atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
 	/* move myself to free_list */
 	list_move(&desc->desc_node, &atchan->free_list);
 
-	/* unmap dma addresses */
+	/* unmap dma addresses (not on slave channels) */
 	if (!atchan->chan_common.private) {
 		struct device *parent = chan2parent(&atchan->chan_common);
 		if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/6] dmaengine: at_hdmac: trivial add precision to unmapping comment
@ 2011-01-12 14:39   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
Hi Dan,

I link this patch series to the previous single patch that I sent a few days
ago so that you will have the whole overview of current (little) improvements
on the Atmel at_hdmac driver.

Thanks, best regards,

Nicolas.

 drivers/dma/at_hdmac.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index ee7dacd..a4dd4bc 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -253,7 +253,7 @@ atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
 	/* move myself to free_list */
 	list_move(&desc->desc_node, &atchan->free_list);
 
-	/* unmap dma addresses */
+	/* unmap dma addresses (not on slave channels) */
 	if (!atchan->chan_common.private) {
 		struct device *parent = chan2parent(&atchan->chan_common);
 		if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/6] dmaengine: at_hdmac: no need set ACK in new descriptor
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-12 14:39   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, hong.xu, Nicolas Ferre

Following descriptor flow in at_hdmac driver, descriptor comming from
atc_desc_get() as already DMA_CTRL_ACK flag set. No need to set it again.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index a4dd4bc..4f83431 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -583,7 +583,6 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
 		desc->lli.ctrlb = ctrlb;
 
 		desc->txd.cookie = 0;
-		async_tx_ack(&desc->txd);
 
 		if (!first) {
 			first = desc;
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/6] dmaengine: at_hdmac: no need set ACK in new descriptor
@ 2011-01-12 14:39   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

Following descriptor flow in at_hdmac driver, descriptor comming from
atc_desc_get() as already DMA_CTRL_ACK flag set. No need to set it again.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index a4dd4bc..4f83431 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -583,7 +583,6 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
 		desc->lli.ctrlb = ctrlb;
 
 		desc->txd.cookie = 0;
-		async_tx_ack(&desc->txd);
 
 		if (!first) {
 			first = desc;
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 4/6] dmaengine: at_hdmac: use subsys_initcall instead of module_init
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-12 14:39   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, hong.xu, Nicolas Ferre

From: Eric Xu <hong.xu@atmel.com>

Use subsys_initcall instead of module_init in order to keep DMA engine rolling
before other peripheral drivers.

Signed-off-by: Eric Xu <hong.xu@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 4f83431..a1a0fc6 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -1209,7 +1209,7 @@ static int __init at_dma_init(void)
 {
 	return platform_driver_probe(&at_dma_driver, at_dma_probe);
 }
-module_init(at_dma_init);
+subsys_initcall(at_dma_init);
 
 static void __exit at_dma_exit(void)
 {
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 4/6] dmaengine: at_hdmac: use subsys_initcall instead of module_init
@ 2011-01-12 14:39   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Xu <hong.xu@atmel.com>

Use subsys_initcall instead of module_init in order to keep DMA engine rolling
before other peripheral drivers.

Signed-off-by: Eric Xu <hong.xu@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 4f83431..a1a0fc6 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -1209,7 +1209,7 @@ static int __init at_dma_init(void)
 {
 	return platform_driver_probe(&at_dma_driver, at_dma_probe);
 }
-module_init(at_dma_init);
+subsys_initcall(at_dma_init);
 
 static void __exit at_dma_exit(void)
 {
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 5/6] dmaengine: at_hdmac: flags located in first descriptor
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-12 14:39   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, hong.xu, Nicolas Ferre

Place flags on first descriptor of chain instead of last.
This is the one used by atc_chain_complete() function while unmapping.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index a1a0fc6..99942a5 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -603,7 +603,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
 	/* set end-of-link to the last link descriptor of list*/
 	set_desc_eol(desc);
 
-	desc->txd.flags = flags; /* client is in control of this ack */
+	first->txd.flags = flags; /* client is in control of this ack */
 
 	return &first->txd;
 
@@ -748,8 +748,8 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 	first->txd.cookie = -EBUSY;
 	first->len = total_len;
 
-	/* last link descriptor of list is responsible of flags */
-	prev->txd.flags = flags; /* client is in control of this ack */
+	/* first link descriptor of list is responsible of flags */
+	first->txd.flags = flags; /* client is in control of this ack */
 
 	return &first->txd;
 
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 5/6] dmaengine: at_hdmac: flags located in first descriptor
@ 2011-01-12 14:39   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

Place flags on first descriptor of chain instead of last.
This is the one used by atc_chain_complete() function while unmapping.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index a1a0fc6..99942a5 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -603,7 +603,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
 	/* set end-of-link to the last link descriptor of list*/
 	set_desc_eol(desc);
 
-	desc->txd.flags = flags; /* client is in control of this ack */
+	first->txd.flags = flags; /* client is in control of this ack */
 
 	return &first->txd;
 
@@ -748,8 +748,8 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 	first->txd.cookie = -EBUSY;
 	first->len = total_len;
 
-	/* last link descriptor of list is responsible of flags */
-	prev->txd.flags = flags; /* client is in control of this ack */
+	/* first link descriptor of list is responsible of flags */
+	first->txd.flags = flags; /* client is in control of this ack */
 
 	return &first->txd;
 
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 6/6] dmaengine: at_hdmac: fix race while monitoring channel status
  2010-12-15 17:50 ` Nicolas Ferre
@ 2011-01-12 14:39   ` Nicolas Ferre
  -1 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: dan.j.williams, linux-arm-kernel; +Cc: linux-kernel, hong.xu, Nicolas Ferre

We were reading channel status then taking a lock. This lead to a race because
this lock may delay us and then make this channel not idle anymore.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 99942a5..3d7d705 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -853,11 +853,11 @@ static void atc_issue_pending(struct dma_chan *chan)
 
 	dev_vdbg(chan2dev(chan), "issue_pending\n");
 
+	spin_lock_bh(&atchan->lock);
 	if (!atc_chan_is_enabled(atchan)) {
-		spin_lock_bh(&atchan->lock);
 		atc_advance_work(atchan);
-		spin_unlock_bh(&atchan->lock);
 	}
+	spin_unlock_bh(&atchan->lock);
 }
 
 /**
-- 
1.7.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 6/6] dmaengine: at_hdmac: fix race while monitoring channel status
@ 2011-01-12 14:39   ` Nicolas Ferre
  0 siblings, 0 replies; 18+ messages in thread
From: Nicolas Ferre @ 2011-01-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

We were reading channel status then taking a lock. This lead to a race because
this lock may delay us and then make this channel not idle anymore.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/dma/at_hdmac.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 99942a5..3d7d705 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -853,11 +853,11 @@ static void atc_issue_pending(struct dma_chan *chan)
 
 	dev_vdbg(chan2dev(chan), "issue_pending\n");
 
+	spin_lock_bh(&atchan->lock);
 	if (!atc_chan_is_enabled(atchan)) {
-		spin_lock_bh(&atchan->lock);
 		atc_advance_work(atchan);
-		spin_unlock_bh(&atchan->lock);
 	}
+	spin_unlock_bh(&atchan->lock);
 }
 
 /**
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
  2011-01-10 13:21   ` Nicolas Ferre
@ 2011-01-15  0:14     ` Dan Williams
  -1 siblings, 0 replies; 18+ messages in thread
From: Dan Williams @ 2011-01-15  0:14 UTC (permalink / raw)
  To: Nicolas Ferre; +Cc: linux-arm-kernel, linux-kernel

On Mon, Jan 10, 2011 at 5:21 AM, Nicolas Ferre <nicolas.ferre@atmel.com> wrote:
> Le 15/12/2010 18:50, Nicolas Ferre :
>> In atc_prep_slave_sg() function we use dma_address field of scatterlist with
>> sg_dma_address() macro instead of sg_phys(). DMA address is already computed
>> by dma_map_sg() or another mapping function in calling driver.
>
> Ping?
>

Applied.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware
@ 2011-01-15  0:14     ` Dan Williams
  0 siblings, 0 replies; 18+ messages in thread
From: Dan Williams @ 2011-01-15  0:14 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jan 10, 2011 at 5:21 AM, Nicolas Ferre <nicolas.ferre@atmel.com> wrote:
> Le 15/12/2010 18:50, Nicolas Ferre :
>> In atc_prep_slave_sg() function we use dma_address field of scatterlist with
>> sg_dma_address() macro instead of sg_phys(). DMA address is already computed
>> by dma_map_sg() or another mapping function in calling driver.
>
> Ping?
>

Applied.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 4/6] dmaengine: at_hdmac: use subsys_initcall instead of module_init
  2011-01-12 14:39   ` Nicolas Ferre
@ 2011-01-15  0:27     ` Dan Williams
  -1 siblings, 0 replies; 18+ messages in thread
From: Dan Williams @ 2011-01-15  0:27 UTC (permalink / raw)
  To: Nicolas Ferre; +Cc: linux-arm-kernel, linux-kernel, hong.xu

On Wed, Jan 12, 2011 at 6:39 AM, Nicolas Ferre <nicolas.ferre@atmel.com> wrote:
> From: Eric Xu <hong.xu@atmel.com>
>
> Use subsys_initcall instead of module_init in order to keep DMA engine rolling
> before other peripheral drivers.
>
> Signed-off-by: Eric Xu <hong.xu@atmel.com>
> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
>  drivers/dma/at_hdmac.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> index 4f83431..a1a0fc6 100644
> --- a/drivers/dma/at_hdmac.c
> +++ b/drivers/dma/at_hdmac.c
> @@ -1209,7 +1209,7 @@ static int __init at_dma_init(void)
>  {
>        return platform_driver_probe(&at_dma_driver, at_dma_probe);
>  }
> -module_init(at_dma_init);
> +subsys_initcall(at_dma_init);

If this matters shouldn't we also do this?

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 1b61d3a..4d14626 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -90,7 +90,7 @@ config DW_DMAC
          can be integrated in chips such as the Atmel AT32ap7000.

 config AT_HDMAC
-       tristate "Atmel AHB DMA support"
+       bool "Atmel AHB DMA support"
        depends on ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
        select DMA_ENGINE
        help

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 4/6] dmaengine: at_hdmac: use subsys_initcall instead of module_init
@ 2011-01-15  0:27     ` Dan Williams
  0 siblings, 0 replies; 18+ messages in thread
From: Dan Williams @ 2011-01-15  0:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jan 12, 2011 at 6:39 AM, Nicolas Ferre <nicolas.ferre@atmel.com> wrote:
> From: Eric Xu <hong.xu@atmel.com>
>
> Use subsys_initcall instead of module_init in order to keep DMA engine rolling
> before other peripheral drivers.
>
> Signed-off-by: Eric Xu <hong.xu@atmel.com>
> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
> ?drivers/dma/at_hdmac.c | ? ?2 +-
> ?1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> index 4f83431..a1a0fc6 100644
> --- a/drivers/dma/at_hdmac.c
> +++ b/drivers/dma/at_hdmac.c
> @@ -1209,7 +1209,7 @@ static int __init at_dma_init(void)
> ?{
> ? ? ? ?return platform_driver_probe(&at_dma_driver, at_dma_probe);
> ?}
> -module_init(at_dma_init);
> +subsys_initcall(at_dma_init);

If this matters shouldn't we also do this?

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 1b61d3a..4d14626 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -90,7 +90,7 @@ config DW_DMAC
          can be integrated in chips such as the Atmel AT32ap7000.

 config AT_HDMAC
-       tristate "Atmel AHB DMA support"
+       bool "Atmel AHB DMA support"
        depends on ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
        select DMA_ENGINE
        help

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2011-01-15  0:27 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-15 17:50 [PATCH] dmaengine: at_hdmac: use dma_address to program DMA hardware Nicolas Ferre
2010-12-15 17:50 ` Nicolas Ferre
2011-01-10 13:21 ` Nicolas Ferre
2011-01-10 13:21   ` Nicolas Ferre
2011-01-15  0:14   ` Dan Williams
2011-01-15  0:14     ` Dan Williams
2011-01-12 14:39 ` [PATCH 2/6] dmaengine: at_hdmac: trivial add precision to unmapping comment Nicolas Ferre
2011-01-12 14:39   ` Nicolas Ferre
2011-01-12 14:39 ` [PATCH 3/6] dmaengine: at_hdmac: no need set ACK in new descriptor Nicolas Ferre
2011-01-12 14:39   ` Nicolas Ferre
2011-01-12 14:39 ` [PATCH 4/6] dmaengine: at_hdmac: use subsys_initcall instead of module_init Nicolas Ferre
2011-01-12 14:39   ` Nicolas Ferre
2011-01-15  0:27   ` Dan Williams
2011-01-15  0:27     ` Dan Williams
2011-01-12 14:39 ` [PATCH 5/6] dmaengine: at_hdmac: flags located in first descriptor Nicolas Ferre
2011-01-12 14:39   ` Nicolas Ferre
2011-01-12 14:39 ` [PATCH 6/6] dmaengine: at_hdmac: fix race while monitoring channel status Nicolas Ferre
2011-01-12 14:39   ` Nicolas Ferre

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.