Hi Peter and others,
On Sat, Feb 18, 2012 at 08:18:33PM +0100, Peter Stuge wrote:
I note that all data to be transmitted is copied byte
for byte from
the rctx data buffer into the USB peripheral memory. I had expected
zero copy. During copying, interrupts are disabled.
I'm actually not sure on the latter part:
* the hardware and IRQ handler code supports nested interrupts
* the core IRQ handler assembly code re-enables interrupts immediately
even before calling the USB driver
* the endpoint re-fill code called from the irq handler
__udp_refill_ep() doesn't contain any explicit local_irq_disable()
* the USART interrupt priority (4) is higher than the USB prio (2)
So based on all this, the USART interrupt should happily be served as a
nested IRQ even while the USB driver is re-filling the end-point FIFO.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org>
http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)