aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPhilippe Gerum <rpm@xenomai.org>2009-06-22 12:22:48 -0400
committerMike Frysinger <vapier@gentoo.org>2009-09-16 21:28:30 -0400
commitb9c7eb498ddce1f77536707398b6175696570e80 (patch)
tree77d7e3917c1c18123bbfefda31855ba7a4729251 /arch
parentd8ca63955a81fd443016ef8813f8e6fd8dea7de4 (diff)
Blackfin: fix misnomer of some I-pipe helpers
__ipipe_{stall, unstall}_root_raw() identifiers may leave the reader under the impression that only the virtual state is affected by these operations, which is wrong. Pick names following the convention used throughout the interrupt pipeline code. Signed-off-by: Philippe Gerum <rpm@xenomai.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/include/asm/ipipe.h7
-rw-r--r--arch/blackfin/kernel/ipipe.c44
-rw-r--r--arch/blackfin/lib/ins.S4
3 files changed, 22 insertions, 33 deletions
diff --git a/arch/blackfin/include/asm/ipipe.h b/arch/blackfin/include/asm/ipipe.h
index 87ba9ad399cb..4617ba66278f 100644
--- a/arch/blackfin/include/asm/ipipe.h
+++ b/arch/blackfin/include/asm/ipipe.h
@@ -145,10 +145,6 @@ void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs);
145 145
146int __ipipe_get_irq_priority(unsigned irq); 146int __ipipe_get_irq_priority(unsigned irq);
147 147
148void __ipipe_stall_root_raw(void);
149
150void __ipipe_unstall_root_raw(void);
151
152void __ipipe_serial_debug(const char *fmt, ...); 148void __ipipe_serial_debug(const char *fmt, ...);
153 149
154asmlinkage void __ipipe_call_irqtail(unsigned long addr); 150asmlinkage void __ipipe_call_irqtail(unsigned long addr);
@@ -234,9 +230,6 @@ int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc);
234#define task_hijacked(p) 0 230#define task_hijacked(p) 0
235#define ipipe_trap_notify(t, r) 0 231#define ipipe_trap_notify(t, r) 0
236 232
237#define __ipipe_stall_root_raw() do { } while (0)
238#define __ipipe_unstall_root_raw() do { } while (0)
239
240#define ipipe_init_irq_threads() do { } while (0) 233#define ipipe_init_irq_threads() do { } while (0)
241#define ipipe_start_irq_thread(irq, desc) 0 234#define ipipe_start_irq_thread(irq, desc) 0
242 235
diff --git a/arch/blackfin/kernel/ipipe.c b/arch/blackfin/kernel/ipipe.c
index a7256775fb98..be4f24ebd40c 100644
--- a/arch/blackfin/kernel/ipipe.c
+++ b/arch/blackfin/kernel/ipipe.c
@@ -191,30 +191,6 @@ void __ipipe_disable_irqdesc(struct ipipe_domain *ipd, unsigned irq)
191} 191}
192EXPORT_SYMBOL(__ipipe_disable_irqdesc); 192EXPORT_SYMBOL(__ipipe_disable_irqdesc);
193 193
194void __ipipe_stall_root_raw(void)
195{
196 /*
197 * This code is called by the ins{bwl} routines (see
198 * arch/blackfin/lib/ins.S), which are heavily used by the
199 * network stack. It masks all interrupts but those handled by
200 * non-root domains, so that we keep decent network transfer
201 * rates for Linux without inducing pathological jitter for
202 * the real-time domain.
203 */
204 __asm__ __volatile__ ("sti %0;" : : "d"(__ipipe_irq_lvmask));
205
206 __set_bit(IPIPE_STALL_FLAG,
207 &ipipe_root_cpudom_var(status));
208}
209
210void __ipipe_unstall_root_raw(void)
211{
212 __clear_bit(IPIPE_STALL_FLAG,
213 &ipipe_root_cpudom_var(status));
214
215 __asm__ __volatile__ ("sti %0;" : : "d"(bfin_irq_flags));
216}
217
218int __ipipe_syscall_root(struct pt_regs *regs) 194int __ipipe_syscall_root(struct pt_regs *regs)
219{ 195{
220 struct ipipe_percpu_domain_data *p; 196 struct ipipe_percpu_domain_data *p;
@@ -344,3 +320,23 @@ void ___ipipe_sync_pipeline(unsigned long syncmask)
344 320
345 __ipipe_sync_stage(syncmask); 321 __ipipe_sync_stage(syncmask);
346} 322}
323
324void __ipipe_disable_root_irqs_hw(void)
325{
326 /*
327 * This code is called by the ins{bwl} routines (see
328 * arch/blackfin/lib/ins.S), which are heavily used by the
329 * network stack. It masks all interrupts but those handled by
330 * non-root domains, so that we keep decent network transfer
331 * rates for Linux without inducing pathological jitter for
332 * the real-time domain.
333 */
334 bfin_sti(__ipipe_irq_lvmask);
335 __set_bit(IPIPE_STALL_FLAG, &ipipe_root_cpudom_var(status));
336}
337
338void __ipipe_enable_root_irqs_hw(void)
339{
340 __clear_bit(IPIPE_STALL_FLAG, &ipipe_root_cpudom_var(status));
341 bfin_sti(bfin_irq_flags);
342}
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S
index 1863a6ba507c..3edbd8db6598 100644
--- a/arch/blackfin/lib/ins.S
+++ b/arch/blackfin/lib/ins.S
@@ -16,7 +16,7 @@
16 [--sp] = rets; \ 16 [--sp] = rets; \
17 [--sp] = (P5:0); \ 17 [--sp] = (P5:0); \
18 sp += -12; \ 18 sp += -12; \
19 call ___ipipe_stall_root_raw; \ 19 call ___ipipe_disable_root_irqs_hw; \
20 sp += 12; \ 20 sp += 12; \
21 (P5:0) = [sp++]; 21 (P5:0) = [sp++];
22# define CLI_INNER_NOP 22# define CLI_INNER_NOP
@@ -28,7 +28,7 @@
28#ifdef CONFIG_IPIPE 28#ifdef CONFIG_IPIPE
29# define DO_STI \ 29# define DO_STI \
30 sp += -12; \ 30 sp += -12; \
31 call ___ipipe_unstall_root_raw; \ 31 call ___ipipe_enable_root_irqs_hw; \
32 sp += 12; \ 32 sp += 12; \
332: rets = [sp++]; 332: rets = [sp++];
34#else 34#else