aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/dmaengine.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/dmaengine.c')
-rw-r--r--drivers/dma/dmaengine.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index b2728d6ba2fd..93f7992bee5c 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -62,6 +62,8 @@
62#include <linux/rculist.h> 62#include <linux/rculist.h>
63#include <linux/idr.h> 63#include <linux/idr.h>
64#include <linux/slab.h> 64#include <linux/slab.h>
65#include <linux/acpi.h>
66#include <linux/acpi_dma.h>
65#include <linux/of_dma.h> 67#include <linux/of_dma.h>
66 68
67static DEFINE_MUTEX(dma_list_mutex); 69static DEFINE_MUTEX(dma_list_mutex);
@@ -174,7 +176,8 @@ static struct class dma_devclass = {
174#define dma_device_satisfies_mask(device, mask) \ 176#define dma_device_satisfies_mask(device, mask) \
175 __dma_device_satisfies_mask((device), &(mask)) 177 __dma_device_satisfies_mask((device), &(mask))
176static int 178static int
177__dma_device_satisfies_mask(struct dma_device *device, dma_cap_mask_t *want) 179__dma_device_satisfies_mask(struct dma_device *device,
180 const dma_cap_mask_t *want)
178{ 181{
179 dma_cap_mask_t has; 182 dma_cap_mask_t has;
180 183
@@ -463,7 +466,8 @@ static void dma_channel_rebalance(void)
463 } 466 }
464} 467}
465 468
466static struct dma_chan *private_candidate(dma_cap_mask_t *mask, struct dma_device *dev, 469static struct dma_chan *private_candidate(const dma_cap_mask_t *mask,
470 struct dma_device *dev,
467 dma_filter_fn fn, void *fn_param) 471 dma_filter_fn fn, void *fn_param)
468{ 472{
469 struct dma_chan *chan; 473 struct dma_chan *chan;
@@ -505,7 +509,8 @@ static struct dma_chan *private_candidate(dma_cap_mask_t *mask, struct dma_devic
505 * @fn: optional callback to disposition available channels 509 * @fn: optional callback to disposition available channels
506 * @fn_param: opaque parameter to pass to dma_filter_fn 510 * @fn_param: opaque parameter to pass to dma_filter_fn
507 */ 511 */
508struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param) 512struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
513 dma_filter_fn fn, void *fn_param)
509{ 514{
510 struct dma_device *device, *_d; 515 struct dma_device *device, *_d;
511 struct dma_chan *chan = NULL; 516 struct dma_chan *chan = NULL;
@@ -555,12 +560,16 @@ EXPORT_SYMBOL_GPL(__dma_request_channel);
555 * @dev: pointer to client device structure 560 * @dev: pointer to client device structure
556 * @name: slave channel name 561 * @name: slave channel name
557 */ 562 */
558struct dma_chan *dma_request_slave_channel(struct device *dev, char *name) 563struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name)
559{ 564{
560 /* If device-tree is present get slave info from here */ 565 /* If device-tree is present get slave info from here */
561 if (dev->of_node) 566 if (dev->of_node)
562 return of_dma_request_slave_channel(dev->of_node, name); 567 return of_dma_request_slave_channel(dev->of_node, name);
563 568
569 /* If device was enumerated by ACPI get slave info from here */
570 if (ACPI_HANDLE(dev))
571 return acpi_dma_request_slave_chan_by_name(dev, name);
572
564 return NULL; 573 return NULL;
565} 574}
566EXPORT_SYMBOL_GPL(dma_request_slave_channel); 575EXPORT_SYMBOL_GPL(dma_request_slave_channel);