From 0954237a299fdd8d45682623a1c1ac7896cfede6 Mon Sep 17 00:00:00 2001 From: Padmavathi Venna Date: Fri, 18 Jan 2013 17:17:02 +0530 Subject: [PATCH] --- yaml --- r: 353403 b: refs/heads/master c: e7ba5f1d0f6292e1b99c63cc4bb74c70232e9065 h: refs/heads/master i: 353401: d778e6cb0fbe63ddc57cc2fa20c720786caa0016 353399: 6ce5e5511266c3081d052aab8d3e48cfcd7493cd v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-samsung/dma-ops.c | 10 ++++++++-- trunk/arch/arm/plat-samsung/include/plat/dma-ops.h | 3 ++- trunk/arch/arm/plat-samsung/s3c-dma-ops.c | 3 ++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index e6df23b08fdc..c59c52c6a978 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 40476f61897933d524b7069a6df65629a469d922 +refs/heads/master: e7ba5f1d0f6292e1b99c63cc4bb74c70232e9065 diff --git a/trunk/arch/arm/plat-samsung/dma-ops.c b/trunk/arch/arm/plat-samsung/dma-ops.c index d088afa034e8..71d58ddea9c1 100644 --- a/trunk/arch/arm/plat-samsung/dma-ops.c +++ b/trunk/arch/arm/plat-samsung/dma-ops.c @@ -19,7 +19,8 @@ #include static unsigned samsung_dmadev_request(enum dma_ch dma_ch, - struct samsung_dma_req *param) + struct samsung_dma_req *param, + struct device *dev, char *ch_name) { dma_cap_mask_t mask; void *filter_param; @@ -33,7 +34,12 @@ static unsigned samsung_dmadev_request(enum dma_ch dma_ch, */ filter_param = (dma_ch == DMACH_DT_PROP) ? (void *)param->dt_dmach_prop : (void *)dma_ch; - return (unsigned)dma_request_channel(mask, pl330_filter, filter_param); + + if (dev->of_node) + return (unsigned)dma_request_slave_channel(dev, ch_name); + else + return (unsigned)dma_request_channel(mask, pl330_filter, + filter_param); } static int samsung_dmadev_release(unsigned ch, void *param) diff --git a/trunk/arch/arm/plat-samsung/include/plat/dma-ops.h b/trunk/arch/arm/plat-samsung/include/plat/dma-ops.h index f5144cdd3001..114178268b75 100644 --- a/trunk/arch/arm/plat-samsung/include/plat/dma-ops.h +++ b/trunk/arch/arm/plat-samsung/include/plat/dma-ops.h @@ -39,7 +39,8 @@ struct samsung_dma_config { }; struct samsung_dma_ops { - unsigned (*request)(enum dma_ch ch, struct samsung_dma_req *param); + unsigned (*request)(enum dma_ch ch, struct samsung_dma_req *param, + struct device *dev, char *ch_name); int (*release)(unsigned ch, void *param); int (*config)(unsigned ch, struct samsung_dma_config *param); int (*prepare)(unsigned ch, struct samsung_dma_prep *param); diff --git a/trunk/arch/arm/plat-samsung/s3c-dma-ops.c b/trunk/arch/arm/plat-samsung/s3c-dma-ops.c index f99448c48d30..0cc40aea3f5a 100644 --- a/trunk/arch/arm/plat-samsung/s3c-dma-ops.c +++ b/trunk/arch/arm/plat-samsung/s3c-dma-ops.c @@ -36,7 +36,8 @@ static void s3c_dma_cb(struct s3c2410_dma_chan *channel, void *param, } static unsigned s3c_dma_request(enum dma_ch dma_ch, - struct samsung_dma_req *param) + struct samsung_dma_req *param, + struct device *dev, char *ch_name) { struct cb_data *data;