fiq.c (5b146f7e016a8727a98b3d48e4f4e128d3624cd5) | fiq.c (2ba85e7af4c639d933c9a87a6d7363f2983d5ada) |
---|---|
1/* 2 * linux/arch/arm/kernel/fiq.c 3 * 4 * Copyright (C) 1998 Russell King 5 * Copyright (C) 1998, 1999 Phil Blundell 6 * 7 * FIQ support written by Philip Blundell <philb@gnu.org>, 1998. 8 * --- 70 unchanged lines hidden (view full) --- 79 seq_printf(p, "%*s: %s\n", prec, "FIQ", 80 current_fiq->name); 81 82 return 0; 83} 84 85void set_fiq_handler(void *start, unsigned int length) 86{ | 1/* 2 * linux/arch/arm/kernel/fiq.c 3 * 4 * Copyright (C) 1998 Russell King 5 * Copyright (C) 1998, 1999 Phil Blundell 6 * 7 * FIQ support written by Philip Blundell <philb@gnu.org>, 1998. 8 * --- 70 unchanged lines hidden (view full) --- 79 seq_printf(p, "%*s: %s\n", prec, "FIQ", 80 current_fiq->name); 81 82 return 0; 83} 84 85void set_fiq_handler(void *start, unsigned int length) 86{ |
87#if defined(CONFIG_CPU_USE_DOMAINS) 88 void *base = (void *)0xffff0000; 89#else | |
90 void *base = vectors_page; | 87 void *base = vectors_page; |
91#endif | |
92 unsigned offset = FIQ_OFFSET; 93 94 memcpy(base + offset, start, length); | 88 unsigned offset = FIQ_OFFSET; 89 90 memcpy(base + offset, start, length); |
91 if (!cache_is_vipt_nonaliasing()) 92 flush_icache_range(base + offset, offset + length); |
|
95 flush_icache_range(0xffff0000 + offset, 0xffff0000 + offset + length); | 93 flush_icache_range(0xffff0000 + offset, 0xffff0000 + offset + length); |
96 if (!vectors_high()) 97 flush_icache_range(offset, offset + length); | |
98} 99 100int claim_fiq(struct fiq_handler *f) 101{ 102 int ret = 0; 103 104 if (current_fiq) { 105 ret = -EBUSY; --- 53 unchanged lines hidden --- | 94} 95 96int claim_fiq(struct fiq_handler *f) 97{ 98 int ret = 0; 99 100 if (current_fiq) { 101 ret = -EBUSY; --- 53 unchanged lines hidden --- |