aboutsummaryrefslogtreecommitdiff
path: root/arch/mips
AgeCommit message (Collapse)AuthorFilesLines
2006-09-27[MIPS] Atlas: update interrupt handlingMaciej W. Rozycki4-32/+102
The following change updates the Atlas interrupt handling to match that of Malta. Tested with a 5Kc and a 34Kf successfully. Signed-off-by: Maciej W. Rozycki <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Patch to arch/mips/mips-boards/generic/time.cKevin D. Kissell1-21/+36
In hooking up the perf counter overflow interrupt to the experimental deprecated-real-soon-now /proc/perf interface last night, I had to revisit arch/mips/mips-boards/generic/time.c, and discovered that when the 2.6.9-based SMTC prototype was merged with the more recent tree, it was missed that arch/mips/kernel/time.c had changed so that even in SMP kernels, timer_interrupt() calls local_timer_interrupt(), so there is no longer a need to invoke it directly from mips_timer_interrupt() in those cases where timer_interrupt() has been called. So I got rid of that, and added the invocation of perf_irq() if Cause.PCI is set, more-or-less following the same logic as in the non-SMTC case, with the modifications that (a) a runtime check for Release 2 isn't done, because it's redundant in SMTC), and (b) we check for a clock interrupt regardless of the value returned by the perf counter service - I don't understand why we'd want to control that with perf_irq(), but maybe one of you knows the story. I also got rid of the stupid warning about the unused variable when compiled for SMTC (another artifact of the merge). The result hasn't been beaten to death, but boots, seems stable, and supports extended precision event counting. Signed-off-by: Kevin D. Kissell <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Reduce race between cpu_wait() and need_resched() checkingAtsushi Nemoto1-17/+45
If a thread became runnable between need_resched() and the WAIT instruction, switching to the thread will delay until a next interrupt. Some CPUs can execute the WAIT instruction with interrupt disabled, so we can get rid of this race on them (at least UP case). Original Patch by Atsushi with fixing up for MIPS Technology's cores by Ralf based on feedback from the RTL designers. Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Wire up set_robust_list(2) and get_robust_list(2)Atsushi Nemoto4-1/+9
Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] SEAD defconfig build fixMaciej W. Rozycki1-0/+1
Signed-off-by: Maciej W. Rozycki <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Fix for pci config_access on alchemy au1x000Alexander Bigga1-1/+1
I've encountered a serious problem with PCI config space access on Au1x000 platforms with recent 2.6.x-kernel. With 2.4.31 the same hardware works fine. So I was looking for the differences: Symptoms: - no PCI-device is seen on bootup though two or three cards are present - lspci output is empty - OR: lspci shows 20 times the same device (- OR: in some slot-configurations it worked anyhow) System(s): 1. platform with Au1500 and three PCI-devices (actually a mycable XXS1500 with backplane for three PCI-devices) 2. platform with Au1550 and two PCI-devices (custom board) Debugging: I digged down to the config_access() of the au1xxx-processors in arch/mips/pci/ops-au1000.c and switched on DEBUG. The code of config_access() seems to be almost the same as of the 2.4.x-kernel. But the "pci_cfg_vm->addr" returned by get_vm_area(0x2000, 0) once on booting is different. That's of course not forbidden. But the alignment seems to be wrong. In my case, I received: 2.4.31: pci_cfg_vm->addr = c0000000 2.6.18-rc5: pci_cfg_vm->addr = c0101000 To make it short: With 2.6.x it fails on the first config-access with: "PCI ERR detected: status 83a00356". Fixup: My fix is now, to use the VM_IOREMAP-flag in the get_vm_area call. This flag seems to be introduced in mm/vmalloc.c a long time ago (in 2.6.7-bk13, I found in gitweb). Now, the returned address is pci_cfg_vm->addr = c0104000 and everything works fine. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Make prepare_frametrace() not clobber v0Atsushi Nemoto1-3/+7
Since lmo commit 323a380bf9e1a1679a774a2b053e3c1f2aa3f179 ("Simplify dump_stack()") made prepare_frametrace() always inlined, using $2 (v0) in __asm__ is not safe anymore. We can use $1 (at) instead. Also we should use "dla" instead of "la" for 64-bit kernel. Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Do not use drop_mmu_context to flusing other task's VIPT I-cache.Atsushi Nemoto2-27/+33
c-r4k.c and c-sb1.c use drop_mmu_context() to flush virtually tagged I-caches, but this does not work for flushing other task's icache. This is for example triggered by copy_to_user_page() called from ptrace(2). Use indexed flush for such cases. Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] MT: Fix setting of XTC.Elizabeth Oldham1-0/+6
XTC can only be set if VPA is clear, which it may not be. There is also the possibility of a back to back c0 register access hazard to take care of. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] SMTC Build fix.Ralf Baechle1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Fix 32-bit kernel by replacing 64-bit-only code.Ralf Baechle2-33/+3
dclz() expects its 64-bit argument being passed as a single register but on 32-bit kernels it'll actually be in a register pair. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] MT: When doing "select SMP" also select SMP's prerequesites or ...Ralf Baechle1-0/+2
... kconfig will do weird stuff. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] eXcite: Don't set SERIAL_RM9000.Ralf Baechle1-1/+0
The driver has not been merged yet so selecting it results in a warning message. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Retire flush_icache_page from mm use.Ralf Baechle5-13/+15
On the 34K the redundant cache operations were causing excessive stalls resulting in realtime code running on the second VPE missing its deadline. For all other platforms this patch is just a significant performance improvment as illustrated by below benchmark numbers. Processor, Processes - times in microseconds - smaller is better ------------------------------------------------------------------------------ Host OS Mhz null null open slct sig sig fork exec sh call I/O stat clos TCP inst hndl proc proc proc --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 25Kf 2.6.18-rc4 533 0.49 1.16 7.57 33.4 30.5 1.34 12.4 5497 17.K 54.K 25Kf 2.6.18-rc4-p 533 0.49 1.16 6.68 23.0 30.7 1.36 8.55 5030 16.K 48.K 4Kc 2.6.18-rc4 80 4.21 15.0 131. 289. 261. 16.5 258. 18.K 70.K 227K 4Kc 2.6.18-rc4-p 80 4.34 13.1 128. 285. 262. 18.2 258. 12.K 52.K 176K 34Kc 2.6.18-rc4 40 5.01 14.0 61.6 90.0 477. 17.9 94.7 29.K 108K 342K 34Kc 2.6.18-rc4-p 40 4.98 13.9 61.2 89.7 475. 17.6 93.7 8758 44.K 158K BCM1480 2.6.18-rc4 700 0.28 0.60 3.68 5.92 16.0 0.78 5.08 931. 3163 15.K BCM1480 2.6.18-rc4-p 700 0.28 0.61 3.65 5.85 16.0 0.79 5.20 395. 1464 8385 TX49-16K 2.6.18-rc3 197 0.73 2.41 19.0 37.8 82.9 2.94 17.5 4438 14.K 56.K TX49-16K 2.6.18-rc3-p 197 0.73 2.40 19.9 36.3 82.9 2.94 23.4 2577 9103 38.K TX49-32K 2.6.18-rc3 396 0.36 1.19 6.80 11.8 41.0 1.46 8.17 2738 8465 32.K TX49-32K 2.6.18-rc3-p 396 0.36 1.19 6.82 10.2 41.0 1.46 8.18 1330 4638 18.K Original patch by me with enhancements by Atsushi Nemoto. Signed-off-by: Ralf Baechle <[email protected]> Signed-off-by: Atsushi Nemoto <[email protected]>
2006-09-27[MIPS] Avoid double signal restarting.Ralf Baechle3-1/+3
In entry.S resume_userspace ... jal do_notify_resume form a loop through which the kernel will iterate as long as work is pending. If we iterate through this loop more than once with no signal pending for at least one but the last iteration we will take do the syscall restarting multiple times resulting in a syscall return prior to the the syscall instruction in userspace. This may happen when debugging a multithreaded program. Debugging and original fix by Maciej; extended to other ABIs by me. Signed-off-by: Maciej W. Rozycki <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] MT: Initialise all writable bits in Cause register to zero.Chris Dearman1-1/+1
Recent 34Ks come out of reset with WP enabled on VPE 1 so we take an immediate exception when starting the second VPE. Signed-off-by: Chris Dearman <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Fix EV64120 PCI fixup in MakefileYoichi Yuasa1-1/+1
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Add missing returns in signal code.Ralf Baechle2-0/+4
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] IRIX: Crapectopy.Ralf Baechle1-15/+40
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Don't call try_to_freeze in do_signal & co.Ralf Baechle3-12/+0
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Cleanup leftovers of ARCH_HAS_IRQ_PER_CPURalf Baechle1-2/+1
CONFIG_IRQ_PER_CPU now controls the IRQ_PER_CPU stuff. Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Improve unwind_stack()Franck Bui-Huu2-25/+34
This patch allows unwind_stack() to return ra for leaf function. But it tries to detects cases where get_frame_info() wrongly consider nested function as a leaf one. It also pass 'unsinged long *sp' instead of 'unsigned long **sp' as second parameter. The code looks cleaner. Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Make get_frame_info() more robustFranck Bui-Huu1-8/+6
Now get_frame_info() wants to detect move sp instruction first. It assumes that the save ra in the stack instruction can't happen before allocating frame size space into the stack. Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Simplify dump_stack()Franck Bui-Huu1-11/+9
Make dump_stack() code not depend on CONFIG_KALLSYMS. It also make prepare_frametrace() always inlined to get less false entries reported by show_raw_backtrace(). Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Make frame_info_init() more readable.Franck Bui-Huu1-9/+9
Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Miscellaneous cleanup in prologue analysis codeFranck Bui-Huu1-19/+14
We usually use backtrace term for dumping a call tree during debug. Therefore this patch renames show_frametrace() into show_backtrace() and show_trace() into show_raw_backtrace(). It also uses the new function print_ip_sym(). Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Remove unused MODULE_RANGE macro.Franck Bui-Huu1-5/+0
Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Make get_frame_info() more readable.Franck Bui-Huu1-31/+36
Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Franck Bui-Huu <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] c-r4k: Typo fix.Ralf Baechle1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] N32 rt_sigqueueinfo uses O32 padding, not N64Peter Watkins1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] dump_stack() based on prologue code analysisAtsushi Nemoto2-23/+141
Instead of dump all possible address in the stack, unwind the stack frame based on prologue code analysis, as like as get_wchan() does. While the code analysis might fail for some reason, there is a new kernel option "raw_show_trace" to disable this feature. Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] db1x00: Remove unused mirage_ts.cYoichi Yuasa2-261/+0
CONFIG_WM97XX_COMODULE doesn't exist. Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Rearrange show_stack, show_traceAtsushi Nemoto1-28/+23
Print call-trace in show_stack() (like on other archs). Also make show_trace() static and simplify its argument list. Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Updat mpc30x defconfigYoichi Yuasa1-6/+6
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Updat workpad defconfigYoichi Yuasa1-4/+6
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Update e55 defconfigYoichi Yuasa1-5/+5
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-27[MIPS] Honour "panic_on_oops" sysctl.Maxime Bizon1-0/+11
Signed-off-by: Maxime Bizon <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-09-26[PATCH] Alchemy: Delete unused pt_regs * argument from au1xxx_dbdma_chan_allocRalf Baechle1-4/+6
The third argument of au1xxx_dbdma_chan_alloc's callback function is not used anywhere. Signed-off-by: Ralf Baechle <[email protected]> Cc: David Howells <[email protected]> Cc: Russell King <[email protected]> Cc: Alan Cox <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-09-26[PATCH] reduce MAX_NR_ZONES: move HIGHMEM counters into highmem.c/.hChristoph Lameter1-0/+1
Move totalhigh_pages and nr_free_highpages() into highmem.c/.h Move the totalhigh_pages definition into highmem.c/.h. Move the nr_free_highpages function into highmem.c [[email protected]: build fix] Signed-off-by: Christoph Lameter <[email protected]> Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-09-26[PATCH] reduce MAX_NR_ZONES: fix MAX_NR_ZONES array initializationsChristoph Lameter2-3/+3
Fix array initialization in lots of arches The number of zones may now be reduced from 4 to 2 for many arches. Fix the array initialization for the zones array for all architectures so that it is not initializing a fixed number of elements. Signed-off-by: Christoph Lameter <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2006-07-13[MIPS] sparsemem: fix crash in show_memAtsushi Nemoto1-0/+2
With sparsemem, pfn should be checked by pfn_valid() before pfn_to_page(). Signed-off-by: Atsushi Nemoto <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] vr41xx: Update workpad setup functionYoichi Yuasa1-5/+10
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] vr41xx: Update e55 setup functionYoichi Yuasa1-5/+10
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] vr41xx: Removed old v2.4 VRC4173 driverYoichi Yuasa3-590/+1
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] vr41xx: Move IRQ numbers to asm-mips/vr41xx/irq.hYoichi Yuasa5-2/+4
Signed-off-by: Yoichi Yuasa <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] MIPSsim: Build fix, rename sim_timer_setup -> plat_timer_setup.Ralf Baechle1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] Remove unused code.Ralf Baechle3-249/+1
Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] IP22 Fix brown paper bag in RTC code.Julien BLACHE1-1/+1
This patch fixes a typo in arch/mips/sgi-ip22/ip22-time.c, leading to the incorrect year being set into the RTC chip. Signed-off-by: Julien BLACHE <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] Atlas, Malta, SEAD: Don't disable interrupts in mips_time_init().Ralf Baechle1-5/+1
By the time it's called from time_init interrupts are still disabled. Signed-off-by: Ralf Baechle <[email protected]>
2006-07-13[MIPS] Replace board_timer_setup function pointer by plat_timer_setup.Ralf Baechle37-89/+34
Signed-off-by: Ralf Baechle <[email protected]> ---