[PATCH V6 2/3] dma: add Qualcomm Technologies HIDMA management driver
Andy Shevchenko
andy.shevchenko at gmail.com
Sun Nov 22 12:41:43 PST 2015
On Sun, Nov 22, 2015 at 9:52 PM, <okaya at codeaurora.org> wrote:
>> On Sun, Nov 22, 2015 at 6:37 PM, Sinan Kaya <okaya at codeaurora.org> wrote:
[]
>>> + if (!is_power_of_2(mgmtdev->max_write_request) ||
>>> + (mgmtdev->max_write_request < 128) ||
>>
>> Someone likes parens.
>
> yes, I do. I don't trust compilers and also don't like to open holes for
> people making quick changes to code while ignoring the operator precedence for
> maintenance reasons.
Btw in the other patch you did something like
var xyz;
… == (xyz)
which has nothing to do with operator precedence.
And if a compiler or static analyzer is in doubt it issues a warning / error.
>> I might agree with these cases, but below in assignments and combined
>> operations the parens are indeed redundant.
>>
>
> OK. I think we are already in personal style of code zone now.
Yes and no.
> I have already
> broken another review because you don't like for loops but rather have a while
> loop.
In that case (IIRC) the for-loop use to be too verbose instead of
simple (--i >= 0). For sake of readability and maintenance.
> I'll leave ifs and change the assignments only. I'll need your reviewed-by
> once you are happy.
OK.
>>> + pm_runtime_set_autosuspend_delay(&pdev->dev, AUTOSUSPEND_TIMEOUT);
>>> + pm_runtime_use_autosuspend(&pdev->dev);
>>> + pm_runtime_set_active(&pdev->dev);
>>> + pm_runtime_enable(&pdev->dev);
>>> + pm_runtime_get_sync(&pdev->dev);
>>
>> +empty line
>
> added a new line for you. I don't know why.
Readability and logical break of the blocks: a) runtime PM, b)
platform resource management.
Do you agree?
>>> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>>> + virtaddr = devm_ioremap_resource(&pdev->dev, res);
>>> + if (IS_ERR(virtaddr)) {
>>> + rc = -ENOMEM;
>>> + goto out;
>>> + }
[]
>>> + unsigned int i;
>>> + int rc;
>>> +
>>> + for (i = 0; i < ARRAY_SIZE(files); i++) {
>>> + rc = create_sysfs_entry(dev, files[i].name, files[i].mode);
>>> + if (rc)
>>> + return rc;
>>> + }
>>> +
>>
>> Can it be like
>>
>> /sys/…/DEVICExx/
>> channelYY/
>> attr1
>> attr2
>> …
>>
>> ?
>
> I'll work on it. I didn't know that you are allowed to create subdirectories
> in sysfs. I was just creating attributes to keep it simple. But, your
> suggestion is cleaner.
>
>>
>> I think it will be easier to handle in code and from user. (Similar
>> way DMAEngine API does for slave DMA devices)
>
> Now, the good stuff. Can you clarify your comment? I didn't understand it.
I meant that DMAEngine uses
/sys/class/dma
dmaYchannelX/
attr1
attr2
…
layout.
--
With Best Regards,
Andy Shevchenko
More information about the linux-arm-kernel
mailing list