From: Andrew Morton include/linux/dmaengine.h: In function 'dma_sync_wait': include/linux/dmaengine.h:508: error: 'jiffies' undeclared (first use in this function) include/linux/dmaengine.h:508: error: (Each undeclared identifier is reported only once include/linux/dmaengine.h:508: error: for each function it appears in.) include/linux/dmaengine.h:508: warning: implicit declaration of function 'msecs_to_jiffies' include/linux/dmaengine.h:513: warning: implicit declaration of function 'time_after_eq' In file included from include/linux/sched.h:51, from include/linux/mm.h:4, from crypto/internal.h:18, from crypto/algapi.c:22: include/linux/jiffies.h: At top level: include/linux/jiffies.h:266: error: conflicting types for 'msecs_to_jiffies' include/linux/dmaengine.h:508: error: previous implicit declaration of 'msecs_to_jiffies' was here That function is too big to e inlined anyway - move it out-of-line. Cc: Dan Williams Cc: Chris Leech Signed-off-by: Andrew Morton --- drivers/dma/dmaengine.c | 19 +++++++++++++++++++ include/linux/dmaengine.h | 18 +----------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff -puN drivers/dma/dmaengine.c~git-md-accel-fixes drivers/dma/dmaengine.c --- a/drivers/dma/dmaengine.c~git-md-accel-fixes +++ a/drivers/dma/dmaengine.c @@ -66,6 +66,7 @@ #include #include #include +#include static DEFINE_MUTEX(dma_list_mutex); static LIST_HEAD(dma_device_list); @@ -165,6 +166,24 @@ static struct dma_chan *dma_client_chan_ return NULL; } +enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie) +{ + enum dma_status status; + unsigned long dma_sync_wait_timeout = jiffies + msecs_to_jiffies(5000); + + dma_async_issue_pending(chan); + do { + status = dma_async_is_tx_complete(chan, cookie, NULL, NULL); + if (time_after_eq(jiffies, dma_sync_wait_timeout)) { + printk(KERN_ERR "dma_sync_wait_timeout!\n"); + return DMA_ERROR; + } + } while (status == DMA_IN_PROGRESS); + + return status; +} +EXPORT_SYMBOL(dma_sync_wait); + /** * dma_chan_cleanup - release a DMA channel's resources * @kref: kernel reference structure that contains the DMA channel device diff -puN include/linux/dmaengine.h~git-md-accel-fixes include/linux/dmaengine.h --- a/include/linux/dmaengine.h~git-md-accel-fixes +++ a/include/linux/dmaengine.h @@ -501,23 +501,7 @@ static inline enum dma_status dma_async_ return DMA_IN_PROGRESS; } -static inline enum dma_status dma_sync_wait(struct dma_chan *chan, - dma_cookie_t cookie) -{ - enum dma_status status; - unsigned long dma_sync_wait_timeout = jiffies + msecs_to_jiffies(5000); - - dma_async_issue_pending(chan); - do { - status = dma_async_is_tx_complete(chan, cookie, NULL, NULL); - if (time_after_eq(jiffies, dma_sync_wait_timeout)) { - printk(KERN_ERR "dma_sync_wait_timeout!\n"); - return DMA_ERROR; - } - } while (status == DMA_IN_PROGRESS); - - return status; -} +enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); /* --- DMA device --- */ _