Messages in this thread | | | Date | Wed, 23 Jan 2013 15:21:42 +0530 | Subject | Re: [PATCH 2/2] dw_dmac: return proper residue value | From | Viresh Kumar <> |
| |
On 23 January 2013 15:06, Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > On Wed, Jan 23, 2013 at 11:22 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
>> Firstly i believe we can have a union of both list_heads as only one is used >> at any time. Can you patch it down? > > Okay, separately and later to avoid additional testing. Will it work for you?
Yes.
>> Second to solve your problem, you can add another field here: total_len. >> I know it will consume 4 bytes per desc but i think that's the drawback we need >> to accept. > > I found already better solution I guess.
Wow!!
> I introduced two functions to get amount of sent bytes like > > u32 calc_sent(u32 ctlhi, u32 ctllo) > { > return f1(ctlhi) * f2(ctllo); > } > > u32 get_sent(dwc) > { > return calc_sent(read(CTL_HI), read(CTL_LO)); > } > > And usage like > > /* initial residue */ > desc->len - calc_sent(desc->lli.ctlhi, desc->lli.ctllo). > > What do you think?
You plan to use it for - the first descriptor in a list as others already have length embedded in them? - And the descriptor currently getting used, by reading its ctlhi/lo from registers instead of lli.*** ?
Looks good. but still keeping len of individual descriptors in all descriptors leaving the first one is not the code i would like to keep :)
| |