[PATCH] staging: dwc2: set up all module params
Martin Sperl
kernel at martin.sperl.org
Tue Nov 26 23:34:12 PST 2013
On 27.11.2013, at 07:47, Gordon Hollingworth wrote:
> In general it should be possible to schedule multiple split
> transactions to a TT but they _must_ be completed on time or the hub
> will drop the transactions on the floor... Unfortunately because of
> the interrupt latency issues it cannot be guaranteed without the FIQ
Maybe a bit of outside of the box thinking with limited knowledge of
the finer details of USB:
If the "delay" we are allowed to have is "somewhat" deterministic,
then maybe use the ARM DMA to configure the USB registers after a
certain delay.
My experiments with a DMA only pipelined SPI driver shows that it is
possible:
* to schedule delays only in DMA (with an accuracy of about 2%)
(note that this has some impact on available Memory bandwidth)
* to configure VC registers via DMA - I am not sure if this also
applies to the USB registers that are coming from an external IP.
That way one could configure a max delay after which the DMA would
schedule the pending USB-transfer itself.
The only thing one would need to make sure is that there is no
concurrent access to the registers between code and DMA.
Another approach could be looking if we can get that "scheduling"
part of interrupts into the VideoCore CPU, which runs RTOS.
So essentially creating an interrupt engine in RTOS - even if it
would only start a pre-configured DMA transfer.
(but that would mean convincing lots of people to get this into
firmware...)
Ciao,
Martin
More information about the linux-rpi-kernel
mailing list