|
@@ -24,11 +24,18 @@ static unsigned samsung_dmadev_request(enum dma_ch dma_ch,
|
|
|
struct dma_chan *chan;
|
|
|
dma_cap_mask_t mask;
|
|
|
struct dma_slave_config slave_config;
|
|
|
+ void *filter_param;
|
|
|
|
|
|
dma_cap_zero(mask);
|
|
|
dma_cap_set(info->cap, mask);
|
|
|
|
|
|
- chan = dma_request_channel(mask, pl330_filter, (void *)dma_ch);
|
|
|
+ /*
|
|
|
+ * If a dma channel property of a device node from device tree is
|
|
|
+ * specified, use that as the fliter parameter.
|
|
|
+ */
|
|
|
+ filter_param = (dma_ch == DMACH_DT_PROP) ? (void *)info->dt_dmach_prop :
|
|
|
+ (void *)dma_ch;
|
|
|
+ chan = dma_request_channel(mask, pl330_filter, filter_param);
|
|
|
|
|
|
if (info->direction == DMA_FROM_DEVICE) {
|
|
|
memset(&slave_config, 0, sizeof(struct dma_slave_config));
|