Re: [PATCH v3 4/7] of: configure the platform device dma parameters
From: Santosh Shilimkar
Date: Mon May 05 2014 - 17:48:15 EST
On Thursday 01 May 2014 08:49 PM, Rob Herring wrote:
> On Thu, Apr 24, 2014 at 10:30 AM, Santosh Shilimkar
> <santosh.shilimkar@xxxxxx> wrote:
>> Retrieve DMA configuration from DT and setup platform device's DMA
>> parameters. The DMA configuration in DT has to be specified using
>> "dma-ranges" and "dma-coherent" properties if supported.
>>
>> We setup dma_pfn_offset using "dma-ranges" and dma_coherent_ops
>> using "dma-coherent" device tree properties.
>>
>> The set_arch_dma_coherent_ops macro has to be defined by arch if
>> it supports coherent dma_ops. Otherwise, set_arch_dma_coherent_ops() is
>> declared as nop.
>>
>
> [...]
>
>> + /*
>> + * if dma-ranges property doesn't exist - just return else
>> + * setup the dma offset
>> + */
>> + ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
>> + if ((ret == -ENODEV) || (ret < 0)) {
>
> The 1st condition is redundant.
>
>> + dev_dbg(dev, "no dma range information to setup\n");
>> + return;
>> + }
>> +
>> + /* DMA ranges found. Calculate and set dma_pfn_offset */
>> + dev->dma_pfn_offset = PFN_DOWN(paddr - dma_addr);
>> + dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
>> +}
>> +
>> +/**
>> * of_platform_device_create_pdata - Alloc, initialize and register an of_device
>> * @np: pointer to node to create device for
>> * @bus_id: name to assign device
>> @@ -214,9 +258,7 @@ static struct platform_device *of_platform_device_create_pdata(
>> #if defined(CONFIG_MICROBLAZE)
>> dev->archdata.dma_mask = 0xffffffffUL;
>> #endif
>
> This is also dma related setup. Please move *all* dma setup into the function.
>
Updated patch with above minor updates.