[PATCH 1/2] dma: at_hdmac: Fix calculation of the residual bytes
Torsten Fleischer
torfl6749 at gmail.com
Wed Feb 18 23:54:22 PST 2015
Hello Ludovic,
>>
>> transfer 1: residue = 975584
>> transfer 2: residue = 1048380
>>
>
> You're right about these points. Good job. I think it should be sent to
> stable if it can be applied properly.
>
> For multilines comments, please follow the coding rule
> /*
> * my
> * comments
> */
>
thanks for the hint. I will fix this in the next version of the patch.
>> + /* cookie matches to the currently running transfer */
>> + ret = desc_first->total_len;
>> +
>> + if (desc_first->lli.dscr) {
>> + /* hardware linked list transfer */
>> +
>> + /* Calculate the residue by removing the length of the child
>> + * descriptors already transferred from the total length.
>> + * To get the current child descriptor we can use the value of
>> + * the channel's DSCR register and compare it against the value
>> + * of the hardware linked list structure of each child
>> + * descriptor. */
>> +
>> + dscr = channel_readl(atchan, DSCR);
>> +
>> + /* the first descriptor is currently in work */
>> + if (desc_first->lli.dscr == dscr)
>> + return ret;
>>
>
> Why returning total_len in this case? I think you can return a more accurate
> value as you do for the last descriptor.
>
Good point. I will add a calculation for the first descriptor.
Regards
Torsten
More information about the linux-arm-kernel
mailing list