Re: [PATCH v3.5] dw_dmac: return proper residue value

From: Andy Shevchenko
Date: Fri Jan 25 2013 - 04:19:31 EST


On Fri, Jan 25, 2013 at 11:07 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> On 25 January 2013 14:34, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
>> Okay, we have to have a protection here because get_sent reads two
>> registers consequentially. This means we could end up with scenario
>> with threads 1 and 2
>>
>> 1. read ctlhi
>> 2. write ctlhi
>> 2. write ctllo
>> 1. read ctllo
>
> Who is going to right on ctlhi/lo?

dwc_do_single_block()

> we write to ctlhi/lo only when we program new
> transfer. and that is not going to happen while we are in middle of a transfer.

We have got a tasklet running inside tx_status call. Isn't possible?
tasklet runs scan_descriptors, that continues transfer in soft LLP mode.

--
With Best Regards,
Andy Shevchenko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/