diff options
Diffstat (limited to 'arch/blackfin/mach-common')
-rw-r--r-- | arch/blackfin/mach-common/arch_checks.c | 4 | ||||
-rw-r--r-- | arch/blackfin/mach-common/cpufreq.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 1 | ||||
-rw-r--r-- | arch/blackfin/mach-common/ints-priority.c | 47 | ||||
-rw-r--r-- | arch/blackfin/mach-common/pm.c | 4 |
5 files changed, 28 insertions, 30 deletions
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c index da93d9207165..5998d8632a73 100644 --- a/arch/blackfin/mach-common/arch_checks.c +++ b/arch/blackfin/mach-common/arch_checks.c | |||
@@ -74,7 +74,7 @@ | |||
74 | 74 | ||
75 | /* if 220 exists, can not set External Memory WB and L2 not_cached, either External Memory not_cached and L2 WB */ | 75 | /* if 220 exists, can not set External Memory WB and L2 not_cached, either External Memory not_cached and L2 WB */ |
76 | #if ANOMALY_05000220 && \ | 76 | #if ANOMALY_05000220 && \ |
77 | ((defined(CONFIG_BFIN_WB) && defined(CONFIG_BFIN_L2_NOT_CACHED)) || \ | 77 | ((defined(CONFIG_BFIN_EXTMEM_WRITEBACK) && !defined(CONFIG_BFIN_L2_DCACHEABLE)) || \ |
78 | (!defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_L2_WB))) | 78 | (!defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) && defined(CONFIG_BFIN_L2_WRITEBACK))) |
79 | # error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. | 79 | # error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. |
80 | #endif | 80 | #endif |
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c index 70e3411f558c..85c658083279 100644 --- a/arch/blackfin/mach-common/cpufreq.c +++ b/arch/blackfin/mach-common/cpufreq.c | |||
@@ -141,7 +141,7 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy) | |||
141 | sclk = get_sclk() / 1000; | 141 | sclk = get_sclk() / 1000; |
142 | 142 | ||
143 | #if ANOMALY_05000273 || ANOMALY_05000274 || \ | 143 | #if ANOMALY_05000273 || ANOMALY_05000274 || \ |
144 | (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE)) | 144 | (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_EXTMEM_DCACHEABLE)) |
145 | min_cclk = sclk * 2; | 145 | min_cclk = sclk * 2; |
146 | #else | 146 | #else |
147 | min_cclk = sclk; | 147 | min_cclk = sclk; |
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 31fa313e81cf..5a4e7c7fd92c 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -1609,6 +1609,7 @@ ENTRY(_sys_call_table) | |||
1609 | .long _sys_preadv | 1609 | .long _sys_preadv |
1610 | .long _sys_pwritev | 1610 | .long _sys_pwritev |
1611 | .long _sys_rt_tgsigqueueinfo | 1611 | .long _sys_rt_tgsigqueueinfo |
1612 | .long _sys_perf_counter_open | ||
1612 | 1613 | ||
1613 | .rept NR_syscalls-(.-_sys_call_table)/4 | 1614 | .rept NR_syscalls-(.-_sys_call_table)/4 |
1614 | .long _sys_ni_syscall | 1615 | .long _sys_ni_syscall |
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c index af70f09acd55..b42150190d0e 100644 --- a/arch/blackfin/mach-common/ints-priority.c +++ b/arch/blackfin/mach-common/ints-priority.c | |||
@@ -1052,35 +1052,34 @@ int __init init_arch_irq(void) | |||
1052 | set_irq_chained_handler(irq, bfin_demux_error_irq); | 1052 | set_irq_chained_handler(irq, bfin_demux_error_irq); |
1053 | break; | 1053 | break; |
1054 | #endif | 1054 | #endif |
1055 | #if defined(CONFIG_TICKSOURCE_GPTMR0) | ||
1056 | case IRQ_TIMER0: | ||
1057 | set_irq_handler(irq, handle_percpu_irq); | ||
1058 | break; | ||
1059 | #endif | ||
1060 | #ifdef CONFIG_SMP | 1055 | #ifdef CONFIG_SMP |
1061 | case IRQ_SUPPLE_0: | 1056 | case IRQ_SUPPLE_0: |
1062 | case IRQ_SUPPLE_1: | 1057 | case IRQ_SUPPLE_1: |
1063 | set_irq_handler(irq, handle_percpu_irq); | 1058 | set_irq_handler(irq, handle_percpu_irq); |
1064 | break; | 1059 | break; |
1065 | #endif | 1060 | #endif |
1066 | default: | ||
1067 | #ifdef CONFIG_IPIPE | 1061 | #ifdef CONFIG_IPIPE |
1068 | /* | 1062 | #ifndef CONFIG_TICKSOURCE_CORETMR |
1069 | * We want internal interrupt sources to be | 1063 | case IRQ_TIMER0: |
1070 | * masked, because ISRs may trigger interrupts | 1064 | set_irq_handler(irq, handle_simple_irq); |
1071 | * recursively (e.g. DMA), but interrupts are | 1065 | break; |
1072 | * _not_ masked at CPU level. So let's handle | 1066 | #endif /* !CONFIG_TICKSOURCE_CORETMR */ |
1073 | * most of them as level interrupts, except | 1067 | case IRQ_CORETMR: |
1074 | * the timer interrupt which is special. | 1068 | set_irq_handler(irq, handle_simple_irq); |
1075 | */ | 1069 | break; |
1076 | if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR) | 1070 | default: |
1077 | set_irq_handler(irq, handle_simple_irq); | 1071 | set_irq_handler(irq, handle_level_irq); |
1078 | else | 1072 | break; |
1079 | set_irq_handler(irq, handle_level_irq); | ||
1080 | #else /* !CONFIG_IPIPE */ | 1073 | #else /* !CONFIG_IPIPE */ |
1074 | #ifdef CONFIG_TICKSOURCE_GPTMR0 | ||
1075 | case IRQ_TIMER0: | ||
1076 | set_irq_handler(irq, handle_percpu_irq); | ||
1077 | break; | ||
1078 | #endif /* CONFIG_TICKSOURCE_GPTMR0 */ | ||
1079 | default: | ||
1081 | set_irq_handler(irq, handle_simple_irq); | 1080 | set_irq_handler(irq, handle_simple_irq); |
1082 | #endif /* !CONFIG_IPIPE */ | ||
1083 | break; | 1081 | break; |
1082 | #endif /* !CONFIG_IPIPE */ | ||
1084 | } | 1083 | } |
1085 | } | 1084 | } |
1086 | 1085 | ||
@@ -1224,15 +1223,14 @@ __attribute__((l1_text)) | |||
1224 | asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) | 1223 | asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) |
1225 | { | 1224 | { |
1226 | struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); | 1225 | struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); |
1227 | struct ipipe_domain *this_domain = ipipe_current_domain; | 1226 | struct ipipe_domain *this_domain = __ipipe_current_domain; |
1228 | struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; | 1227 | struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; |
1229 | struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; | 1228 | struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; |
1230 | int irq, s; | 1229 | int irq, s; |
1231 | 1230 | ||
1232 | if (likely(vec == EVT_IVTMR_P)) { | 1231 | if (likely(vec == EVT_IVTMR_P)) |
1233 | irq = IRQ_CORETMR; | 1232 | irq = IRQ_CORETMR; |
1234 | 1233 | else { | |
1235 | } else { | ||
1236 | #if defined(SIC_ISR0) || defined(SICA_ISR0) | 1234 | #if defined(SIC_ISR0) || defined(SICA_ISR0) |
1237 | unsigned long sic_status[3]; | 1235 | unsigned long sic_status[3]; |
1238 | 1236 | ||
@@ -1262,12 +1260,11 @@ asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) | |||
1262 | break; | 1260 | break; |
1263 | } | 1261 | } |
1264 | #endif | 1262 | #endif |
1265 | |||
1266 | irq = ivg->irqno; | 1263 | irq = ivg->irqno; |
1267 | } | 1264 | } |
1268 | 1265 | ||
1269 | if (irq == IRQ_SYSTMR) { | 1266 | if (irq == IRQ_SYSTMR) { |
1270 | #ifndef CONFIG_GENERIC_CLOCKEVENTS | 1267 | #if !defined(CONFIG_GENERIC_CLOCKEVENTS) || defined(CONFIG_TICKSOURCE_GPTMR0) |
1271 | bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ | 1268 | bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ |
1272 | #endif | 1269 | #endif |
1273 | /* This is basically what we need from the register frame. */ | 1270 | /* This is basically what we need from the register frame. */ |
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c index bce5a84be49f..9e7e27b7fc8d 100644 --- a/arch/blackfin/mach-common/pm.c +++ b/arch/blackfin/mach-common/pm.c | |||
@@ -132,7 +132,7 @@ int bf53x_resume_l1_mem(unsigned char *memptr) | |||
132 | return 0; | 132 | return 0; |
133 | } | 133 | } |
134 | 134 | ||
135 | #ifdef CONFIG_BFIN_WB | 135 | #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) |
136 | static void flushinv_all_dcache(void) | 136 | static void flushinv_all_dcache(void) |
137 | { | 137 | { |
138 | u32 way, bank, subbank, set; | 138 | u32 way, bank, subbank, set; |
@@ -175,7 +175,7 @@ static inline void dcache_disable(void) | |||
175 | #ifdef CONFIG_BFIN_DCACHE | 175 | #ifdef CONFIG_BFIN_DCACHE |
176 | unsigned long ctrl; | 176 | unsigned long ctrl; |
177 | 177 | ||
178 | #ifdef CONFIG_BFIN_WB | 178 | #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) |
179 | flushinv_all_dcache(); | 179 | flushinv_all_dcache(); |
180 | #endif | 180 | #endif |
181 | SSYNC(); | 181 | SSYNC(); |