[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