2010-12-22 13:46:49

by Guennadi Liakhovetski

[permalink] [raw]
Subject: [PATCH] dmaengine: provide dummy functions for DMA_ENGINE=n

This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
unselected.

Signed-off-by: Guennadi Liakhovetski <[email protected]>
---
include/linux/dmaengine.h | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 9d8688b..8cd00ad 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -824,6 +824,8 @@ enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
#ifdef CONFIG_DMA_ENGINE
enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx);
void dma_issue_pending_all(void);
+struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param);
+void dma_release_channel(struct dma_chan *chan);
#else
static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx)
{
@@ -831,7 +833,14 @@ static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descript
}
static inline void dma_issue_pending_all(void)
{
- do { } while (0);
+}
+static inline struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask,
+ dma_filter_fn fn, void *fn_param)
+{
+ return NULL;
+}
+static inline void dma_release_channel(struct dma_chan *chan)
+{
}
#endif

@@ -842,8 +851,6 @@ void dma_async_device_unregister(struct dma_device *device);
void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type);
#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y)
-struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param);
-void dma_release_channel(struct dma_chan *chan);

/* --- Helper iov-locking functions --- */

--
1.7.2.3


2010-12-22 23:56:29

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: provide dummy functions for DMA_ENGINE=n

On Wed, Dec 22, 2010 at 5:46 AM, Guennadi Liakhovetski
<[email protected]> wrote:
> This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
> unselected.
>
> Signed-off-by: Guennadi Liakhovetski <[email protected]>
> ---
> ?include/linux/dmaengine.h | ? 13 ++++++++++---
> ?1 files changed, 10 insertions(+), 3 deletions(-)

Is this fixing build errors, or is this just relieving drivers from
needing to surround calls to dma_{request|release}_channel() with
ifdef CONFIG_DMA_ENGINE? The former makes this more urgent, the
latter can wait for the next merge window.

--
Dan

2010-12-23 00:14:05

by Guennadi Liakhovetski

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: provide dummy functions for DMA_ENGINE=n

On Wed, 22 Dec 2010, Dan Williams wrote:

> On Wed, Dec 22, 2010 at 5:46 AM, Guennadi Liakhovetski
> <[email protected]> wrote:
> > This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
> > unselected.
> >
> > Signed-off-by: Guennadi Liakhovetski <[email protected]>
> > ---
> > ?include/linux/dmaengine.h | ? 13 ++++++++++---
> > ?1 files changed, 10 insertions(+), 3 deletions(-)
>
> Is this fixing build errors, or is this just relieving drivers from
> needing to surround calls to dma_{request|release}_channel() with
> ifdef CONFIG_DMA_ENGINE? The former makes this more urgent, the
> latter can wait for the next merge window.

sh_mmcif.c doesn't compile, if configured for DMA, but DMA_ENGINE is
unselected. So, yes, this wants to be fixed. But there's more than one way
to fix it. I've chosen this one, as it seems more generic to me.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

2010-12-23 01:39:43

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: provide dummy functions for DMA_ENGINE=n

On Wed, Dec 22, 2010 at 4:13 PM, Guennadi Liakhovetski
<[email protected]> wrote:
> On Wed, 22 Dec 2010, Dan Williams wrote:
>
>> On Wed, Dec 22, 2010 at 5:46 AM, Guennadi Liakhovetski
>> <[email protected]> wrote:
>> > This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
>> > unselected.
>> >
>> > Signed-off-by: Guennadi Liakhovetski <[email protected]>
>> > ---
>> > ?include/linux/dmaengine.h | ? 13 ++++++++++---
>> > ?1 files changed, 10 insertions(+), 3 deletions(-)
>>
>> Is this fixing build errors, or is this just relieving drivers from
>> needing to surround calls to dma_{request|release}_channel() with
>> ifdef CONFIG_DMA_ENGINE? ?The former makes this more urgent, the
>> latter can wait for the next merge window.
>
> sh_mmcif.c doesn't compile, if configured for DMA, but DMA_ENGINE is
> unselected. So, yes, this wants to be fixed. But there's more than one way
> to fix it. I've chosen this one, as it seems more generic to me.
>

Yes, it's the right fix. I was just trying to see if it needs to go
in now and if there were any implications for -stable. Unless I am
missing something drivers/mmc/host/sh_mmcif.c does not even include
dmaengine.h today so this can wait until the 2.6.38 window.

--
Dan

2010-12-23 07:00:38

by Guennadi Liakhovetski

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: provide dummy functions for DMA_ENGINE=n

On Wed, 22 Dec 2010, Dan Williams wrote:

> On Wed, Dec 22, 2010 at 4:13 PM, Guennadi Liakhovetski
> <[email protected]> wrote:
> > On Wed, 22 Dec 2010, Dan Williams wrote:
> >
> >> On Wed, Dec 22, 2010 at 5:46 AM, Guennadi Liakhovetski
> >> <[email protected]> wrote:
> >> > This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
> >> > unselected.
> >> >
> >> > Signed-off-by: Guennadi Liakhovetski <[email protected]>
> >> > ---
> >> > ?include/linux/dmaengine.h | ? 13 ++++++++++---
> >> > ?1 files changed, 10 insertions(+), 3 deletions(-)
> >>
> >> Is this fixing build errors, or is this just relieving drivers from
> >> needing to surround calls to dma_{request|release}_channel() with
> >> ifdef CONFIG_DMA_ENGINE? ?The former makes this more urgent, the
> >> latter can wait for the next merge window.
> >
> > sh_mmcif.c doesn't compile, if configured for DMA, but DMA_ENGINE is
> > unselected. So, yes, this wants to be fixed. But there's more than one way
> > to fix it. I've chosen this one, as it seems more generic to me.
> >
>
> Yes, it's the right fix. I was just trying to see if it needs to go
> in now and if there were any implications for -stable. Unless I am
> missing something drivers/mmc/host/sh_mmcif.c does not even include
> dmaengine.h today so this can wait until the 2.6.38 window.

Right, sorry, DMA support for sh_mmcif.c is only coming in 2.6.38, it's
currently in next.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/