diff options
| author | Remy Bohmer <[email protected]> | 2008-02-08 04:21:05 -0800 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2008-02-08 09:22:37 -0800 |
| commit | 1ecc26bd2789ddb253f61e182a61c776663fe44c (patch) | |
| tree | 1ad6d8bdc5e9afdc09182af840319ceaa3802ae8 /tools/perf/scripts/python | |
| parent | dfa7f343e526f3595d8f1d99807d141ae0c08601 (diff) | |
atmel_serial: split the interrupt handler
Split up the interrupt handler of the serial port into a interrupt top-half
and a tasklet.
The goal is to get the interrupt top-half as short as possible to minimize
latencies on interrupts. But the old code also does some calls in the
interrupt handler that are not allowed on preempt-RT in IRQF_NODELAY context.
This handler is executed in this context because of the interrupt sharing with
the timer interrupt. The timer interrupt on Preempt-RT runs in IRQF_NODELAY
context.
The tasklet takes care of handling control status changes, pushing incoming
characters to the tty layer, handling break and other errors. It also handles
pushing TX data into the data register.
Reading the complete receive queue is still done in the top-half because we
never want to miss any incoming character.
[[email protected]: misc cleanups and simplifications]
Signed-off-by: Remy Bohmer <[email protected]>
Signed-off-by: Haavard Skinnemoen <[email protected]>
Cc: Andrew Victor <[email protected]>
Tested-by: Marc Pignat <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions