"Mark A. Greer" <[email protected]> writes:

> From: Mark A. Greer <[email protected]>
>
> The base address for the DMA's Third Party Channel Controller is currently
> hardcoded.  Instead, use the base address that is already in the resource
> data for the controller.
>
> Signed-off-by: Mark A. Greer <[email protected]>

Thanks, pushed.

Kevin

>
> Thanks Sergei & Kevin.
>
>  arch/arm/mach-davinci/dm355.c  |    1 +
>  arch/arm/mach-davinci/dm644x.c |    1 +
>  arch/arm/mach-davinci/dm646x.c |    1 +
>  arch/arm/mach-davinci/dma.c    |   26 +++++++++++++++++++++++---
>  4 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
> index cb9ea39..5f31649 100644
> --- a/arch/arm/mach-davinci/dm355.c
> +++ b/arch/arm/mach-davinci/dm355.c
> @@ -484,6 +484,7 @@ static struct edma_soc_info dm355_edma_info = {
>  
>  static struct resource edma_resources[] = {
>       {
> +             .name   = "edma_cc",
>               .start  = 0x01c00000,
>               .end    = 0x01c00000 + SZ_64K - 1,
>               .flags  = IORESOURCE_MEM,
> diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
> index b2412e8..03946fd 100644
> --- a/arch/arm/mach-davinci/dm644x.c
> +++ b/arch/arm/mach-davinci/dm644x.c
> @@ -383,6 +383,7 @@ static struct edma_soc_info dm644x_edma_info = {
>  
>  static struct resource edma_resources[] = {
>       {
> +             .name   = "edma_cc",
>               .start  = 0x01c00000,
>               .end    = 0x01c00000 + SZ_64K - 1,
>               .flags  = IORESOURCE_MEM,
> diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
> index c5283d3..af040cf 100644
> --- a/arch/arm/mach-davinci/dm646x.c
> +++ b/arch/arm/mach-davinci/dm646x.c
> @@ -297,6 +297,7 @@ static struct edma_soc_info dm646x_edma_info = {
>  
>  static struct resource edma_resources[] = {
>       {
> +             .name   = "edma_cc",
>               .start  = 0x01c00000,
>               .end    = 0x01c00000 + SZ_64K - 1,
>               .flags  = IORESOURCE_MEM,
> diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
> index a7acd4c..f9076fc 100644
> --- a/arch/arm/mach-davinci/dma.c
> +++ b/arch/arm/mach-davinci/dma.c
> @@ -102,9 +102,6 @@
>  
>  #define PARM_OFFSET(param_no)        (EDMA_PARM + ((param_no) << 5))
>  
> -#define edmacc_regs_base     IO_ADDRESS(DAVINCI_DMA_3PCC_BASE)
> -
> -
>  #define EDMA_MAX_DMACH           64
>  #define EDMA_MAX_PARAMENTRY     512
>  #define EDMA_MAX_EVQUE            2  /* FIXME too small */
> @@ -112,6 +109,8 @@
>  
>  
> /*****************************************************************************/
>  
> +static __iomem void *edmacc_regs_base;
> +
>  static inline unsigned int edma_read(int offset)
>  {
>       return (unsigned int)__raw_readl(edmacc_regs_base + offset);
> @@ -997,10 +996,28 @@ static int __init edma_probe(struct platform_device 
> *pdev)
>       int                     status;
>       const s8                *noevent;
>       int                     irq = 0, err_irq = 0;
> +     struct resource         *r;
> +     resource_size_t         len;
>  
>       if (!info)
>               return -ENODEV;
>  
> +     r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "edma_cc");
> +     if (!r)
> +             return -ENODEV;
> +
> +     len = r->end - r->start + 1;
> +
> +     r = request_mem_region(r->start, len, r->name);
> +     if (!r)
> +             return -EBUSY;
> +
> +     edmacc_regs_base = ioremap(r->start, len);
> +     if (!edmacc_regs_base) {
> +             status = -EBUSY;
> +             goto fail1;
> +     }
> +
>       num_channels = min_t(unsigned, info->n_channel, EDMA_MAX_DMACH);
>       num_slots = min_t(unsigned, info->n_slot, EDMA_MAX_PARAMENTRY);
>  
> @@ -1079,6 +1096,9 @@ fail:
>               free_irq(err_irq, NULL);
>       if (irq)
>               free_irq(irq, NULL);
> +     iounmap(edmacc_regs_base);
> +fail1:
> +     release_mem_region(r->start, len);
>       return status;
>  }
>  
> -- 
> 1.6.0.3
>
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to