[PATCH 2/4] DMA: PL330: Register the DMA controller with the generic DMA helpers

Jon Hunter jon-hunter at ti.com
Tue Jan 29 08:11:01 EST 2013


On 01/28/2013 12:01 PM, Arnd Bergmann wrote:
> On Monday 28 January 2013, Jon Hunter wrote:
>> On 01/28/2013 08:51 AM, Arnd Bergmann wrote:
>>> On Friday 18 January 2013, Padmavathi Venna wrote:
>>>> +       pfi = devm_kzalloc(&adev->dev, sizeof(*pfi), GFP_KERNEL);
>>>> +       if (!pfi) {
>>>> +               dev_err(&adev->dev, "unable to allocate mem\n");
>>>> +               return -ENOMEM;
>>>> +       }
>>>> +
>>>> +       pfi->dma_cap = pd->cap_mask;
>>>> +       pfi->filter_fn = pl330_filter;
>>>> +
>>>> +       ret = of_dma_controller_register(adev->dev.of_node,
>>>> +                                        of_dma_pl330_xlate, pfi);
>>>
>>> Why do you pass a 'struct of_dma_filter_info' here? I would
>>> expect that you pass the pdmac object as the third argument.
>>
>> I believe it is because that is the data that the xlate function is
>> using. Are you suggesting the data should be stored in the pdmac object
>> and extracted from there? That could be done too given that this
>> controller has its own xlate.
> 
> It just seems weird that we are passing a constant cap_mask in
> a data structure, and that we need our own filter function still,
> but don't pass the pointer to the data structure that we actually
> need in the filter function (the dma_device *).

Gotcha. I was still thinking about the generic case, but in this case if
you know the dma controller, it is redundant.

Cheers
Jon


More information about the devicetree-discuss mailing list