Blackfin: document __ipipe_call_irqtail
Signed-off-by: Philippe Gerum <rpm@xenomai.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Родитель
70f4720232
Коммит
7a7967dc1b
|
@ -261,6 +261,31 @@ ENTRY(_evt_system_call)
|
||||||
ENDPROC(_evt_system_call)
|
ENDPROC(_evt_system_call)
|
||||||
|
|
||||||
#ifdef CONFIG_IPIPE
|
#ifdef CONFIG_IPIPE
|
||||||
|
/*
|
||||||
|
* __ipipe_call_irqtail: lowers the current priority level to EVT15
|
||||||
|
* before running a user-defined routine, then raises the priority
|
||||||
|
* level to EVT14 to prepare the caller for a normal interrupt
|
||||||
|
* return through RTI.
|
||||||
|
*
|
||||||
|
* We currently use this facility in two occasions:
|
||||||
|
*
|
||||||
|
* - to branch to __ipipe_irq_tail_hook as requested by a high
|
||||||
|
* priority domain after the pipeline delivered an interrupt,
|
||||||
|
* e.g. such as Xenomai, in order to start its rescheduling
|
||||||
|
* procedure, since we may not switch tasks when IRQ levels are
|
||||||
|
* nested on the Blackfin, so we have to fake an interrupt return
|
||||||
|
* so that we may reschedule immediately.
|
||||||
|
*
|
||||||
|
* - to branch to sync_root_irqs, in order to play any interrupt
|
||||||
|
* pending for the root domain (i.e. the Linux kernel). This lowers
|
||||||
|
* the core priority level enough so that Linux IRQ handlers may
|
||||||
|
* never delay interrupts handled by high priority domains; we defer
|
||||||
|
* those handlers until this point instead. This is a substitute
|
||||||
|
* to using a threaded interrupt model for the Linux kernel.
|
||||||
|
*
|
||||||
|
* r0: address of user-defined routine
|
||||||
|
* context: caller must have preempted EVT15, hw interrupts must be off.
|
||||||
|
*/
|
||||||
ENTRY(___ipipe_call_irqtail)
|
ENTRY(___ipipe_call_irqtail)
|
||||||
p0 = r0;
|
p0 = r0;
|
||||||
r0.l = 1f;
|
r0.l = 1f;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче