You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(165) |
Sep
(240) |
Oct
(424) |
Nov
(526) |
Dec
(293) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(242) |
Feb
(149) |
Mar
(143) |
Apr
(143) |
May
(76) |
Jun
(59) |
Jul
(20) |
Aug
(2) |
Sep
(49) |
Oct
(1) |
Nov
(4) |
Dec
|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(72) |
Jul
(36) |
Aug
(9) |
Sep
(16) |
Oct
(23) |
Nov
(9) |
Dec
(3) |
2010 |
Jan
|
Feb
(1) |
Mar
(35) |
Apr
(44) |
May
(56) |
Jun
(71) |
Jul
(41) |
Aug
(41) |
Sep
(22) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(25) |
Oct
(105) |
Nov
(15) |
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Paul M. <le...@us...> - 2002-04-21 20:02:50
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv3535/include/asm-mips Modified Files: cpu.h hardirq.h hw_irq.h Log Message: More OSS syncing.. Index: cpu.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/cpu.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- cpu.h 11 Apr 2002 02:00:34 -0000 1.23 +++ cpu.h 21 Apr 2002 20:01:16 -0000 1.24 @@ -171,5 +171,6 @@ #define MIPS_CPU_CACHE_CDEX 0x00000800 /* Create_Dirty_Exclusive CACHE op */ #define MIPS_CPU_MCHECK 0x00001000 /* Machine check exception */ #define MIPS_CPU_EJTAG 0x00002000 /* EJTAG exception */ +#define MIPS_CPU_FPUEX 0x00004000 /* FPU exception */ #endif /* _ASM_CPU_H */ Index: hardirq.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/hardirq.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- hardirq.h 5 Dec 2001 00:17:58 -0000 1.7 +++ hardirq.h 21 Apr 2002 20:01:16 -0000 1.8 @@ -43,8 +43,6 @@ #define synchronize_irq() barrier(); -#define release_irqlock(cpu) do { } while (0) - #else #include <asm/atomic.h> Index: hw_irq.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/hw_irq.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- hw_irq.h 16 Jan 2002 08:16:20 -0000 1.7 +++ hw_irq.h 21 Apr 2002 20:01:16 -0000 1.8 @@ -8,7 +8,7 @@ #ifndef _ASM_HW_IRQ_H #define _ASM_HW_IRQ_H -#include <linux/mm.h> +#include <asm/atomic.h> extern atomic_t irq_err_count; |
From: Paul M. <le...@us...> - 2002-04-21 20:02:50
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/char Modified Files: Makefile dz.c lcd.c lcd.h mem.c misc.c serial.c Log Message: More OSS syncing.. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Makefile,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Makefile 7 Mar 2002 09:15:16 -0000 1.27 +++ Makefile 21 Apr 2002 20:01:14 -0000 1.28 @@ -24,9 +24,9 @@ export-objs := busmouse.o console.o keyboard.o sysrq.o \ misc.o pty.o random.o selection.o serial.o \ sonypi.o tty_io.o tty_ioctl.o generic_serial.o \ - au1000_gpio.o lcd.o + au1000_gpio.o -mod-subdirs := joystick ftape drm pcmcia +mod-subdirs := joystick ftape drm drm-4.0 pcmcia list-multi := @@ -222,7 +222,8 @@ obj-$(CONFIG_QIC02_TAPE) += tpqic02.o subdir-$(CONFIG_FTAPE) += ftape -subdir-$(CONFIG_DRM) += drm +subdir-$(CONFIG_DRM_OLD) += drm-4.0 +subdir-$(CONFIG_DRM_NEW) += drm subdir-$(CONFIG_PCMCIA) += pcmcia subdir-$(CONFIG_AGP) += agp Index: dz.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/dz.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- dz.c 30 Nov 2001 18:34:10 -0000 1.8 +++ dz.c 21 Apr 2002 20:01:14 -0000 1.9 @@ -866,7 +866,7 @@ tmp.type = info->type; tmp.line = info->line; tmp.port = info->port; - tmp.irq = SERIAL; + tmp.irq = dec_interrupt[DEC_IRQ_DZ11]; tmp.flags = info->flags; tmp.baud_base = info->baud_base; tmp.close_delay = info->close_delay; @@ -1408,7 +1408,7 @@ return 0; printk("ttyS%02d at 0x%08x (irq = %d)\n", info->line, - info->port, SERIAL); + info->port, dec_interrupt[DEC_IRQ_DZ11]); tty_register_devfs(&serial_driver, 0, serial_driver.minor_start + info->line); @@ -1432,7 +1432,8 @@ restore_flags(flags); - if (request_irq(SERIAL, dz_interrupt, SA_INTERRUPT, "DZ", lines[0])) + if (request_irq(dec_interrupt[DEC_IRQ_DZ11], dz_interrupt, + SA_INTERRUPT, "DZ", lines[0])) panic("Unable to register DZ interrupt"); return 0; Index: lcd.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/lcd.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- lcd.c 5 Dec 2001 18:37:06 -0000 1.4 +++ lcd.c 21 Apr 2002 20:01:14 -0000 1.5 @@ -1,13 +1,19 @@ /* - * LCD, LED, and Button interface for Cobalt - * Andrew Bose + * LCD, LED and Button interface for Cobalt + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 1996, 1997 by Andrew Bose * + * Linux kernel version history: + * March 2001: Ported from 2.0.34 by Liam Davies * */ #define RTC_IO_EXTENT 0x10 /*Only really two ports, but... */ -#include <linux/module.h> #include <linux/types.h> #include <linux/errno.h> #include <linux/miscdevice.h> @@ -32,6 +38,8 @@ int led_state = 0; +#if defined(CONFIG_TULIP) && 0 + #define MAX_INTERFACES 8 static linkcheck_func_t linkcheck_callbacks[MAX_INTERFACES]; static void *linkcheck_cookies[MAX_INTERFACES]; @@ -46,6 +54,7 @@ linkcheck_cookies[iface_num] = cookie; return 0; } +#endif static int lcd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) @@ -355,14 +364,15 @@ if(copy_from_user(&button_display, (struct lcd_display *)arg, sizeof(button_display))) return -EFAULT; iface_num = button_display.buttons; +#if defined(CONFIG_TULIP) && 0 if (iface_num >= 0 && iface_num < MAX_INTERFACES && linkcheck_callbacks[iface_num] != NULL) { button_display.buttons = linkcheck_callbacks[iface_num](linkcheck_cookies[iface_num]); - } else { + } else +#endif button_display.buttons = 0; - } if(__copy_to_user((struct lcd_display*)arg, &button_display, sizeof(struct lcd_display))) return -EFAULT; @@ -618,5 +628,5 @@ } -EXPORT_SYMBOL(lcd_register_linkcheck_func); -MODULE_LICENSE("GPL"); + + Index: lcd.h =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/lcd.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- lcd.h 10 Jul 2001 03:11:19 -0000 1.1 +++ lcd.h 21 Apr 2002 20:01:14 -0000 1.2 @@ -1,11 +1,16 @@ /* -* -* -* File: lcd.h -* Andrew Bose -* -*/ - + * LED, LCD and Button panel driver for Cobalt + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 1996, 1997 by Andrew Bose + * + * Linux kernel version history: + * March 2001: Ported from 2.0.34 by Liam Davies + * + */ // function headers @@ -176,3 +181,4 @@ #define kClassA 5 #define kClassB 6 #define kClassC 7 + Index: mem.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/mem.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- mem.c 19 Oct 2001 21:19:38 -0000 1.5 +++ mem.c 21 Apr 2002 20:01:14 -0000 1.6 @@ -272,6 +272,8 @@ return virtr + read; } +extern long vwrite(char *buf, char *addr, unsigned long count); + /* * This function writes to the *virtual* memory as seen by the kernel. */ @@ -279,12 +281,46 @@ size_t count, loff_t *ppos) { unsigned long p = *ppos; + ssize_t wrote = 0; + ssize_t virtr = 0; + char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ - if (p >= (unsigned long) high_memory) - return 0; + if (p < (unsigned long) high_memory) { + wrote = count; if (count > (unsigned long) high_memory - p) - count = (unsigned long) high_memory - p; - return do_write_mem(file, (void*)p, p, buf, count, ppos); + wrote = (unsigned long) high_memory - p; + + wrote = do_write_mem(file, (void*)p, p, buf, wrote, ppos); + + p += wrote; + buf += wrote; + count -= wrote; + } + + if (count > 0) { + kbuf = (char *)__get_free_page(GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + while (count > 0) { + int len = count; + + if (len > PAGE_SIZE) + len = PAGE_SIZE; + if (len && copy_from_user(kbuf, buf, len)) { + free_page((unsigned long)kbuf); + return -EFAULT; + } + len = vwrite(kbuf, (char *)p, len); + count -= len; + buf += len; + virtr += len; + p += len; + } + free_page((unsigned long)kbuf); + } + + *ppos = p; + return virtr + wrote; } #ifdef CONFIG_ISA Index: misc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/misc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- misc.c 7 Mar 2002 09:15:16 -0000 1.6 +++ misc.c 21 Apr 2002 20:01:14 -0000 1.7 @@ -78,6 +78,7 @@ extern int pmu_device_init(void); extern int tosh_init(void); extern int i8k_init(void); +extern int lcd_init(void); static int misc_read_proc(char *buf, char **start, off_t offset, int len, int *eof, void *private) @@ -289,11 +290,11 @@ #ifdef CONFIG_TOSHIBA tosh_init(); #endif -#ifdef CONFIG_I8K - i8k_init(); -#endif #ifdef CONFIG_COBALT_LCD lcd_init(); +#endif +#ifdef CONFIG_I8K + i8k_init(); #endif if (devfs_register_chrdev(MISC_MAJOR,"misc",&misc_fops)) { printk("unable to get major %d for misc devices\n", Index: serial.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/serial.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- serial.c 21 Apr 2002 06:45:57 -0000 1.11 +++ serial.c 21 Apr 2002 20:01:14 -0000 1.12 @@ -127,7 +127,7 @@ #define ENABLE_SERIAL_ACPI #endif -#ifdef __ISAPNP__ +#if defined(CONFIG_ISAPNP)|| (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE)) #ifndef ENABLE_SERIAL_PNP #define ENABLE_SERIAL_PNP #endif @@ -236,8 +236,8 @@ #include <asm/irq.h> #include <asm/bitops.h> -#ifdef CONFIG_MAC_SERIAL -#define SERIAL_DEV_OFFSET 2 +#if defined(CONFIG_MAC_SERIAL) +#define SERIAL_DEV_OFFSET ((_machine == _MACH_prep || _machine == _MACH_chrp) ? 0 : 2) #else #define SERIAL_DEV_OFFSET 0 #endif @@ -3156,6 +3156,10 @@ * enables interrupts for a serial port, linking in its async structure into * the IRQ chain. It also performs the serial-specific * initialization for the tty structure. + * + * Note that on failure, we don't decrement the module use count - the tty + * later will call rs_close, which will decrement it for us as long as + * tty->driver_data is set non-NULL. --rmk */ static int rs_open(struct tty_struct *tty, struct file * filp) { @@ -3176,10 +3180,8 @@ } tty->driver_data = info; info->tty = tty; - if (serial_paranoia_check(info, tty->device, "rs_open")) { - MOD_DEC_USE_COUNT; + if (serial_paranoia_check(info, tty->device, "rs_open")) return -ENODEV; - } #ifdef SERIAL_DEBUG_OPEN printk("rs_open %s%d, count = %d\n", tty->driver.name, info->line, @@ -3194,10 +3196,8 @@ */ if (!tmp_buf) { page = get_zeroed_page(GFP_KERNEL); - if (!page) { - MOD_DEC_USE_COUNT; + if (!page) return -ENOMEM; - } if (tmp_buf) free_page(page); else @@ -3211,7 +3211,6 @@ (info->flags & ASYNC_CLOSING)) { if (info->flags & ASYNC_CLOSING) interruptible_sleep_on(&info->close_wait); - MOD_DEC_USE_COUNT; #ifdef SERIAL_DO_RESTART return ((info->flags & ASYNC_HUP_NOTIFY) ? -EAGAIN : -ERESTARTSYS); @@ -3224,10 +3223,8 @@ * Start up serial port */ retval = startup(info); - if (retval) { - MOD_DEC_USE_COUNT; + if (retval) return retval; - } retval = block_til_ready(tty, filp, info); if (retval) { @@ -3235,7 +3232,6 @@ printk("rs_open returning after block_til_ready with %d\n", retval); #endif - MOD_DEC_USE_COUNT; return retval; } @@ -3752,7 +3748,6 @@ state->type = PORT_16550A; break; } -#ifndef CONFIG_COBALT_MICRO_SERVER if (state->type == PORT_16550A) { /* Check for Startech UART's */ serial_outp(info, UART_LCR, UART_LCR_DLAB); @@ -3787,7 +3782,6 @@ } serial_outp(info, UART_FCR, UART_FCR_ENABLE_FIFO); } -#endif #if defined(CONFIG_SERIAL_RSA) && defined(MODULE) if (state->type == PORT_16550A) { int i; @@ -5422,6 +5416,7 @@ #endif serial_driver.major = TTY_MAJOR; serial_driver.minor_start = 64 + SERIAL_DEV_OFFSET; + serial_driver.name_base = SERIAL_DEV_OFFSET; serial_driver.num = NR_PORTS; serial_driver.type = TTY_DRIVER_TYPE_SERIAL; serial_driver.subtype = SERIAL_TYPE_NORMAL; @@ -5514,7 +5509,7 @@ && (state->port != 0 || state->iomem_base != 0)) state->irq = detect_uart_irq(state); if (state->io_type == SERIAL_IO_MEM) { - printk(KERN_INFO "ttyS%02d%s at 0x%p (irq = %d) is a %s\n", + printk(KERN_INFO"ttyS%02d%s at 0x%px (irq = %d) is a %s\n", state->line + SERIAL_DEV_OFFSET, (state->flags & ASYNC_FOURPORT) ? " FourPort" : "", state->iomem_base, state->irq, |
From: Paul M. <le...@us...> - 2002-04-21 20:02:50
|
Update of /cvsroot/linux-mips/linux/arch/mips/tools In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/tools Modified Files: offset.c Log Message: More OSS syncing.. Index: offset.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/tools/offset.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- offset.c 2 Jan 2002 19:58:02 -0000 1.3 +++ offset.c 21 Apr 2002 20:01:13 -0000 1.4 @@ -10,6 +10,7 @@ */ #include <linux/types.h> #include <linux/sched.h> +#include <linux/mm.h> #include <asm/ptrace.h> #include <asm/processor.h> @@ -19,6 +20,8 @@ #define offset(string, ptr, member) \ __asm__("\n@@@" string "%0" : : "i" (_offset(ptr, member))) +#define constant(string, member) \ + __asm__("\n@@@" string "%x0" : : "i" (member)) #define size(string, size) \ __asm__("\n@@@" string "%0" : : "i" (sizeof(size))) #define linefeed text("") @@ -130,6 +133,10 @@ offset("#define MM_USERS ", struct mm_struct, mm_users); offset("#define MM_PGD ", struct mm_struct, pgd); offset("#define MM_CONTEXT ", struct mm_struct, context); + linefeed; + constant("#define _PAGE_SIZE ", PAGE_SIZE); + constant("#define _PGD_ORDER ", PGD_ORDER); + constant("#define _PGDIR_SHIFT ", PGDIR_SHIFT); linefeed; } |
From: Paul M. <le...@us...> - 2002-04-21 20:02:50
|
Update of /cvsroot/linux-mips/linux/arch/mips64 In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips64 Modified Files: config.in Log Message: More OSS syncing.. Index: config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/config.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- config.in 18 Mar 2002 22:25:07 -0000 1.15 +++ config.in 21 Apr 2002 20:01:14 -0000 1.16 @@ -328,9 +328,6 @@ #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC bool 'Are you using a crosscompiler' CONFIG_CROSSCOMPILE -if [ "$CONFIG_MODULES" = "y" ]; then - bool ' Build fp execption handler module' CONFIG_MIPS_FPE_MODULE -fi bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ if [ "$CONFIG_SMP" != "y" ]; then |
From: Paul M. <le...@us...> - 2002-04-21 20:02:50
|
Update of /cvsroot/linux-mips/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips64/kernel Modified Files: Makefile ioctl32.c mips64_ksyms.c proc.c smp.c traps.c Log Message: More OSS syncing.. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 26 Feb 2002 16:36:12 -0000 1.5 +++ Makefile 21 Apr 2002 20:01:14 -0000 1.6 @@ -16,9 +16,8 @@ export-objs = irq.o mips64_ksyms.o pci-dma.o smp.o obj-y := branch.o entry.o irq.o proc.o process.o ptrace.o r4k_cache.o \ - r4k_fpu.o r4k_genex.o r4k_switch.o reset.o scall_64.o \ - semaphore.o setup.o signal.o softfp.o syscall.o time.o traps.o \ - unaligned.o + r4k_fpu.o r4k_genex.o r4k_switch.o reset.o scall_64.o semaphore.o \ + setup.o signal.o syscall.o time.o traps.o unaligned.o obj-$(CONFIG_I8259) += i8259.o obj-$(CONFIG_IRQ_CPU) += irq_cpu.o Index: ioctl32.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/ioctl32.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ioctl32.c 2 Jan 2002 19:13:41 -0000 1.3 +++ ioctl32.c 21 Apr 2002 20:01:14 -0000 1.4 @@ -14,7 +14,6 @@ #include <linux/sched.h> #include <linux/mm.h> #include <linux/mtio.h> -#include <linux/tty.h> #include <linux/init.h> #include <linux/file.h> #include <linux/vt.h> @@ -32,8 +31,6 @@ #undef __KERNEL__ /* This file was born to be ugly ... */ #include <scsi/scsi_ioctl.h> #define __KERNEL__ - -#include <asm/ioctls.h> #include <asm/types.h> #include <asm/uaccess.h> Index: mips64_ksyms.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/mips64_ksyms.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- mips64_ksyms.c 26 Feb 2002 19:03:28 -0000 1.6 +++ mips64_ksyms.c 21 Apr 2002 20:01:14 -0000 1.7 @@ -105,12 +105,6 @@ int register_fpe(void (*handler)(struct pt_regs *regs, unsigned int fcr31)); int unregister_fpe(void (*handler)(struct pt_regs *regs, unsigned int fcr31)); -#ifdef CONFIG_MIPS_FPE_MODULE -EXPORT_SYMBOL(__compute_return_epc); -EXPORT_SYMBOL(register_fpe); -EXPORT_SYMBOL(unregister_fpe); -#endif - #ifdef CONFIG_VT EXPORT_SYMBOL(screen_info); #endif Index: proc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/proc.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- proc.c 4 Jan 2002 18:04:53 -0000 1.10 +++ proc.c 21 Apr 2002 20:01:14 -0000 1.11 @@ -77,7 +77,7 @@ char fmt [64]; #ifdef CONFIG_SMP - if (!(cpu_online_map & (1<<n))) + if (!CPUMASK_TSTB(cpu_online_map, n)) return 0; #endif Index: smp.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/smp.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- smp.c 26 Feb 2002 17:34:15 -0000 1.15 +++ smp.c 21 Apr 2002 20:01:14 -0000 1.16 @@ -299,6 +299,7 @@ local_flush_tlb_page(vma, page); } +EXPORT_SYMBOL(smp_num_cpus); EXPORT_SYMBOL(flush_tlb_page); EXPORT_SYMBOL(cpu_data); EXPORT_SYMBOL(synchronize_irq); Index: traps.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/traps.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- traps.c 26 Feb 2002 17:34:15 -0000 1.14 +++ traps.c 21 Apr 2002 20:01:14 -0000 1.15 @@ -334,26 +334,6 @@ force_sig(SIGFPE, current); } -#ifdef CONFIG_MIPS_FPE_MODULE -static void (*fpe_handler)(struct pt_regs *regs, unsigned int fcr31); - -/* - * Register_fpe/unregister_fpe are for debugging purposes only. To make - * this hack work a bit better there is no error checking. - */ -int register_fpe(void (*handler)(struct pt_regs *regs, unsigned int fcr31)) -{ - fpe_handler = handler; - return 0; -} - -int unregister_fpe(void (*handler)(struct pt_regs *regs, unsigned int fcr31)) -{ - fpe_handler = NULL; - return 0; -} -#endif - /* * XXX Delayed fp exceptions when doing a lazy ctx switch XXX */ @@ -363,12 +343,6 @@ unsigned int insn; extern void simfp(unsigned int); -#ifdef CONFIG_MIPS_FPE_MODULE - if (fpe_handler != NULL) { - fpe_handler(regs, fcr31); - return; - } -#endif if (fcr31 & 0x20000) { /* Retry instruction with flush to zero ... */ if (!(fcr31 & (1<<24))) { |
From: Paul M. <le...@us...> - 2002-04-21 20:02:49
|
Update of /cvsroot/linux-mips/linux/drivers/i2c In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/i2c Modified Files: Makefile Log Message: More OSS syncing.. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/i2c/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 2 Dec 2001 19:05:31 -0000 1.4 +++ Makefile 21 Apr 2002 20:01:14 -0000 1.5 @@ -18,6 +18,7 @@ obj-$(CONFIG_ITE_I2C_ALGO) += i2c-algo-ite.o obj-$(CONFIG_ITE_I2C_ADAP) += i2c-adap-ite.o obj-$(CONFIG_I2C_PROC) += i2c-proc.o +obj-$(CONFIG_I2C_KEYWEST) += i2c-keywest.o # This is needed for automatic patch generation: sensors code starts here # This is needed for automatic patch generation: sensors code ends here |
From: Paul M. <le...@us...> - 2002-04-21 20:02:48
|
Update of /cvsroot/linux-mips/linux/drivers/ide In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/ide Modified Files: ide-pci.c Log Message: More OSS syncing.. Index: ide-pci.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/ide/ide-pci.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- ide-pci.c 2 Dec 2001 19:05:31 -0000 1.13 +++ ide-pci.c 21 Apr 2002 20:01:14 -0000 1.14 @@ -742,14 +742,6 @@ memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports)); hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET]; } -#ifdef CONFIG_COBALT_MICRO_SERVER - /* This is an unglorified hack.. bad, bad, bad */ - { - int i; - for (i=0; i < IDE_NR_PORTS; i++) - hwif->io_ports[i] += 0x10000000; - } -#endif hwif->chipset = ide_pci; hwif->pci_dev = dev; hwif->pci_devid = d->devid; |
From: Paul M. <le...@us...> - 2002-04-21 20:02:47
|
Update of /cvsroot/linux-mips/linux/arch/mips/sgi-ip22 In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/sgi-ip22 Modified Files: ip22-hpc.c Log Message: More OSS syncing.. Index: ip22-hpc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/sgi-ip22/ip22-hpc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ip22-hpc.c 12 Dec 2001 18:30:53 -0000 1.2 +++ ip22-hpc.c 21 Apr 2002 20:01:13 -0000 1.3 @@ -13,13 +13,17 @@ #include <asm/sgialib.h> #include <asm/bootinfo.h> -/* #define DEBUG_SGIHPC */ +#if 0 +#define HPC_DEBUG(args...) printk(args) +#else +#define HPC_DEBUG(args...) +#endif struct hpc3_regs *hpc3c0, *hpc3c1; struct hpc3_miscregs *hpc3mregs; /* We need software copies of these because they are write only. */ -unsigned int sgi_hpc_write1, sgi_hpc_write2; +u32 sgi_hpc_write1, sgi_hpc_write2; /* Machine specific identifier knobs. */ int sgi_has_ioc2 = 0; @@ -30,7 +34,7 @@ void __init sgihpc_init(void) { - unsigned long sid, crev, brev; + unsigned int sid, crev, brev; hpc3c0 = (struct hpc3_regs *) (KSEG1 + HPC3_CHIP0_PBASE); hpc3c1 = (struct hpc3_regs *) (KSEG1 + HPC3_CHIP1_PBASE); @@ -41,64 +45,43 @@ crev = (sid & 0xe0) >> 5; brev = (sid & 0x1e) >> 1; -#ifdef DEBUG_SGIHPC - prom_printf("sgihpc_init: crev<%2x> brev<%2x>\n", crev, brev); - prom_printf("sgihpc_init: "); -#endif + HPC_DEBUG("sgihpc_init: crev<%2x> brev<%2x>\n", crev, brev); + HPC_DEBUG("sgihpc_init: "); /* This test works now thanks to William J. Earl */ if ((sid & 1) == 0 ) { -#ifdef DEBUG_SGIHPC - prom_printf("GUINESS "); -#endif + HPC_DEBUG("GUINESS "); sgi_guiness = 1; mips_machtype = MACH_SGI_INDY; - strcat(system_type, "Indy"); + system_type = "SGI Indy"; } else { -#ifdef DEBUG_SGIHPC - prom_printf("FULLHOUSE "); -#endif + HPC_DEBUG("FULLHOUSE "); mips_machtype = MACH_SGI_INDIGO2; sgi_guiness = 0; - strcat(system_type, "Indigo2"); + system_type = "SGI Indigo2"; } sgi_boardid = brev; -#ifdef DEBUG_SGIHPC - prom_printf("sgi_boardid<%d> ", sgi_boardid); -#endif + HPC_DEBUG("sgi_boardid<%d> ", sgi_boardid); if(crev == 1) { if((sid & 1) || (brev >= 2)) { -#ifdef DEBUG_SGIHPC - prom_printf("IOC2 "); -#endif + HPC_DEBUG("IOC2 "); sgi_has_ioc2 = 1; } else { -#ifdef DEBUG_SGIHPC - prom_printf("IOC1 revision 1 "); -#endif + HPC_DEBUG("IOC1 revision 1 "); } } else { -#ifdef DEBUG_SGIHPC - prom_printf("IOC1 revision 0 "); -#endif + HPC_DEBUG("IOC1 revision 0 "); } -#ifdef DEBUG_SGIHPC - prom_printf("\n"); -#endif + HPC_DEBUG("\n"); - sgi_hpc_write1 = (HPC3_WRITE1_PRESET | - HPC3_WRITE1_KMRESET | - HPC3_WRITE1_ERESET | - HPC3_WRITE1_LC0OFF); + sgi_hpc_write1 = (HPC3_WRITE1_PRESET | HPC3_WRITE1_KMRESET | + HPC3_WRITE1_ERESET | HPC3_WRITE1_LC0OFF); - sgi_hpc_write2 = (HPC3_WRITE2_EASEL | - HPC3_WRITE2_NTHRESH | - HPC3_WRITE2_TPSPEED | - HPC3_WRITE2_EPSEL | - HPC3_WRITE2_U0AMODE | - HPC3_WRITE2_U1AMODE); + sgi_hpc_write2 = (HPC3_WRITE2_EASEL | HPC3_WRITE2_NTHRESH | + HPC3_WRITE2_TPSPEED | HPC3_WRITE2_EPSEL | + HPC3_WRITE2_U0AMODE | HPC3_WRITE2_U1AMODE); if(!sgi_guiness) sgi_hpc_write1 |= HPC3_WRITE1_GRESET; |
From: Paul M. <le...@us...> - 2002-04-21 20:02:47
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/mm Modified Files: c-rm7k.c c-sb1.c pg-andes.S pg-r4k.S tlbex-r3k.S tlbex-r4k.S Log Message: More OSS syncing.. Index: c-rm7k.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/c-rm7k.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- c-rm7k.c 30 Nov 2001 18:34:09 -0000 1.4 +++ c-rm7k.c 21 Apr 2002 20:01:13 -0000 1.5 @@ -133,7 +133,6 @@ end = (addr + size) & ~(sc_lsize - 1); while (1) { flush_dcache_line(a); /* Hit_Writeback_Inv_D */ - flush_icache_line(a); /* Hit_Invalidate_I */ flush_scache_line(a); /* Hit_Writeback_Inv_SD */ if (a == end) break; a += sc_lsize; @@ -160,7 +159,6 @@ end = (addr + size) & ~(sc_lsize - 1); while (1) { invalidate_dcache_line(a); /* Hit_Invalidate_D */ - flush_icache_line(a); /* Hit_Invalidate_I */ invalidate_scache_line(a); /* Hit_Invalidate_SD */ if (a == end) break; a += sc_lsize; Index: c-sb1.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/c-sb1.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- c-sb1.c 18 Mar 2002 22:19:21 -0000 1.13 +++ c-sb1.c 21 Apr 2002 20:01:13 -0000 1.14 @@ -325,16 +325,14 @@ /* * A signal trampoline must fit into a single cacheline. */ -static inline void local_sb1_flush_cache_sigtramp(unsigned long addr) +static void local_sb1_flush_cache_sigtramp(unsigned long addr) { unsigned long daddr, iaddr; daddr = addr & ~(dcache_line_size - 1); protected_writeback_dcache_line(daddr); - protected_writeback_dcache_line(daddr + dcache_line_size); iaddr = addr & ~(icache_line_size - 1); protected_flush_icache_line(iaddr); - protected_flush_icache_line(iaddr + icache_line_size); } #ifdef CONFIG_SMP Index: pg-andes.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/pg-andes.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pg-andes.S 23 Oct 2001 17:20:14 -0000 1.1 +++ pg-andes.S 21 Apr 2002 20:01:13 -0000 1.2 @@ -10,8 +10,7 @@ */ #include <asm/asm.h> #include <asm/regdef.h> - -#define PAGE_SIZE 0x1000 +#include <asm/offset.h> .text .set mips4 @@ -24,7 +23,7 @@ */ LEAF(andes_clear_page) - LONG_ADDIU AT, a0, PAGE_SIZE + LONG_ADDIU AT, a0, _PAGE_SIZE 1: pref 7, 512(a0) LONG_S zero, 0*SZREG(a0) LONG_S zero, 1*SZREG(a0) @@ -41,7 +40,7 @@ END(andes_clear_page) LEAF(andes_copy_page) - LONG_ADDIU AT, a0, PAGE_SIZE + LONG_ADDIU AT, a0, _PAGE_SIZE 1: pref 0, 2*128(a1) pref 1, 2*128(a0) LONG_L a3, 0*SZREG(a1) Index: pg-r4k.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/pg-r4k.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- pg-r4k.S 2 Jan 2002 18:10:40 -0000 1.3 +++ pg-r4k.S 21 Apr 2002 20:01:13 -0000 1.4 @@ -14,8 +14,8 @@ #include <asm/regdef.h> #include <asm/cacheops.h> #include <asm/mipsregs.h> +#include <asm/offset.h> -#define PAGE_SIZE 0x1000 #ifdef CONFIG_64BIT_PHYS_ADDR #define PGD_SIZE 0x2000 #else @@ -40,7 +40,7 @@ */ LEAF(r4k_clear_page_d16) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_D, (a0) sd zero, (a0) sd zero, 8(a0) @@ -59,7 +59,7 @@ END(r4k_clear_page_d16) LEAF(r4k_clear_page_d32) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_D, (a0) sd zero, (a0) sd zero, 8(a0) @@ -104,7 +104,7 @@ */ LEAF(r4k_clear_page_r4600_v1) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: nop nop nop @@ -141,7 +141,7 @@ lw zero, (AT) .set novolatile - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_D, (a0) sd zero, (a0) sd zero, 8(a0) @@ -179,7 +179,7 @@ */ LEAF(r4k_clear_page_s16) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) sd zero, (a0) sd zero, 8(a0) @@ -198,7 +198,7 @@ END(r4k_clear_page_s16) LEAF(r4k_clear_page_s32) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) sd zero, (a0) sd zero, 8(a0) @@ -215,7 +215,7 @@ END(r4k_clear_page_s32) LEAF(r4k_clear_page_s64) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) sd zero, (a0) sd zero, 8(a0) @@ -231,7 +231,7 @@ END(r4k_clear_page_s64) LEAF(r4k_clear_page_s128) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) sd zero, (a0) sd zero, 8(a0) @@ -260,7 +260,7 @@ */ LEAF(r4k_copy_page_d16) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_D, (a0) lw a3, (a1) lw a2, 4(a1) @@ -304,7 +304,7 @@ END(r4k_copy_page_d16) LEAF(r4k_copy_page_d32) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_D, (a0) lw a3, (a1) lw a2, 4(a1) @@ -350,7 +350,7 @@ */ LEAF(r4k_copy_page_r4600_v1) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: nop nop nop @@ -409,7 +409,7 @@ nop nop - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: nop nop nop @@ -473,7 +473,7 @@ */ LEAF(r4k_copy_page_s16) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) lw a3, (a1) lw a2, 4(a1) @@ -517,7 +517,7 @@ END(r4k_copy_page_s16) LEAF(r4k_copy_page_s32) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) lw a3, (a1) lw a2, 4(a1) @@ -559,7 +559,7 @@ END(r4k_copy_page_s32) LEAF(r4k_copy_page_s64) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) lw a3, (a1) lw a2, 4(a1) @@ -600,7 +600,7 @@ END(r4k_copy_page_s64) LEAF(r4k_copy_page_s128) - addiu AT, a0, PAGE_SIZE + addiu AT, a0, _PAGE_SIZE 1: cache Create_Dirty_Excl_SD, (a0) lw a3, (a1) lw a2, 4(a1) Index: tlbex-r3k.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/tlbex-r3k.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- tlbex-r3k.S 4 Jan 2002 18:04:53 -0000 1.3 +++ tlbex-r3k.S 21 Apr 2002 20:01:13 -0000 1.4 @@ -19,7 +19,7 @@ #include <asm/fpregdef.h> #include <asm/mipsregs.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/stackframe.h> Index: tlbex-r4k.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/tlbex-r4k.S,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- tlbex-r4k.S 9 Mar 2002 01:39:31 -0000 1.7 +++ tlbex-r4k.S 21 Apr 2002 20:01:13 -0000 1.8 @@ -18,7 +18,7 @@ #include <asm/fpregdef.h> #include <asm/mipsregs.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/stackframe.h> @@ -77,7 +77,7 @@ lw k1, pgd_current # get pgd pointer #endif mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, PGDIR_SHIFT # get pgd only bits + srl k0, k0, _PGDIR_SHIFT # get pgd only bits sll k0, k0, 2 addu k1, k1, k0 # add in pgd offset @@ -103,7 +103,7 @@ LEAF(except_vec0_r4600) .set mips3 mfc0 k0, CP0_BADVADDR - srl k0, k0, PGDIR_SHIFT + srl k0, k0, _PGDIR_SHIFT lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 @@ -141,7 +141,7 @@ LEAF(except_vec0_nevada) .set mips3 mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, PGDIR_SHIFT # get pgd only bits + srl k0, k0, _PGDIR_SHIFT # get pgd only bits lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 # add in pgd offset @@ -169,7 +169,7 @@ LEAF(except_vec0_r45k_bvahwbug) .set mips3 mfc0 k0, CP0_BADVADDR - srl k0, k0, PGDIR_SHIFT + srl k0, k0, _PGDIR_SHIFT lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 @@ -201,7 +201,7 @@ LEAF(except_vec0_r4k_mphwbug) .set mips3 mfc0 k0, CP0_BADVADDR - srl k0, k0, PGDIR_SHIFT + srl k0, k0, _PGDIR_SHIFT lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 @@ -233,7 +233,7 @@ LEAF(except_vec0_r4k_250MHZhwbug) .set mips3 mfc0 k0, CP0_BADVADDR - srl k0, k0, PGDIR_SHIFT + srl k0, k0, _PGDIR_SHIFT lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 @@ -264,7 +264,7 @@ LEAF(except_vec0_r4k_MP250MHZhwbug) .set mips3 mfc0 k0, CP0_BADVADDR - srl k0, k0, PGDIR_SHIFT + srl k0, k0, _PGDIR_SHIFT lw k1, pgd_current # get pgd pointer sll k0, k0, 2 # log2(sizeof(pgd_t) addu k1, k1, k0 @@ -320,7 +320,7 @@ #define LOAD_PTE(pte, ptr) \ GET_PGD(pte, ptr) \ mfc0 pte, CP0_BADVADDR; \ - srl pte, pte, PGDIR_SHIFT; \ + srl pte, pte, _PGDIR_SHIFT; \ sll pte, pte, 2; \ addu ptr, ptr, pte; \ mfc0 pte, CP0_BADVADDR; \ |
From: Paul M. <le...@us...> - 2002-04-21 20:02:47
|
Update of /cvsroot/linux-mips/linux/arch/mips/lib In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/lib Modified Files: ide-std.c Log Message: More OSS syncing.. Index: ide-std.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/lib/ide-std.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ide-std.c 13 Dec 2001 02:31:17 -0000 1.7 +++ ide-std.c 21 Apr 2002 20:01:12 -0000 1.8 @@ -16,10 +16,6 @@ static int std_ide_default_irq(ide_ioreg_t base) { -#ifdef CONFIG_COBALT_MICRO_SERVER - base &= 0x0fffffff; -#endif - switch (base) { case 0x1f0: return 14; case 0x170: return 15; |
From: Paul M. <le...@us...> - 2002-04-21 20:02:46
|
Update of /cvsroot/linux-mips/linux/arch/mips/sibyte/swarm In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/sibyte/swarm Modified Files: setup.c Log Message: More OSS syncing.. Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/sibyte/swarm/setup.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- setup.c 18 Mar 2002 22:54:22 -0000 1.10 +++ setup.c 21 Apr 2002 20:01:13 -0000 1.11 @@ -43,7 +43,6 @@ #include "cfe_api.h" #include "cfe_error.h" -extern struct rtc_ops swarm_rtc_ops; extern int cfe_console_handle; #ifdef CONFIG_BLK_DEV_IDE_SWARM @@ -270,8 +269,6 @@ "board" #endif " runs\n"); - -// board_timer_setup = swarm_time_init; #ifdef CONFIG_BLK_DEV_IDE_SWARM ide_ops = &swarm_ide_ops; |
From: Paul M. <le...@us...> - 2002-04-21 20:02:46
|
Update of /cvsroot/linux-mips/linux/arch/mips/sibyte/sb1250 In directory usw-pr-cvs1:/tmp/cvs-serv3535/arch/mips/sibyte/sb1250 Modified Files: time.c Log Message: More OSS syncing.. Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/sibyte/sb1250/time.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- time.c 19 Feb 2002 17:32:08 -0000 1.4 +++ time.c 21 Apr 2002 20:01:13 -0000 1.5 @@ -33,6 +33,8 @@ #include <asm/irq.h> #include <asm/ptrace.h> #include <asm/addrspace.h> +#include <asm/time.h> + #include <asm/sibyte/sb1250.h> #include <asm/sibyte/sb1250_regs.h> #include <asm/sibyte/sb1250_int.h> @@ -40,10 +42,6 @@ #include <asm/sibyte/64bit.h> -void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); - - - #define IMR_IP2_VAL K_INT_MAP_I0 #define IMR_IP3_VAL K_INT_MAP_I1 #define IMR_IP4_VAL K_INT_MAP_I2 @@ -89,10 +87,6 @@ */ } -extern int set_rtc_mmss(unsigned long nowtime); -extern rwlock_t xtime_lock; -static long last_rtc_update = 0; - void sb1250_timer_interrupt(struct pt_regs *regs) { int cpu = smp_processor_id(); @@ -102,37 +96,14 @@ KSEG1 + A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG)); /* - * Need to do some stuff here with xtime, too, but that looks like - * it should be architecture independent...does it really belong here? + * CPU 0 handles the global timer interrupt job */ - if (!cpu) { - do_timer(regs); - - read_lock(&xtime_lock); - if ((time_status & STA_UNSYNC) == 0 - && xtime.tv_sec > last_rtc_update + 660 - && xtime.tv_usec >= 500000 - (tick >> 1) - && xtime.tv_usec <= 500000 + (tick >> 1)) { - if (set_rtc_mmss(xtime.tv_sec) == 0) - last_rtc_update = xtime.tv_sec; - else - /* do it again in 60 s */ - last_rtc_update = xtime.tv_sec - 600; - } - read_unlock(&xtime_lock); + if (cpu == 0) { + ll_timer_interrupt(0, regs); } -#ifdef CONFIG_SMP /* - * We need to make like a normal interrupt -- otherwise timer - * interrupts ignore the global interrupt lock, which would be - * a Bad Thing. + * every CPU should do profiling and process accouting */ - irq_enter(cpu, 0); - update_process_times(user_mode(regs)); - irq_exit(cpu, 0); - - if (softirq_pending(cpu)) - do_softirq(); -#endif /* CONFIG_SMP */ + ll_local_timer_interrupt(0, regs); } |
From: Paul M. <le...@us...> - 2002-04-21 20:02:46
|
Update of /cvsroot/linux-mips/linux/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/net Modified Files: sb1250-mac.c Log Message: More OSS syncing.. Index: sb1250-mac.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/sb1250-mac.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- sb1250-mac.c 12 Feb 2002 17:58:28 -0000 1.2 +++ sb1250-mac.c 21 Apr 2002 20:01:14 -0000 1.3 @@ -53,6 +53,7 @@ #error You must compile this driver with "-O". #endif +#include <linux/config.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/string.h> @@ -65,8 +66,8 @@ #include <linux/skbuff.h> #include <linux/slab.h> #include <linux/init.h> [...977 lines suppressed...] spin_unlock_irqrestore(&sc->sbm_lock, flags); @@ -2548,15 +2418,13 @@ free_irq(dev->irq, dev); - sbdma_emptyring(&(sc->sbm_txdma)); - sbdma_emptyring(&(sc->sbm_rxdma)); + sbdma_emptyring(&sc->sbm_txdma); + sbdma_emptyring(&sc->sbm_rxdma); MOD_DEC_USE_COUNT; return 0; } - - #if defined(SBMAC_ETH0_HWADDR) || defined(SBMAC_ETH1_HWADDR) || defined(SBMAC_ETH2_HWADDR) static void |
From: Paul M. <le...@us...> - 2002-04-21 20:02:45
|
Update of /cvsroot/linux-mips/linux/include/asm-mips/cobalt In directory usw-pr-cvs1:/tmp/cvs-serv3535/include/asm-mips/cobalt Modified Files: cobalt.h Log Message: More OSS syncing.. Index: cobalt.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/cobalt/cobalt.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- cobalt.h 1 Dec 2001 00:56:22 -0000 1.3 +++ cobalt.h 21 Apr 2002 20:01:15 -0000 1.4 @@ -7,18 +7,13 @@ * * Copyright (C) 1997 Cobalt Microserver * Copyright (C) 1997 Ralf Baechle + * Copyright (C) 2001 Liam Davies (ld...@ag...) * - * $Id$ */ #ifndef __ASM_MIPS_COBALT_H #define __ASM_MIPS_COBALT_H /* - * Base address of I/O ports - */ -#define COBALT_LOCAL_IO_SPACE 0xa0000000 - -/* * COBALT interrupt enable bits */ #define COBALT_IE_PCI (1 << 0) @@ -42,7 +37,9 @@ */ #define COBALT_TIMER_IRQ 0 #define COBALT_KEYBOARD_IRQ 1 -#define COBALT_ETHERNET_IRQ 13 +#define COBALT_QUBE_ETH_IRQ 13 +#define COBALT_RAQ_ETH0_IRQ 4 +#define COBALT_RAQ_ETH1_IRQ 13 #define COBALT_SCC_IRQ 4 #define COBALT_SERIAL2_IRQ 4 #define COBALT_PARALLEL_IRQ 5 @@ -65,55 +62,23 @@ #define COBALT_PCICONF_PCISLOT 0x0A #define COBALT_PCICONF_ETH1 0x0C -#define PCI_DEVSHFT(x) ((x) << 3) - /* - * Access the R4030 DMA and I/O Controller + * Handling the VIA ISA host bridge. */ -#ifndef _LANGUAGE_ASSEMBLY - -static inline void r4030_delay(void) -{ -__asm__ __volatile__( - ".set\tnoreorder\n\t" - "nop\n\t" - "nop\n\t" - "nop\n\t" - "nop\n\t" - ".set\treorder"); -} - -static inline unsigned short r4030_read_reg16(unsigned addr) -{ - unsigned short ret = *((volatile unsigned short *)addr); - r4030_delay(); - return ret; -} - -static inline unsigned int r4030_read_reg32(unsigned addr) -{ - unsigned int ret = *((volatile unsigned int *)addr); - r4030_delay(); - return ret; -} -static inline void r4030_write_reg16(unsigned addr, unsigned val) -{ - *((volatile unsigned short *)addr) = val; - r4030_delay(); +#define VIA_DELAY() \ +{ \ + unsigned char ctr; \ + for (ctr=0;ctr<1;ctr++); \ } -static inline void r4030_write_reg32(unsigned addr, unsigned val) -{ - *((volatile unsigned int *)addr) = val; - r4030_delay(); +#define VIA_PORT_WRITE(x,y) \ +{ \ + *((volatile unsigned char *) (0xb0000000 | x)) = y; \ + VIA_DELAY(); \ } -#endif /* !_LANGUAGE_ASSEMBLY */ - -/* - * Handling the VIA ISA host bridge. - */ +#define VIA_PORT_READ(x) (*((unsigned char *) (0xB0000000 | (x)))) #define RESET_VIA_TIMER() \ asm("sb\t%1,0x70(%0)\n\t" \ @@ -123,39 +88,6 @@ #define VIA_CMOS_ADDR 0x70 #define VIA_CMOS_DATA 0x71 - -#define VIA_CMOS_CONSOLE_FLG 0x13 /* CMOS byte for console I/O */ -/* - * By convention, the bootflag's low order bit is a valid indicator - * and rest of the byte is serial console configuration information. - * - * This is NOT implemented in the rom code yet, it only tests for - * 0x1 and 0xA5 as off or 1152. If you pick some other speed, the - * kernel will "do the right thing", but the rom will ignore it. - */ - -#ifndef _LANGUAGE_ASSEMBLY /* { */ - -union cobalt_cons_info { - unsigned char ccons_char; - struct { - unsigned char - valid:2, /* CMOS default is 11 */ - kout:1, /* kernel output enabled */ - res1:2, /* 2 bits reserved */ - baud:3; /* Default baud rate */ - } ccons_bits; -}; - -int cobalt_cons_koutok(void); -int cobalt_cons_baudint(void); -int cobalt_cons_baudbaud(void); -#endif /* } _LANGUAGE_ASSEMBLY */ - -#define VIA_CMOS_CONS_VALID 0x1 -#define VIA_CMOS_CONS_OFF 0 -#define VIA_CMOS_CONS_9600 0x2 /* ROM sees disable */ -#define VIA_CMOS_CONS_115K 0x5 /* max value 0x7 */ /* * The Cobalt board id information. The boards have an ID number wired |
From: Paul M. <le...@us...> - 2002-04-21 20:02:45
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/sound Modified Files: nec_vrc5477.c Log Message: More OSS syncing.. Index: nec_vrc5477.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/nec_vrc5477.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- nec_vrc5477.c 18 Mar 2002 22:27:42 -0000 1.7 +++ nec_vrc5477.c 21 Apr 2002 20:01:15 -0000 1.8 @@ -326,6 +326,43 @@ while (inl(s->io + VRC5477_CODEC_WR) & 0x80000000); } +static int ac97_codec_not_present(struct ac97_codec *codec) +{ + struct vrc5477_ac97_state *s = + (struct vrc5477_ac97_state *)codec->private_data; + unsigned long flags; + unsigned short count = 0xffff; + + spin_lock_irqsave(&s->lock, flags); + + /* wait until we can access codec registers */ + do { + if (!(inl(s->io + VRC5477_CODEC_WR) & 0x80000000)) + break; + } while (--count); + + if (count == 0) { + spin_unlock_irqrestore(&s->lock, flags); + return -1; + } + + /* write 0 to reset */ + outl((AC97_RESET << 16) | 0, s->io + VRC5477_CODEC_WR); + + /* test whether we get a response from ac97 chip */ + count = 0xffff; + do { + if (!(inl(s->io + VRC5477_CODEC_WR) & 0x80000000)) + break; + } while (--count); + + if (count == 0) { + spin_unlock_irqrestore(&s->lock, flags); + return -1; + } + spin_unlock_irqrestore(&s->lock, flags); + return 0; +} /* --------------------------------------------------------------------- */ @@ -719,8 +756,8 @@ unsigned temp; /* next DMA transfer should already started */ - ASSERT(inl(s->io + VRC5477_DAC1_CTRL) & VRC5477_DMA_WIP); - ASSERT(inl(s->io + VRC5477_DAC2_CTRL) & VRC5477_DMA_WIP); + // ASSERT(inl(s->io + VRC5477_DAC1_CTRL) & VRC5477_DMA_WIP); + // ASSERT(inl(s->io + VRC5477_DAC2_CTRL) & VRC5477_DMA_WIP); /* let us set for next next DMA transfer */ temp = dac->nextOut + dac->fragSize*2; @@ -755,9 +792,9 @@ /* adjust count */ dac->count -= dac->fragSize; if (dac->count <=0 ) { - ASSERT(dac->count == 0); - ASSERT(dac->nextIn == dac->nextOut); /* buffer under run */ + dac->count = 0; + dac->nextIn = dac->nextOut; stop_dac(s); } @@ -1114,12 +1151,10 @@ } if (copyCount + db->nextIn > db->fragTotalSize) { copyCount = db->fragTotalSize - db->nextIn; - ASSERT((copyCount % db->fragSize) == 0); ASSERT(copyCount > 0); } - copyFragCount = (copyCount-1) >> db->fragShift; - copyFragCount = (copyFragCount+1) << db->fragShift; + copyFragCount = copyCount; ASSERT(copyFragCount >= copyCount); /* we copy differently based on the number channels */ @@ -1164,7 +1199,6 @@ db->nextIn = 0; } - ASSERT((copyFragCount % db->fragSize) == 0); ASSERT( (count == 0) || (copyCount == copyFragCount)); } @@ -1223,7 +1257,6 @@ } } while (avail <= 0); - ASSERT( (avail % db->fragSize) == 0); copyCount = copy_dac_from_user(s, buffer, count, avail); if (copyCount < 0) { if (!ret) ret = -EFAULT; @@ -1783,81 +1816,6 @@ MODULE_DESCRIPTION("NEC Vrc5477 audio (AC97) Driver"); MODULE_LICENSE("GPL"); -/* --------------------------------------------------------------------- */ -extern void jsun_scan_pci_bus(void); -extern void vrc5477_show_pci_regs(void); -extern void vrc5477_show_pdar_regs(void); - -/* -------------------------------------------------------- */ -#define AC97_BASE 0xbb000000 -#define myinl(x) *(volatile u32*)(AC97_BASE + (x)) -#define myoutl(x,y) *(volatile u32*)(AC97_BASE + (y)) = (x) - -u16 myrdcodec(u8 addr) -{ - u32 result; - - /* wait until we can access codec registers */ - // while (inl(VRC5477_CODEC_WR) & 0x80000000); - - /* write the address and "read" command to codec */ - addr = addr & 0x7f; - myoutl((addr << 16) | VRC5477_CODEC_WR_RWC, VRC5477_CODEC_WR); - - /* get the return result */ - udelay(100); /* workaround hardware bug */ - // dump_memory(0xbb000000, 48); - while ( ((result=myinl(VRC5477_CODEC_RD)) & 0xc0000000) != 0xc0000000); - ASSERT(addr == ((result >> 16) & 0x7f) ); - return result & 0xffff; -} - -void mywrcodec(u8 addr, u16 data) -{ - /* wait until we can access codec registers */ - while (myinl(VRC5477_CODEC_WR) & 0x80000000); - - /* write the address and value to codec */ - myoutl((addr << 16) | data, VRC5477_CODEC_WR); - -} - - -void jsun_ac97_test(struct vrc5477_ac97_state *s) -{ - int i; - - /* reset codec */ - /* - wrcodec(&s->codec, 0, 0); - while (inl(s->io + VRC5477_CODEC_WR) & 0x80000000); - */ - mywrcodec(0, 0); - while (myinl(VRC5477_CODEC_WR) & 0x80000000); - - for (i=0; i< 0x40; i+=4) { - ASSERT(inl(s->io+i) == myinl(i)); - } - - printk("codec registers : "); - for (i=0; i<= 0x3a; i+=2) { - if ( (i%0x10) == 0) { - printk("\n%02x\t", i); - } - // printk("%04x\t", rdcodec(&s->codec, i)); - printk("%04x\t", myrdcodec(i)); - } - printk("\n\n"); - printk("codec registers : "); - for (i=0; i<= 0x3a; i+=2) { - if ( (i%0x10) == 0) { - printk("\n%02x\t", i); - } - printk("%04x\t", rdcodec(&s->codec, i)); - } - printk("\n\n"); -} - static int __devinit vrc5477_ac97_probe(struct pci_dev *pcidev, const struct pci_device_id *pciid) { @@ -1896,6 +1854,13 @@ * no persistent state across file opens. */ + /* test if get response from ac97, if not return */ + if (ac97_codec_not_present(&(s->codec))) { + printk(KERN_ERR PFX "no ac97 codec\n"); + goto err_region; + + } + if (!request_region(s->io, pci_resource_len(pcidev,0), VRC5477_AC97_MODULE_NAME)) { printk(KERN_ERR PFX "io ports %#lx->%#lx in use\n", @@ -1957,26 +1922,18 @@ s->dacRate); } -#if 0 - /* What's wrong with the codec chip defaults? - * If at all, shouldn't this be done through ac97_codec.c instead? - * This code just ends up making my system noisey at boot. - * /dev/mixer reaches these anyway. bdl - */ - /* let us get the default volumne louder */ - wrcodec(&s->codec, 0x2, 0); - wrcodec(&s->codec, 0x18, 0x0707); - /* mute line in loopback to line out */ - wrcodec(&s->codec, 0x10, 0x8000); + wrcodec(&s->codec, 0x2, 0x1010); /* master volume, middle */ + wrcodec(&s->codec, 0xc, 0x10); /* phone volume, middle */ + // wrcodec(&s->codec, 0xe, 0x10); /* misc volume, middle */ + wrcodec(&s->codec, 0x10, 0x8000); /* line-in 2 line-out disable */ + wrcodec(&s->codec, 0x18, 0x0707); /* PCM out (line out) middle */ + /* by default we select line in the input */ wrcodec(&s->codec, 0x1a, 0x0404); - /* pick middle value for record gain */ - // wrcodec(&s->codec, 0x1c, 0x0707); wrcodec(&s->codec, 0x1c, 0x0f0f); wrcodec(&s->codec, 0x1e, 0x07); -#endif /* enable the master interrupt but disable all others */ outl(VRC5477_INT_MASK_NMASK, s->io + VRC5477_INT_MASK); @@ -2047,7 +2004,7 @@ { if (!pci_present()) /* No PCI bus in this machine! */ return -ENODEV; - printk("Vrc5477 AC97 driver: version v0.1 time " __TIME__ " " __DATE__ " by Jun Sun\n"); + printk("Vrc5477 AC97 driver: version v0.2 time " __TIME__ " " __DATE__ " by Jun Sun\n"); return pci_module_init(&vrc5477_ac97_driver); } |
From: Paul M. <le...@us...> - 2002-04-21 20:02:45
|
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/net/tulip Modified Files: eeprom.c tulip_core.c Log Message: More OSS syncing.. Index: eeprom.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/eeprom.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- eeprom.c 6 Nov 2001 20:23:55 -0000 1.3 +++ eeprom.c 21 Apr 2002 20:01:14 -0000 1.4 @@ -29,24 +29,6 @@ /* Known cards that have old-style EEPROMs. */ static struct eeprom_fixup eeprom_fixups[] __devinitdata = { - // Super big hack... we don't have a registered MAC address yet. TJS - // Add 100Mbps here too... - {"Cobalt 27", 0, 0x10, 0xE0, {0x1e00, /* 0 == controller #, 1e == - offset */ - 0x0000, /* 0 == high offset, 0 == gap */ - 0x0800, /* Default Autoselect */ - 0x8001, /* 1 leaf, extended type, bogus len */ - 0x0003, /* Type 3 (MII), PHY #0 */ - 0x0400, /* 0 init instr, 4 reset instr */ - 0x0801, /* Set control mode, GP0 output */ - 0x0000, /* Drive GP0 Low (RST is active low) */ - 0x0800, /* control mode, GP0 input (undriven) */ - 0x0000, /* clear control mode */ - 0x7800, /* 100TX FDX + HDX, 10bT FDX + HDX */ - 0x01e0, /* Advertise all above */ - 0x5000, /* FDX all above */ - 0x1800, /* Set fast TTM in 100bt modes */ - 0x0, /* PHY cannot be unplugged */ }}, {"Asante", 0, 0, 0x94, {0x1e00, 0x0000, 0x0800, 0x0100, 0x018c, 0x0000, 0x0000, 0xe078, 0x0001, 0x0050, 0x0018 }}, {"SMC9332DST", 0, 0, 0xC0, { 0x1e00, 0x0000, 0x0800, 0x041f, @@ -104,19 +86,6 @@ int i; tp->mtable = 0; -#if defined(__mips__) - /* - * Cobalt: - * Our EEPROMs are specification challenged, so we check - * to see if the current device is not in the PCI slot. - * PCI cards fend for themselves, otherwise we kludge. - */ - if (dev->base_addr != 0x10108000) { /* not PCI slot */ - ee_data[19] = 1; /* set One controller... TJS */ - i = 8; /* make us fall into the right code */ - } - else -#endif /* Detect an old-style (SA only) EEPROM layout: memcmp(eedata, eedata+16, 8). */ for (i = 0; i < 8; i ++) Index: tulip_core.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/tulip_core.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- tulip_core.c 15 Jan 2002 18:01:26 -0000 1.14 +++ tulip_core.c 21 Apr 2002 20:01:15 -0000 1.15 @@ -209,6 +209,7 @@ { 0x1317, 0x1985, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, { 0x13D1, 0xAB02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, { 0x13D1, 0xAB03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, + { 0x13D1, 0xAB08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, { 0x104A, 0x0981, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, { 0x104A, 0x2774, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, { 0x11F6, 0x9881, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMPEX9881 }, @@ -250,9 +251,8 @@ static struct net_device_stats *tulip_get_stats(struct net_device *dev); static int private_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); static void set_rx_mode(struct net_device *dev); -#ifdef CONFIG_COBALT_27 -static int tulip_linkcheck(void *cookie); -#endif + + static void tulip_set_power_state (struct tulip_private *tp, int sleep, int snooze) @@ -705,32 +705,6 @@ tp->tx_ring[i-1].buffer2 = cpu_to_le32(tp->tx_ring_dma); } -#ifdef CONFIG_COBALT_27 -static int tulip_linkcheck(void *cookie) -{ - struct net_device *dev = cookie; - struct tulip_private *tp = (struct tulip_private *)dev->priv; - int ioaddr = dev->base_addr; - unsigned int link_status; - - /* - * If we have a MII, check the PHY - */ - if (tp->mtable && tp->mtable->has_mii == 1) { - link_status = tulip_mdio_read(dev, 1, 1); - return (link_status & (1 << 2)) != 0; - } - - /* - * Check the chip 10 and 100 Mbit/s link - * (not obvious how 100 Mbit can blink if there is no MII) - */ - link_status = inl(ioaddr + CSR12); - - return (link_status & 6) != 0; -} -#endif /* CONFIG_COBALT_27 */ - static int tulip_start_xmit(struct sk_buff *skb, struct net_device *dev) { @@ -738,8 +712,9 @@ int entry; u32 flag; dma_addr_t mapping; + unsigned long eflags; - spin_lock_irq(&tp->lock); + spin_lock_irqsave(&tp->lock, eflags); /* Calculate the next Tx descriptor entry. */ entry = tp->cur_tx % TX_RING_SIZE; @@ -777,7 +752,7 @@ /* Trigger an immediate transmit demand. */ outl(0, dev->base_addr + CSR1); - spin_unlock_irq(&tp->lock); + spin_unlock_irqrestore(&tp->lock, eflags); dev->trans_start = jiffies; @@ -1368,7 +1343,6 @@ tp->csr0 = csr0; goto out; -early_out: if (csr0 & MWI) { pci_command &= ~PCI_COMMAND_INVALIDATE; pci_write_config_word(pdev, PCI_COMMAND, pci_command); @@ -1442,9 +1416,6 @@ * without the workarounds being on. */ -#ifdef CONFIG_COBALT_27 - force_csr0 = 1; -#endif /* Intel Saturn. Switch to 8 long words burst, 8 long word cache aligned Aries might need this too. The Saturn errata are not pretty reading but thankfully its an old 486 chipset. @@ -1658,6 +1629,16 @@ tp->flags &= ~HAS_MEDIA_TABLE; } #endif +#ifdef CONFIG_MIPS_COBALT + if ((pdev->bus->number == 0) && + ((PCI_SLOT(pdev->devfn) == 7) || + (PCI_SLOT(pdev->devfn) == 12))) { + /* Cobalt MAC address in first EEPROM locations. */ + sa_offset = 0; + /* No media table either */ + tp->flags &= ~HAS_MEDIA_TABLE; + } +#endif for (i = 0; i < 6; i ++) { dev->dev_addr[i] = ee_data[i + sa_offset]; sum += ee_data[i + sa_offset]; @@ -1792,9 +1773,6 @@ else if (tp->flags & HAS_PNICNWAY) tp->link_change = pnic_lnk_change; -#ifdef CONFIG_COBALT_27 - lcd_register_linkcheck_func(dev->name[3] - '0', tulip_linkcheck, dev); -#endif /* Reset the xcvr interface and turn on heartbeat. */ switch (chip_idx) { case DC21041: @@ -1948,7 +1926,7 @@ name: DRV_NAME, id_table: tulip_pci_tbl, probe: tulip_init_one, - remove: tulip_remove_one, + remove: __devexit_p(tulip_remove_one), #ifdef CONFIG_PM suspend: tulip_suspend, resume: tulip_resume, |
From: Paul M. <le...@us...> - 2002-04-21 20:02:45
|
Update of /cvsroot/linux-mips/linux/drivers/scsi In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/scsi Modified Files: ncr53c8xx.c Log Message: More OSS syncing.. Index: ncr53c8xx.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/scsi/ncr53c8xx.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ncr53c8xx.c 26 Feb 2002 19:03:29 -0000 1.5 +++ ncr53c8xx.c 21 Apr 2002 20:01:15 -0000 1.6 @@ -162,11 +162,6 @@ #include <linux/types.h> -#ifdef CONFIG_COBALT_27 -/* COBALT LOCAL: Needed because our mips is not DMA coherent. -DaveM */ -#define CACHED_TO_UNCACHED(x) (((unsigned long)(x) & (unsigned long)0x1fffffff) + KSEG1) -#endif - /* ** Define BITS_PER_LONG for earlier linux versions. */ @@ -3576,11 +3571,6 @@ np = __m_calloc_dma(device->pdev, sizeof(struct ncb), "NCB"); if (!np) goto attach_error; -#ifdef CONFIG_COBALT_27 - /* COBALT LOCAL: We're not DMA coherent, so reference in uncached space -DaveM */ - dma_cache_wback_inv((unsigned long)np, sizeof(*np)); - np = (ncb_p) CACHED_TO_UNCACHED(np); -#endif NCR_INIT_LOCK_NCB(np); np->pdev = device->pdev; np->p_ncb = vtobus(np); @@ -3592,11 +3582,6 @@ np->ccb = (ccb_p) m_calloc_dma(sizeof(struct ccb), "CCB"); if (!np->ccb) goto attach_error; -#ifdef CONFIG_COBALT_27 - /* COBALT LOCAL: We're not DMA coherent, so reference in uncached space -DaveM */ - dma_cache_wback_inv((unsigned long)np->ccb, sizeof(*np->ccb)); - np->ccb = (ccb_p) CACHED_TO_UNCACHED(np->ccb); -#endif /* ** Store input informations in the host data structure. @@ -3626,13 +3611,6 @@ m_calloc_dma(sizeof(struct scripth), "SCRIPTH"); if (!np->scripth0) goto attach_error; -#ifdef CONFIG_COBALT_27 - /* COBALT LOCAL: We're not DMA coherent, so reference in uncached space . -DaveM */ - dma_cache_wback_inv((unsigned long)np->script0, sizeof(*np->script0)); - np->script0 = (struct script *) CACHED_TO_UNCACHED(np->script0); - dma_cache_wback_inv((unsigned long)np->scripth0, sizeof(*np->scripth0)); - np->scripth0 = (struct scripth *) CACHED_TO_UNCACHED(np->scripth0); -#endif /* ** Initialize timer structure @@ -4583,9 +4561,6 @@ memcpy(cp->cdb_buf, cmd->cmnd, MIN(cmd->cmd_len, sizeof(cp->cdb_buf))); cp->phys.cmd.addr = cpu_to_scr(CCB_PHYS (cp, cdb_buf[0])); cp->phys.cmd.size = cpu_to_scr(cmd->cmd_len); -#ifdef CONFIG_COBALT_27 - dma_cache_wback_inv((unsigned long)&cmd->cmnd[0], sizeof(cmd->cmnd)); -#endif /* ** status @@ -7037,10 +7012,6 @@ bzero(cp->sense_buf, sizeof(cp->sense_buf)); cp->phys.sense.addr = cpu_to_scr(CCB_PHYS(cp,sense_buf[0])); cp->phys.sense.size = cpu_to_scr(sizeof(cp->sense_buf)); -#ifdef CONFIG_COBALT_27 - dma_cache_wback_inv((unsigned long)&cp->sense_buf[0], - sizeof(cp->sense_buf)); -#endif /* ** requeue the command. @@ -7823,11 +7794,6 @@ lp->actccbs++; np->actccbs++; bzero (cp, sizeof (*cp)); -#ifdef CONFIG_COBALT_27 - /* COBALT LOCAL: We're not DMA coherent, so reference in uncached space -DaveM */ - dma_cache_wback_inv((unsigned long)cp, sizeof(*cp)); - cp = (ccb_p) CACHED_TO_UNCACHED(cp); -#endif ncr_init_ccb(np, cp); /* @@ -8157,10 +8123,6 @@ data = &data[MAX_SCATTER - 1]; data[0].addr = cpu_to_scr(baddr); data[0].size = cpu_to_scr(cmd->request_bufflen); -#ifdef CONFIG_COBALT_27 - dma_cache_wback_inv((unsigned long)cmd->request_buffer, - cmd->request_bufflen); -#endif cp->data_len = cmd->request_bufflen; segment = 1; } @@ -8178,9 +8140,6 @@ data[segment].addr = cpu_to_scr(baddr); data[segment].size = cpu_to_scr(len); cp->data_len += len; -#ifdef CONFIG_COBALT_27 - dma_cache_wback_inv((unsigned long)scatter[segment].address, scatter[segment].length); -#endif ++segment; } } |
From: Paul M. <le...@us...> - 2002-04-21 20:02:45
|
Update of /cvsroot/linux-mips/linux/drivers/sgi/char In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/sgi/char Modified Files: graphics.c sgiserial.c shmiq.c streamable.c Log Message: More OSS syncing.. Index: graphics.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sgi/char/graphics.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- graphics.c 2 Jan 2002 20:42:12 -0000 1.3 +++ graphics.c 21 Apr 2002 20:01:15 -0000 1.4 @@ -196,6 +196,7 @@ int board = GRAPHICS_CARD (inode->i_rdev); /* Tell the rendering manager that one client is going away */ + lock_kernel(); rrm_close (inode, file); /* Was this file handle from the board owner?, clear it */ @@ -205,6 +206,7 @@ (*cards [board].g_reset_console)(); enable_gconsole (); } + unlock_kernel(); return 0; } Index: sgiserial.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sgi/char/sgiserial.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- sgiserial.c 30 Nov 2001 18:34:10 -0000 1.4 +++ sgiserial.c 21 Apr 2002 20:01:15 -0000 1.5 @@ -1239,7 +1239,7 @@ tmp.close_delay = info->close_delay; tmp.closing_wait = info->closing_wait; tmp.custom_divisor = info->custom_divisor; - return copy_to_user(retinfo,&tmp,sizeof(*retinfo)); + return copy_to_user(retinfo,&tmp,sizeof(*retinfo)) ? -EFAULT : 0; } static int set_serial_info(struct sgi_serial * info, @@ -1875,7 +1875,11 @@ memset(&serial_driver, 0, sizeof(struct tty_driver)); serial_driver.magic = TTY_DRIVER_MAGIC; +#ifdef CONFIG_DEVFS_FS + serial_driver.name = "tts/%d"; +#else serial_driver.name = "ttyS"; +#endif serial_driver.major = TTY_MAJOR; serial_driver.minor_start = 64; serial_driver.num = NUM_CHANNELS; @@ -1911,7 +1915,11 @@ * major number and the subtype code. */ callout_driver = serial_driver; +#ifdef CONFIG_DEVFS_FS + callout_driver.name = "cua/%d"; +#else callout_driver.name = "cua"; +#endif callout_driver.major = TTYAUX_MAJOR; callout_driver.subtype = SERIAL_TYPE_CALLOUT; Index: shmiq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sgi/char/shmiq.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- shmiq.c 2 Jan 2002 20:42:12 -0000 1.3 +++ shmiq.c 21 Apr 2002 20:01:15 -0000 1.4 @@ -79,10 +79,8 @@ /* /dev/qcntlN attached memory regions, location and size of the event queue */ static struct { - int opened; + int opened; /* if this device has been opened */ void *shmiq_vaddr; /* mapping in kernel-land */ - spinlock_t shmiq_lock; - /* protects vaddr and opened */ int tail; /* our copy of the shmiq->tail */ int events; int mapped; @@ -330,11 +328,12 @@ size = vma->vm_end - vma->vm_start; start = vma->vm_start; - mem = vmalloc_uncached(size); - if (!mem) + lock_kernel(); + mem = (unsigned long) shmiqs [minor].shmiq_vaddr = vmalloc_uncached (size); + if (!mem) { + unlock_kernel(); return -EINVAL; - spin_lock(&shmiqs [minor].shmiq_lock); - shmiqs[minor].shmiq_vaddr = mem; + } /* Prevent the swapper from considering these pages for swap and touching them */ vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO); @@ -343,12 +342,13 @@ /* Uncache the pages */ vma->vm_page_prot = PAGE_USERIO; + error = vmap_page_range (vma->vm_start, size, mem); shmiqs [minor].tail = 0; /* Init the shared memory input queue */ - spin_unlock( &shmiqs [minor].shmiq_lock ); memset (shmiqs [minor].shmiq_vaddr, 0, size); - error = vmap_page_range (vma->vm_start, size, mem); + unlock_kernel(); + return error; } @@ -393,16 +393,13 @@ minor--; if (minor > MAX_SHMI_QUEUES) return -EINVAL; - spin_lock( &shmiqs [minor].shmiq_lock ); if (shmiqs [minor].opened) - { - spin_unlock( &shmiqs [minor].shmiq_lock ); return -EBUSY; - } + lock_kernel (); shmiqs [minor].opened = 1; shmiqs [minor].shmiq_vaddr = 0; - spin_unlock( &shmiqs [minor].shmiq_lock ); + unlock_kernel (); return 0; } @@ -432,13 +429,10 @@ if (minor > MAX_SHMI_QUEUES) return -EINVAL; - - spin_lock( &shmiqs [minor].shmiq_lock ); - if (shmiqs [minor].opened == 0) { - spin_unlock( &shmiqs [minor].shmiq_lock ); + if (shmiqs [minor].opened == 0) return -EINVAL; - } + lock_kernel (); shmiq_qcntl_fasync (-1, filp, 0); shmiqs [minor].opened = 0; shmiqs [minor].mapped = 0; @@ -446,7 +440,7 @@ shmiqs [minor].fasync = 0; vfree (shmiqs [minor].shmiq_vaddr); shmiqs [minor].shmiq_vaddr = 0; - spin_unlock( &shmiqs [minor].shmiq_lock ); + unlock_kernel (); return 0; } Index: streamable.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sgi/char/streamable.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- streamable.c 2 Jan 2002 20:42:12 -0000 1.1 +++ streamable.c 21 Apr 2002 20:01:15 -0000 1.2 @@ -1,14 +1,16 @@ -/* +/* $Id$ + * * streamable.c: streamable devices. /dev/gfx * (C) 1997 Miguel de Icaza (mi...@nu...) * * Major 10 is the streams clone device. The IRIX Xsgi server just * opens /dev/gfx and closes it inmediately. + * */ + #include <linux/fs.h> #include <linux/miscdevice.h> #include <linux/sched.h> -#include <linux/tty.h> #include <linux/kbd_kern.h> #include <linux/vt_kern.h> #include <linux/smp_lock.h> @@ -219,7 +221,9 @@ static int sgi_mouse_close (struct inode *inode, struct file *filp) { + lock_kernel(); mouse_opened = 0; + unlock_kernel(); return 0; } |
From: Paul M. <le...@us...> - 2002-04-21 20:02:44
|
Update of /cvsroot/linux-mips/linux/drivers/tc In directory usw-pr-cvs1:/tmp/cvs-serv3535/drivers/tc Modified Files: lk201.c lk201.h zs.c Log Message: More OSS syncing.. Index: lk201.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/tc/lk201.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- lk201.c 31 Oct 2001 18:53:12 -0000 1.4 +++ lk201.c 21 Apr 2002 20:01:15 -0000 1.5 @@ -4,7 +4,8 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 2001 Maciej W. Rozycki <ma...@ds...> + * Copyright (C) 1999-2002 Harald Koerfgen <hk...@we...> + * Copyright (C) 2001, 2002 Maciej W. Rozycki <ma...@ds...> */ #include <linux/config.h> @@ -20,7 +21,6 @@ #include <linux/vt_kern.h> #include <asm/keyboard.h> -#include <asm/wbflush.h> #include <asm/dec/tc.h> #include <asm/dec/machtype.h> @@ -59,7 +59,6 @@ * This is used during keyboard initialisation */ static unsigned char lk201_reset_string[] = { - LK_CMD_LEDS_ON, LK_PARAM_LED_MASK(0xf), /* show we are resetting */ LK_CMD_SET_DEFAULTS, LK_CMD_MODE(LK_MODE_RPT_DOWN, 1), LK_CMD_MODE(LK_MODE_RPT_DOWN, 2), @@ -75,27 +74,85 @@ LK_CMD_MODE(LK_MODE_RPT_DOWN, 12), LK_CMD_MODE(LK_MODE_DOWN, 13), LK_CMD_MODE(LK_MODE_RPT_DOWN, 14), - LK_CMD_ENB_RPT, LK_CMD_DIS_KEYCLK, - LK_CMD_RESUME, LK_CMD_ENB_BELL, LK_PARAM_VOLUME(4), - LK_CMD_LEDS_OFF, LK_PARAM_LED_MASK(0xf) }; static struct dec_serial* lk201kbd_info; -static int __init lk201_reset(struct dec_serial *info) +static int lk201_send(struct dec_serial *info, unsigned char ch) { - int i; - - for (i = 0; i < sizeof(lk201_reset_string); i++) - if (info->hook->poll_tx_char(info, lk201_reset_string[i])) { - printk(__FUNCTION__" transmit timeout\n"); + if (info->hook->poll_tx_char(info, ch)) { + printk(KERN_ERR "lk201: transmit timeout\n"); return -EIO; } return 0; } +static inline int lk201_get_id(struct dec_serial *info) +{ + return lk201_send(info, LK_CMD_REQ_ID); +} + +static int lk201_reset(struct dec_serial *info) +{ + int i, r; + + for (i = 0; i < sizeof(lk201_reset_string); i++) { + r = lk201_send(info, lk201_reset_string[i]); + if (r < 0) + return r; + } + return 0; +} + +static void lk201_report(unsigned char id[6]) +{ + char *report = "lk201: keyboard attached, "; + + switch (id[2]) { + case LK_STAT_PWRUP_OK: + printk(KERN_INFO "%sself-test OK\n", report); + break; + case LK_STAT_PWRUP_KDOWN: + /* The keyboard will resend the power-up ID + after all keys are released, so we don't + bother handling the error specially. Still + there may be a short-circuit inside. + */ + printk(KERN_ERR "%skey down (stuck?), code: 0x%02x\n", + report, id[3]); + break; + case LK_STAT_PWRUP_ERROR: + printk(KERN_ERR "%sself-test failure\n", report); + break; + default: + printk(KERN_ERR "%sunknown error: 0x%02x\n", + report, id[2]); + } +} + +static void lk201_id(unsigned char id[6]) +{ + /* + * Report whether there is an LK201 or an LK401 + * The LK401 has ALT keys... + */ + switch (id[4]) { + case 1: + printk(KERN_INFO "lk201: LK201 detected\n"); + break; + case 2: + printk(KERN_INFO "lk201: LK401 detected\n"); + break; + default: + printk(KERN_WARNING + "lk201: unknown keyboard detected, ID %d\n", id[4]); + printk(KERN_WARNING "lk201: ... please report to " + "<lin...@os...>\n"); + } +} + #define DEFAULT_KEYB_REP_DELAY (250/5) /* [5ms] */ #define DEFAULT_KEYB_REP_RATE 30 /* [cps] */ @@ -231,11 +288,49 @@ static void lk201_kbd_rx_char(unsigned char ch, unsigned char stat) { + static unsigned char id[6]; + static int id_i; + static int shift_state = 0; static int prev_scancode; unsigned char c = scancodeRemap[ch]; - if (!stat || stat == 4) { + if (stat && stat != 4) { + printk(KERN_ERR "lk201: keyboard receive error: 0x%02x\n", + stat); + return; + } + + /* Assume this is a power-up ID. */ + if (ch == LK_STAT_PWRUP_ID && !id_i) { + id[id_i++] = ch; + return; + } + + /* Handle the power-up sequence. */ + if (id_i) { + id[id_i++] = ch; + if (id_i == 4) { + /* OK, the power-up concluded. */ + lk201_report(id); + if (id[2] == LK_STAT_PWRUP_OK) + lk201_get_id(lk201kbd_info); + else { + id_i = 0; + printk(KERN_ERR "lk201: keyboard power-up " + "error, skipping initialization\n"); + } + } else if (id_i == 6) { + /* We got the ID; report it and start an operation. */ + id_i = 0; + lk201_id(id); + lk201_reset(lk201kbd_info); + } + return; + } + + /* Everything else is a scancode/status response. */ + id_i = 0; switch (ch) { case LK_STAT_RESUME_ERR: case LK_STAT_ERROR: @@ -279,8 +374,6 @@ handle_scancode(c, 1); break; } - } else - printk("Error reading LKx01 keyboard: 0x%02x\n", stat); tasklet_schedule(&keyboard_tasklet); } @@ -290,45 +383,16 @@ static int __init lk201_init(struct dec_serial *info) { - unsigned int ch, id = 0; - int result; - - printk("DECstation LK keyboard driver v0.04... "); - - result = lk201_reset(info); - if (result) - return result; - mdelay(10); - - /* - * Detect whether there is an LK201 or an LK401 - * The LK401 has ALT keys... - */ - info->hook->poll_tx_char(info, LK_CMD_REQ_ID); - while ((ch = info->hook->poll_rx_char(info)) > 0) - id = ch; - - switch (id) { - case 1: - printk("LK201 detected\n"); - break; - case 2: - printk("LK401 detected\n"); - break; - default: - printk("unknown keyboard, ID %d,\n", id); - printk("... please report to <lin...@os...>\n"); - } - - /* - * now we're ready - */ - info->hook->rx_char = lk201_kbd_rx_char; - + /* First install handlers. */ lk201kbd_info = info; kbd_rate = lk201kbd_rate; kd_mksound = lk201kd_mksound; + info->hook->rx_char = lk201_kbd_rx_char; + + /* Then just issue a reset -- the handlers will do the rest. */ + lk201_send(info, LK_CMD_POWER_UP); + return 0; } @@ -337,26 +401,29 @@ extern int register_zs_hook(unsigned int, struct zs_hook *); extern int unregister_zs_hook(unsigned int); + /* Maxine uses LK501 at the Access.Bus. */ + if (mips_machtype == MACH_DS5000_XX) + return; + + printk(KERN_INFO "lk201: DECstation LK keyboard driver v0.05.\n"); + if (TURBOCHANNEL) { - if (mips_machtype != MACH_DS5000_XX) { /* - * This is not a MAXINE, so: - * * kbd_init_hw() is being called before * rs_init() so just register the kbd hook * and let zs_init do the rest :-) */ if (mips_machtype == MACH_DS5000_200) - printk("LK201 Support for DS5000/200 not yet ready ...\n"); + printk(KERN_ERR "lk201: support for DS5000/200 " + "not yet ready.\n"); else if(!register_zs_hook(KEYB_LINE, &lk201_kbdhook)) unregister_zs_hook(KEYB_LINE); - } } else { /* * TODO: modify dz.c to allow similar hooks * for LK201 handling on DS2100, DS3100, and DS5000/200 */ - printk("LK201 Support for DS3100 not yet ready ...\n"); + printk(KERN_ERR "lk201: support for DS3100 not yet ready.\n"); } } Index: lk201.h =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/tc/lk201.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- lk201.h 31 Oct 2001 18:53:12 -0000 1.2 +++ lk201.h 21 Apr 2002 20:01:15 -0000 1.3 @@ -20,7 +20,7 @@ #define LK_CMD_ENB_BELL 0x23 /* enable the bell */ /* 1st param: volume */ #define LK_CMD_BELL 0xa7 /* emit a bell */ -#define LK_CMD_TMP_NORPT 0xc1 /* disable typematic */ +#define LK_CMD_TMP_NORPT 0xd1 /* disable typematic */ /* for the currently pressed key */ #define LK_CMD_ENB_RPT 0xe3 /* enable typematic */ /* for RPT_DOWN groups */ @@ -33,15 +33,15 @@ #define LK_CMD_TEST_EXIT 0x80 /* exit the factory test mode */ #define LK_CMD_SET_DEFAULTS 0xd3 /* set power-up defaults */ -#define LK_CMD_MODE(m,div) (LK_PARAM|(((div)&0xf)<<3)|m) +#define LK_CMD_MODE(m,div) (LK_PARAM|(((div)&0xf)<<3)|(((m)&0x3)<<1)) /* select the repeat mode */ /* for the selected key group */ -#define LK_CMD_MODE_AR(m,div) ((((div)&0xf)<<3)|m) +#define LK_CMD_MODE_AR(m,div) ((((div)&0xf)<<3)|(((m)&0x3)<<1)) /* select the repeat mode */ /* and the repeat register */ /* for the selected key group */ /* 1st param: register number */ -#define LK_CMD_RPT_RATE(r) (0x04|((((r)&0x3)<<1))) +#define LK_CMD_RPT_RATE(r) (0x78|(((r)&0x3)<<1)) /* set the delay and repeat rate */ /* for the selected repeat register */ /* 1st param: initial delay */ @@ -59,8 +59,8 @@ /* mode set command details, div is a key group number */ #define LK_MODE_DOWN 0x0 /* make only */ -#define LK_MODE_RPT_DOWN 0x2 /* make and typematic */ -#define LK_MODE_DOWN_UP 0x6 /* make and release */ +#define LK_MODE_RPT_DOWN 0x1 /* make and typematic */ +#define LK_MODE_DOWN_UP 0x3 /* make and release */ /* there are 4 repeat registers */ #define LK_PARAM_AR(r) (LK_PARAM|((v)&0x3)) @@ -115,6 +115,7 @@ /* the keycode follows */ #define LK_STAT_MODE_ACK 0xba /* the mode command succeeded */ +#define LK_STAT_PWRUP_ID 0x01 /* the power-up response start mark */ #define LK_STAT_PWRUP_OK 0x00 /* the power-up self test OK */ #define LK_STAT_PWRUP_KDOWN 0x3d /* a key was down during the test */ #define LK_STAT_PWRUP_ERROR 0x3e /* keyboard self test failure */ Index: zs.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/tc/zs.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- zs.c 14 Feb 2002 20:36:59 -0000 1.4 +++ zs.c 21 Apr 2002 20:01:15 -0000 1.5 @@ -6,7 +6,7 @@ * * DECstation changes * Copyright (C) 1998-2000 Harald Koerfgen - * Copyright (C) 2000,2001 Maciej W. Rozycki <ma...@ds...> + * Copyright (C) 2000, 2001, 2002 Maciej W. Rozycki <ma...@ds...> * * For the rest of the code the original Copyright applies: * Copyright (C) 1996 Paul Mackerras (Pau...@cs...) @@ -107,7 +107,8 @@ unsigned long scc1; int channel_a_offset; int channel_b_offset; - int irq; + int irq0; + int irq1; int clock; }; @@ -119,7 +120,8 @@ scc1 : SCC1, channel_a_offset : 1, channel_b_offset : 9, - irq : SERIAL, + irq0 : -1, + irq1 : -1, clock : ZS_CLOCK }; #endif @@ -129,7 +131,8 @@ scc1 : UNI_SCC1, channel_a_offset : 9, channel_b_offset : 1, - irq : BAGET_SCC_IRQ, + irq0 : BAGET_SCC_IRQ, + irq1 : BAGET_SCC_IRQ, clock : 14745000 }; #endif @@ -409,7 +412,7 @@ stat = read_zsreg(info->zs_channel, R1); ch = read_zsdata(info->zs_channel); - if (!tty && !info->hook && !info->hook->rx_char) + if (!tty && (!info->hook || !info->hook->rx_char)) continue; if (tty_break) { @@ -471,7 +474,9 @@ *tty->flip.flag_buf_ptr++ = flag; *tty->flip.char_buf_ptr++ = ch; +#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) ignore_char: +#endif } if (tty) tty_flip_buffer_push(tty); @@ -522,9 +527,9 @@ if (info->zs_channel != info->zs_chan_a) { - /* FIXEM: Check for DCD transitions */ - if (((stat ^ info->read_reg_zero) & DCD) != 0 - && info->tty && !C_CLOCAL(info->tty)) { + /* Check for DCD transitions */ + if (info->tty && !C_CLOCAL(info->tty) && + ((stat ^ info->read_reg_zero) & DCD) != 0 ) { if (stat & DCD) { wake_up_interruptible(&info->open_wait); } else if (!(info->flags & ZILOG_CALLOUT_ACTIVE)) { @@ -1719,7 +1724,7 @@ static void __init show_serial_version(void) { - printk("DECstation Z8530 serial driver version 0.05\n"); + printk("DECstation Z8530 serial driver version 0.07\n"); } /* Initialize Z8530s zs_channels @@ -1749,16 +1754,21 @@ system_base = 0xbf800000; n_chips = 2; zs_parms = &ds_parms; + zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; + zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1]; break; case MACH_DS5000_1XX: system_base = 0xbc000000; n_chips = 2; zs_parms = &ds_parms; + zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; + zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1]; break; case MACH_DS5000_XX: system_base = 0xbc000000; n_chips = 1; zs_parms = &ds_parms; + zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; break; #endif #ifdef CONFIG_BAGET_MIPS @@ -1807,7 +1817,11 @@ ZS_CHAN_IO_SIZE, "SCC"); #endif zs_soft[n_channels].zs_channel = &zs_channels[n_channels]; - zs_soft[n_channels].irq = zs_parms->irq; + /* HACK alert! */ + if (!(chip & 1)) + zs_soft[n_channels].irq = zs_parms->irq0; + else + zs_soft[n_channels].irq = zs_parms->irq1; /* * Identification of channel A. Location of channel A @@ -1932,34 +1946,30 @@ save_flags(flags); cli(); for (channel = 0; channel < zs_channels_found; ++channel) { - if (zs_soft[channel].hook && - zs_soft[channel].hook->init_channel) - (*zs_soft[channel].hook->init_channel) - (&zs_soft[channel]); + if (request_irq(zs_soft[channel].irq, rs_interrupt, SA_SHIRQ, + "scc", &zs_soft[channel])) + printk(KERN_ERR "decserial: can't get irq %d\n", + zs_soft[channel].irq); zs_soft[channel].clk_divisor = 16; zs_soft[channel].zs_baud = get_zsbaud(&zs_soft[channel]); - - if (request_irq(zs_parms->irq, rs_interrupt, SA_SHIRQ, - "SCC", &zs_soft[channel])) - printk(KERN_ERR "decserial: can't get irq %d\n", - zs_parms->irq); } - for (info = zs_chain, i = 0; info; info = info->zs_next, i++) - { - if (info->hook && info->hook->init_info) { - (*info->hook->init_info)(info); + for (info = zs_chain, i = 0; info; info = info->zs_next, i++) { + + /* Needed before interrupts are enabled. */ + info->tty = 0; + info->x_char = 0; + + if (info->hook && info->hook->init_info) continue; - } + info->magic = SERIAL_MAGIC; info->port = (int) info->zs_channel->control; info->line = i; - info->tty = 0; info->custom_divisor = 16; info->close_delay = 50; info->closing_wait = 3000; - info->x_char = 0; info->event = 0; info->count = 0; info->blocked_open = 0; @@ -1981,6 +1991,18 @@ restore_flags(flags); + for (channel = 0; channel < zs_channels_found; ++channel) { + if (zs_soft[channel].hook && + zs_soft[channel].hook->init_channel) + (*zs_soft[channel].hook->init_channel) + (&zs_soft[channel]); + } + + for (info = zs_chain, i = 0; info; info = info->zs_next, i++) { + if (info->hook && info->hook->init_info) + (*info->hook->init_info)(info); + } + return 0; } @@ -2010,31 +2032,18 @@ if(chan) { int loops = 10000; -// int nine = read_zsreg(chan, R9); - - RECOVERY_DELAY; -// write_zsreg(chan, R9, nine & ~MIE); - wbflush(); - RECOVERY_DELAY; - while (!(*(chan->control) & Tx_BUF_EMP) && --loops) - RECOVERY_DELAY; + while (loops && !(read_zsreg(chan, 0) & Tx_BUF_EMP)) + loops--; if (loops) { + write_zsdata(chan, ch); ret = 0; - *(chan->data) = ch; - wbflush(); - RECOVERY_DELAY; } else ret = -EAGAIN; -// write_zsreg(chan, R9, nine); - wbflush(); - RECOVERY_DELAY; - return ret; - } - + } else return -ENODEV; } @@ -2047,7 +2056,7 @@ if(chan) { int loops = 10000; - while((read_zsreg(chan, 0) & Rx_CH_AV) == 0) + while (loops && !(read_zsreg(chan, 0) & Rx_CH_AV)) loops--; if (loops) |
From: Paul M. <le...@us...> - 2002-04-21 19:30:12
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv29521/arch/mips/kernel Modified Files: head.S setup.c signal.c smp.c syscall.c time.c traps.c Log Message: Further OSS syncing. Index: head.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/head.S,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- head.S 21 Apr 2002 18:03:11 -0000 1.15 +++ head.S 21 Apr 2002 19:30:07 -0000 1.16 @@ -21,7 +21,7 @@ #include <asm/asm.h> #include <asm/current.h> #include <asm/offset.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/cachectl.h> Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/setup.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- setup.c 11 Apr 2002 01:46:46 -0000 1.55 +++ setup.c 21 Apr 2002 19:30:07 -0000 1.56 @@ -39,9 +39,6 @@ #include <asm/io.h> #include <asm/stackframe.h> #include <asm/system.h> -#ifdef CONFIG_SGI_IP22 -#include <asm/sgialib.h> -#endif #ifndef CONFIG_SMP struct cpuinfo_mips cpu_data[1]; @@ -267,7 +264,7 @@ mips_cpu.isa_level = MIPS_CPU_ISA_III; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR | MIPS_CPU_WATCH | - MIPS_CPU_VCE; + MIPS_CPU_VCE | MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; case PRID_IMP_VR41XX: @@ -283,13 +280,15 @@ case PRID_IMP_R4300: mips_cpu.cputype = CPU_R4300; mips_cpu.isa_level = MIPS_CPU_ISA_III; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR | MIPS_CPU_FPUEX; mips_cpu.tlbsize = 32; break; case PRID_IMP_R4600: mips_cpu.cputype = CPU_R4600; mips_cpu.isa_level = MIPS_CPU_ISA_III; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; #if 0 @@ -302,7 +301,8 @@ */ mips_cpu.cputype = CPU_R4650; mips_cpu.isa_level = MIPS_CPU_ISA_III; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; #endif @@ -336,14 +336,14 @@ mips_cpu.cputype = CPU_R4700; mips_cpu.isa_level = MIPS_CPU_ISA_III; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR; + MIPS_CPU_32FPR | MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; case PRID_IMP_TX49: mips_cpu.cputype = CPU_TX49XX; mips_cpu.isa_level = MIPS_CPU_ISA_III; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR; + MIPS_CPU_32FPR | MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; mips_cpu.icache.ways = 4; mips_cpu.dcache.ways = 4; @@ -352,28 +352,31 @@ mips_cpu.cputype = CPU_R5000; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR; + MIPS_CPU_32FPR | MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; case PRID_IMP_R5432: mips_cpu.cputype = CPU_R5432; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR | MIPS_CPU_WATCH; + MIPS_CPU_32FPR | MIPS_CPU_WATCH | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; case PRID_IMP_R5500: mips_cpu.cputype = CPU_R5500; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR | MIPS_CPU_WATCH; + MIPS_CPU_32FPR | MIPS_CPU_WATCH | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; break; case PRID_IMP_NEVADA: mips_cpu.cputype = CPU_NEVADA; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR | MIPS_CPU_DIVEC; + MIPS_CPU_32FPR | MIPS_CPU_DIVEC | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; mips_cpu.icache.ways = 2; mips_cpu.dcache.ways = 2; @@ -382,7 +385,8 @@ mips_cpu.cputype = CPU_R5900; mips_cpu.isa_level = MIPS_CPU_ISA_III; mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_FPU | - MIPS_CPU_COUNTER | MIPS_CPU_DIVEC; + MIPS_CPU_COUNTER | MIPS_CPU_DIVEC | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 48; mips_cpu.icache.ways = 2; mips_cpu.dcache.ways = 2; @@ -392,20 +396,22 @@ case PRID_IMP_R6000: mips_cpu.cputype = CPU_R6000; mips_cpu.isa_level = MIPS_CPU_ISA_II; - mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_FPU; + mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 32; break; case PRID_IMP_R6000A: mips_cpu.cputype = CPU_R6000A; mips_cpu.isa_level = MIPS_CPU_ISA_II; - mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_FPU; + mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 32; break; case PRID_IMP_RM7000: mips_cpu.cputype = CPU_RM7000; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | - MIPS_CPU_32FPR; + MIPS_CPU_32FPR | MIPS_CPU_FPUEX; /* * Undocumented RM7000: Bit 29 in the info register of * the RM7000 v2.0 indicates if the TLB has 48 or 64 @@ -420,7 +426,8 @@ mips_cpu.cputype = CPU_R8000; mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | - MIPS_CPU_FPU | MIPS_CPU_32FPR; + MIPS_CPU_FPU | MIPS_CPU_32FPR | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 384; /* has wierd TLB: 3-way x 128 */ break; case PRID_IMP_R10000: @@ -428,7 +435,8 @@ mips_cpu.isa_level = MIPS_CPU_ISA_IV; mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_FPU | MIPS_CPU_32FPR | - MIPS_CPU_COUNTER | MIPS_CPU_WATCH; + MIPS_CPU_COUNTER | MIPS_CPU_WATCH | + MIPS_CPU_FPUEX; mips_cpu.tlbsize = 64; break; case PRID_IMP_RC32334: @@ -474,7 +482,8 @@ if (config1 & (1 << 2)) mips_cpu.options |= MIPS_CPU_MIPS16; if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; + mips_cpu.options |= MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; break; case PRID_IMP_5KC: @@ -491,7 +500,8 @@ if (config1 & (1 << 2)) mips_cpu.options |= MIPS_CPU_MIPS16; if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; + mips_cpu.options |= MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; break; default: @@ -527,7 +537,8 @@ if (config1 & (1 << 2)) mips_cpu.options |= MIPS_CPU_MIPS16; if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; + mips_cpu.options |= MIPS_CPU_FPU | + MIPS_CPU_FPUEX; mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; break; default: @@ -546,7 +557,8 @@ MIPS_CPU_MCHECK; #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS /* FPU in pass1 is known to have issues. */ - mips_cpu.options |= MIPS_CPU_FPU; + mips_cpu.options |= MIPS_CPU_FPU | + MIPS_CPU_FPUEX; #endif break; default: @@ -562,8 +574,8 @@ mips_cpu.isa_level = MIPS_CPU_ISA_M64; mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4KTLB | MIPS_CPU_FPU | - MIPS_CPU_COUNTER | MIPS_CPU_DIVEC | - MIPS_CPU_MCHECK; + MIPS_CPU_FPUEX | MIPS_CPU_COUNTER | + MIPS_CPU_DIVEC | MIPS_CPU_MCHECK; mips_cpu.scache.ways = 8; break; } @@ -636,8 +648,8 @@ for (i = 0; i < boot_mem_map.nr_map; i++) { printk(" memory: %08Lx @ %08Lx ", - (unsigned long long) boot_mem_map.map[i].size, - (unsigned long long) boot_mem_map.map[i].addr); + (u64) boot_mem_map.map[i].size, + (u64) boot_mem_map.map[i].addr); switch (boot_mem_map.map[i].type) { case BOOT_MEM_RAM: printk("(usable)\n"); @@ -710,8 +722,8 @@ { void atlas_setup(void); void baget_setup(void); - void ddb_setup(void); void cobalt_setup(void); + void ddb_setup(void); void decstation_setup(void); void deskstation_setup(void); void jazz_setup(void); @@ -738,6 +750,7 @@ unsigned long tmp; unsigned long* initrd_header; #endif + int i; #ifdef CONFIG_BLK_DEV_FD Index: signal.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/signal.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- signal.c 18 Mar 2002 22:34:34 -0000 1.6 +++ signal.c 21 Apr 2002 19:30:07 -0000 1.7 @@ -17,14 +17,14 @@ #include <linux/signal.h> #include <linux/errno.h> #include <linux/wait.h> -#include <linux/ptrace.h> #include <linux/unistd.h> #include <asm/asm.h> #include <asm/bitops.h> #include <asm/cpu.h> +#include <asm/offset.h> #include <asm/pgalloc.h> -#include <asm/stackframe.h> +#include <asm/ptrace.h> #include <asm/uaccess.h> #include <asm/ucontext.h> @@ -384,14 +384,15 @@ int err = 0; u64 reg; - err |= __put_user(regs->cp0_epc, &sc->sc_pc); + reg = regs->cp0_epc; err |= __put_user(reg, &sc->sc_pc); err |= __put_user(regs->cp0_status, &sc->sc_status); #define save_gp_reg(i) { \ reg = regs->regs[i]; \ err |= __put_user(reg, &sc->sc_regs[i]); \ } while(0) - __put_user(0, &sc->sc_regs[0]); save_gp_reg(1); save_gp_reg(2); + reg = 0; err |= __put_user(reg, &sc->sc_regs[0]); + save_gp_reg(1); save_gp_reg(2); save_gp_reg(3); save_gp_reg(4); save_gp_reg(5); save_gp_reg(6); save_gp_reg(7); save_gp_reg(8); save_gp_reg(9); save_gp_reg(10); save_gp_reg(11); save_gp_reg(12); save_gp_reg(13); save_gp_reg(14); @@ -402,8 +403,8 @@ save_gp_reg(31); #undef save_gp_reg - err |= __put_user(regs->hi, &sc->sc_mdhi); - err |= __put_user(regs->lo, &sc->sc_mdlo); + reg = regs->hi; err |= __put_user(reg, &sc->sc_mdhi); + reg = regs->lo; err |= __put_user(reg, &sc->sc_mdlo); err |= __put_user(regs->cp0_cause, &sc->sc_cause); err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr); Index: smp.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/smp.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- smp.c 26 Feb 2002 17:34:14 -0000 1.15 +++ smp.c 21 Apr 2002 19:30:07 -0000 1.16 @@ -308,6 +308,7 @@ local_flush_tlb_page(vma, page); } +EXPORT_SYMBOL(smp_num_cpus); EXPORT_SYMBOL(flush_tlb_page); EXPORT_SYMBOL(cpu_data); EXPORT_SYMBOL(synchronize_irq); Index: syscall.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/syscall.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- syscall.c 17 Sep 2001 16:47:38 -0000 1.3 +++ syscall.c 21 Apr 2002 19:30:07 -0000 1.4 @@ -28,7 +28,6 @@ #include <asm/offset.h> #include <asm/ptrace.h> #include <asm/signal.h> -#include <asm/stackframe.h> #include <asm/uaccess.h> extern asmlinkage void syscall_trace(void); Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/time.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- time.c 5 Feb 2002 17:36:46 -0000 1.12 +++ time.c 21 Apr 2002 19:30:07 -0000 1.13 @@ -39,6 +39,11 @@ extern volatile unsigned long wall_jiffies; /* + * whether we emulate local_timer_interrupts for SMP machines. + */ +int emulate_local_timer_interrupt; + +/* * By default we provide the null RTC ops */ static unsigned long null_rtc_get_time(void) @@ -283,6 +288,42 @@ /* + * local_timer_interrupt() does profiling and process accounting + * on a per-CPU basis. + * + * In UP mode, it is invoked from the (global) timer_interrupt. + * + * In SMP mode, it might invoked by per-CPU timer interrupt, or + * a broadcasted inter-processor interrupt which itself is triggered + * by the global timer interrupt. + */ +void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + if (!user_mode(regs)) { + if (prof_buffer && current->pid) { + extern int _stext; + unsigned long pc = regs->cp0_epc; + + pc -= (unsigned long) &_stext; + pc >>= prof_shift; + /* + * Dont ignore out-of-bounds pc values silently, + * put them into the last histogram slot, so if + * present, they will show up as a sharp peak. + */ + if (pc > prof_len-1) + pc = prof_len-1; + atomic_inc((atomic_t *)&prof_buffer[pc]); + } + } + +#ifdef CONFIG_SMP + /* in UP mode, update_process_times() is invoked by do_timer() */ + update_process_times(user_mode(regs)); +#endif +} + +/* * high-level timer interrupt service routines. This function * is set as irqaction->handler and is invoked through do_IRQ. */ @@ -309,24 +350,6 @@ } - if(!user_mode(regs)) { - if (prof_buffer && current->pid) { - extern int _stext; - unsigned long pc = regs->cp0_epc; - - pc -= (unsigned long) &_stext; - pc >>= prof_shift; - /* - * Dont ignore out-of-bounds pc values silently, - * put them into the last histogram slot, so if - * present, they will show up as a sharp peak. - */ - if (pc > prof_len-1) - pc = prof_len-1; - atomic_inc((atomic_t *)&prof_buffer[pc]); - } - } - /* * call the generic timer interrupt handling */ @@ -359,6 +382,31 @@ if (!jiffies) { timerhi = timerlo = 0; } + +#if !defined(CONFIG_SMP) + /* + * In UP mode, we call local_timer_interrupt() to do profiling + * and process accouting. + * + * In SMP mode, local_timer_interrupt() is invoked by appropriate + * low-level local timer interrupt handler. + */ + local_timer_interrupt(0, NULL, regs); + +#else /* CONFIG_SMP */ + + if (emulate_local_timer_interrupt) { + /* + * this is the place where we send out inter-process + * interrupts and let each CPU do its own profiling + * and process accouting. + * + * Obviously we need to call local_timer_interrupt() for + * the current CPU too. + */ + panic("Not implemented yet!!!"); + } +#endif /* CONFIG_SMP */ } asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs) @@ -377,6 +425,21 @@ do_softirq(); } +asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs) +{ + int cpu = smp_processor_id(); + + irq_enter(cpu, irq); + kstat.irqs[cpu][irq]++; + + /* we keep interrupt disabled all the time */ + local_timer_interrupt(irq, NULL, regs); + + irq_exit(cpu, irq); + + if (softirq_pending(cpu)) + do_softirq(); +} /* * time_init() - it does the following things. Index: traps.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/traps.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- traps.c 26 Feb 2002 17:34:14 -0000 1.31 +++ traps.c 21 Apr 2002 19:30:07 -0000 1.32 @@ -852,6 +852,8 @@ extern char except_vec_ejtag_debug; unsigned long i; + per_cpu_trap_init(); + /* Copy the generic exception handler code to it's final destination. */ memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80); memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80); @@ -914,7 +916,7 @@ set_except_vector(12, handle_ov); set_except_vector(13, handle_tr); - if (mips_cpu.options & MIPS_CPU_FPU) + if (mips_cpu.options & MIPS_CPU_FPUEX) set_except_vector(15, handle_fpe); if (mips_cpu.options & MIPS_CPU_MCHECK) set_except_vector(24, handle_mcheck); |
From: Paul M. <le...@us...> - 2002-04-21 19:30:12
|
Update of /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic In directory usw-pr-cvs1:/tmp/cvs-serv29521/arch/mips/ite-boards/generic Modified Files: time.c Log Message: Further OSS syncing. Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic/time.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- time.c 2 Jan 2002 17:20:14 -0000 1.8 +++ time.c 21 Apr 2002 19:30:07 -0000 1.9 @@ -141,7 +141,3 @@ set_cp0_status(ALLINTS); } -void local_timer_interrupt(struct pt_regs *regs) -{ - do_IRQ(MIPS_CPU_TIMER_IRQ, regs); -} |
From: Paul M. <le...@us...> - 2002-04-21 18:03:15
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv9425/arch/mips/kernel Modified Files: entry.S head.S irq_cpu.c r2300_switch.S r4k_switch.S Log Message: Sync with OSS. Index: entry.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/entry.S,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- entry.S 19 Jan 2002 21:17:35 -0000 1.15 +++ entry.S 21 Apr 2002 18:03:11 -0000 1.16 @@ -18,7 +18,7 @@ #include <asm/errno.h> #include <asm/mipsregs.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/stackframe.h> #include <asm/processor.h> #include <asm/regdef.h> Index: head.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/head.S,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- head.S 7 Mar 2002 09:15:16 -0000 1.14 +++ head.S 21 Apr 2002 18:03:11 -0000 1.15 @@ -257,20 +257,17 @@ .comm kernelsp, NR_CPUS * 8, 8 .comm pgd_current, NR_CPUS * 8, 8 -#undef PAGE_SIZE -#define PAGE_SIZE 0x1000 - .macro page name, order=0 .globl \name -\name: .size \name, (PAGE_SIZE << \order) - .org . + (PAGE_SIZE << \order) +\name: .size \name, (_PAGE_SIZE << \order) + .org . + (_PAGE_SIZE << \order) .type \name, @object .endm .data .align 12 - page swapper_pg_dir, PGD_ORDER + page swapper_pg_dir, _PGD_ORDER page empty_bad_page, 0 page empty_bad_page_table, 0 page invalid_pte_table, 0 Index: irq_cpu.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irq_cpu.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- irq_cpu.c 2 Jan 2002 18:10:40 -0000 1.5 +++ irq_cpu.c 21 Apr 2002 18:03:11 -0000 1.6 @@ -2,8 +2,6 @@ * Copyright 2001 MontaVista Software Inc. * Author: Jun Sun, js...@mv... or js...@ju... * - * Copyright (C) 2001 Ralf Baechle - * * This file define the irq handler for MIPS CPU interrupts. * * This program is free software; you can redistribute it and/or modify it @@ -15,51 +13,31 @@ /* * Almost all MIPS CPUs define 8 interrupt sources. They are typically * level triggered (i.e., cannot be cleared from CPU; must be cleared from - * device). The first two are software interrupts which we don't really - * use or support. The last one is usually cpu timer interrupt if a counter - * register is present. - * - * Don't even think about using this on SMP. You have been warned. + * device). The first two are software interrupts. The last one is + * usually the CPU timer interrupt if counter register is present or, for + * CPUs with an external FPU, by convention it's the FPU exception interrupt. * * This file exports one global function: - * mips_cpu_irq_init(u32 irq_base); + * void mips_cpu_irq_init(int irq_base); */ +#include <linux/init.h> #include <linux/interrupt.h> -#include <linux/types.h> #include <linux/kernel.h> +#include <asm/irq_cpu.h> #include <asm/mipsregs.h> -#include <asm/system.h> -static int mips_cpu_irq_base; - -static inline void unmask_mips_irq(unsigned int irq) -{ - clear_cp0_cause(0x100 << (irq - mips_cpu_irq_base)); - set_cp0_status(0x100 << (irq - mips_cpu_irq_base)); -} - -static inline void mask_mips_irq(unsigned int irq) -{ - clear_cp0_status(0x100 << (irq - mips_cpu_irq_base)); -} +static int mips_cpu_irq_base = -1; -static inline void mips_cpu_irq_enable(unsigned int irq) +static void mips_cpu_irq_enable(unsigned int irq) { - unsigned long flags; - - local_irq_save(flags); - unmask_mips_irq(irq); - local_irq_restore(flags); + clear_cp0_cause( 1 << (irq - mips_cpu_irq_base + 8)); + set_cp0_status(1 << (irq - mips_cpu_irq_base + 8)); } static void mips_cpu_irq_disable(unsigned int irq) { - unsigned long flags; - - local_irq_save(flags); - mask_mips_irq(irq); - local_irq_restore(flags); + clear_cp0_status(1 << (irq - mips_cpu_irq_base + 8)); } static unsigned int mips_cpu_irq_startup(unsigned int irq) @@ -71,26 +49,25 @@ #define mips_cpu_irq_shutdown mips_cpu_irq_disable -/* - * While we ack the interrupt interrupts are disabled and thus we don't need - * to deal with concurrency issues. Same for mips_cpu_irq_end. - */ static void mips_cpu_irq_ack(unsigned int irq) { - /* Only necessary for soft interrupts */ + /* although we attemp to clear the IP bit in cause reigster, I think + * usually it is cleared by device (irq source) + */ clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8)); - mask_mips_irq(irq); + /* disable this interrupt - so that we safe proceed to the handler */ + mips_cpu_irq_disable(irq); } static void mips_cpu_irq_end(unsigned int irq) { - if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) - unmask_mips_irq(irq); + if(!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) + mips_cpu_irq_enable(irq); } static hw_irq_controller mips_cpu_irq_controller = { - "CPU_irq", + "MIPS", mips_cpu_irq_startup, mips_cpu_irq_shutdown, mips_cpu_irq_enable, @@ -100,9 +77,10 @@ NULL /* no affinity stuff for UP */ }; -void mips_cpu_irq_init(u32 irq_base) + +void __init mips_cpu_irq_init(int irq_base) { - u32 i; + int i; for (i = irq_base; i < irq_base + 8; i++) { irq_desc[i].status = IRQ_DISABLED; Index: r2300_switch.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/r2300_switch.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- r2300_switch.S 4 Jan 2002 18:04:53 -0000 1.4 +++ r2300_switch.S 21 Apr 2002 18:03:11 -0000 1.5 @@ -17,7 +17,7 @@ #include <asm/mipsregs.h> #include <asm/offset.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/stackframe.h> Index: r4k_switch.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/r4k_switch.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- r4k_switch.S 4 Jan 2002 18:04:53 -0000 1.4 +++ r4k_switch.S 21 Apr 2002 18:03:11 -0000 1.5 @@ -18,7 +18,7 @@ #include <asm/mipsregs.h> #include <asm/offset.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgtable-bits.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/stackframe.h> |
From: Paul M. <le...@us...> - 2002-04-21 18:03:14
|
Update of /cvsroot/linux-mips/linux/Documentation In directory usw-pr-cvs1:/tmp/cvs-serv9425/Documentation Modified Files: Configure.help Log Message: Sync with OSS. Index: Configure.help =================================================================== RCS file: /cvsroot/linux-mips/linux/Documentation/Configure.help,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Configure.help 18 Jan 2002 21:22:02 -0000 1.10 +++ Configure.help 21 Apr 2002 18:03:10 -0000 1.11 @@ -2010,12 +2010,6 @@ workstations). Say Y here to make sure it gets initialized correctly before the Linux kernel tries to talk to the controller. -Kernel floating-point instruction emulation -CONFIG_MIPS_FPU_EMULATOR - This option enables the MIPS software floatingpoint support. Due to - the way floating point works you should always enable this option - unless you exactly know what you're doing. - SGI PROM Console Support CONFIG_SGI_PROM_CONSOLE Say Y here to set up the boot console on serial port 0. @@ -2454,6 +2448,14 @@ If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say `N'. +AH/ESP match support +CONFIG_IP_NF_MATCH_AH_ESP + These two match extensions (`ah' and `esp') allow you to match a + range of SPIs inside AH or ESP headers of IPSec packets. + + If you want to compile it as a module, say M here and read + Documentation/modules.txt. If unsure, say `N'. + TOS match support CONFIG_IP_NF_MATCH_TOS TOS matching allows you to match packets based on the Type Of @@ -2621,6 +2623,19 @@ If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say `N'. +ULOG target support +CONFIG_IP_NF_TARGET_ULOG + This option adds a `ULOG' target, which allows you to create rules in + any iptables table. The packet is passed to a userspace logging + daemon using netlink multicast sockets; unlike the LOG target + which can only be viewed through syslog. + + The apropriate userspace logging daemon (ulogd) may be obtained from + http://www.gnumonks.org/projects/ulogd + + If you want to compile it as a module, say M here and read + Documentation/modules.txt. If unsure, say `N'. + LOG target support CONFIG_IP_NF_TARGET_LOG This option adds a `LOG' target, which allows you to create rules in @@ -2677,6 +2692,23 @@ If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say `N'. +IPV6 queue handler (EXPERIMENTAL) +CONFIG_IP6_NF_QUEUE + + This option adds a queue handler to the kernel for IPv6 + packets which lets us to receive the filtered packets + with QUEUE target using libiptc as we can do with + the IPv4 now. + + (C) Fernando Anton 2001 + IPv64 Project - Work based in IPv64 draft by Arturo Azcorra. + Universidad Carlos III de Madrid + Universidad Politecnica de Alcala de Henares + email: fa...@it... + + If you want to compile it as a module, say M here and read + Documentation/modules.txt. If unsure, say `N'. + Owner match support CONFIG_IP6_NF_MATCH_OWNER Packet owner matching allows you to match locally-generated packets @@ -3137,6 +3169,13 @@ via the file /proc/rtc and its behaviour is set by various ioctls on /dev/rtc. +Indy/I2 Hardware Watchdog +CONFIG_INDYDOG + Hardwaredriver for the Indy's/I2's watchdog. This is a + watchdog timer that will reboot the machine after a 60 second + timer expired and no process has written to /dev/watchdog during + that time. + Support the Bell Technologies HUB6 card CONFIG_HUB6 Say Y here to enable support in the dumb serial driver to support @@ -3213,6 +3252,16 @@ You should say Y here if you use XFree86 3.3.6 or 4.x and want to use GLX or DRI. If unsure, say N. +Intel 460GX support +CONFIG_AGP_I460 + This option gives you AGP support for the Intel 460GX chipset. This + chipset, the first to support Intel Itanium processors, is new and + this option is correspondingly a little experimental. + + If you don't have a 460GX based machine (such as BigSur) with an AGP + slot then this option isn't going to do you much good. If you're + dying to do Direct Rendering on IA-64, this is what you're looking for. + Intel I810/I815 DC100/I810e support CONFIG_AGP_I810 This option gives you AGP support for the Xserver on the Intel 810 @@ -3821,6 +3870,7 @@ - "Pentium-4" for the Intel Pentium 4. - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). + - "Elan" for the AMD Elan family (Elan SC400/SC410). - "Crusoe" for the Transmeta Crusoe series. - "Winchip-C6" for original IDT Winchip. - "Winchip-2" for IDT Winchip 2. @@ -4077,6 +4127,19 @@ module will be called rivafb.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. +Trident Blade/Image support +CONFIG_FB_TRIDENT + This driver is supposed to support graphics boards with the + Trident CyberXXXX/Image/CyberBlade chips mostly found in laptops + but also on some motherboards.Read <file:Documentation/fb/tridentfb.txt> + + Say Y if you have such a graphics board. + + The driver is also available as a module ( = code which can be + inserted and removed from the running kernel whenever you want). The + module will be called rivafb.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. + ATI Mach64 display support CONFIG_FB_ATY This driver supports graphics boards with the ATI Mach64 chips. @@ -4358,11 +4421,9 @@ Matrox unified accelerated driver CONFIG_FB_MATROX - Say Y here if you have a Matrox Millennium, Matrox Millennium II, - Matrox Mystique, Matrox Mystique 220, Matrox Productiva G100, Matrox - Mystique G200, Matrox Millennium G200, Matrox Marvel G200 video, - Matrox G400 or G450 card in your box. At this time, support for the - G100 is untested and support for G450 is highly experimental. + Say Y here if you have a Matrox Millennium, Millennium II, Mystique, + Mystique 220, Productiva G100, Mystique G200, Millennium G200, + Marvel G200 video, G400, G450, or G550 card in your box. This driver is also available as a module ( = code which can be inserted and removed from the running kernel whenever you want). @@ -4389,12 +4450,12 @@ packed pixel and 32 bpp packed pixel. You can also use font widths different from 8. -Matrox G100/G200/G400/G450 support +Matrox G100/G200/G400/G450/G550 support CONFIG_FB_MATROX_G100 - Say Y here if you have a Matrox G100, G200, G400 or G450 based - video card. If you select "Advanced lowlevel driver options", you - should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed - pixel and 32 bpp packed pixel. You can also use font widths + Say Y here if you have a Matrox G100, G200, G400, G450, or G550 + based video card. If you select "Advanced lowlevel driver options", + you should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp + packed pixel and 32 bpp packed pixel. You can also use font widths different from 8. If you need support for G400 secondary head, you must first say Y to @@ -4402,6 +4463,9 @@ section, and then to "Matrox I2C support" and "G400 second head support" here in the framebuffer section. + If you need support for G450 or G550 secondary head, say Y to + "Matrox G450/G550 second head support" below. + Matrox I2C support CONFIG_FB_MATROX_I2C This drivers creates I2C buses which are needed for accessing the @@ -4448,7 +4512,7 @@ Matrox G450 second head support CONFIG_FB_MATROX_G450 Say Y or M here if you want to use a secondary head (meaning two - monitors in parallel) on G450. + monitors in parallel) on G450 or G550. If you compile it as module, two modules are created, matroxfb_crtc2.o and matroxfb_g450.o. Both modules are needed if you @@ -4460,6 +4524,9 @@ primary and secondary head outputs. Secondary head driver always start in 640x480 resolution and you must use fbset to change it. + Note on most G550 cards the analog output is the secondary head, + so you will need to say Y here to use it. + Also do not forget that second head supports only 16 and 32 bpp packed pixels, so it is a good idea to compile them into the kernel too. You can use only some font widths, as the driver uses generic @@ -10806,6 +10873,15 @@ More specific information and updates are available from <http://www.scyld.com/network/natsemi.html>. +NatSemi workaround for high errors +CONFIG_NATSEMI_CABLE_MAGIC + Some systems see lots of errors with NatSemi ethernet controllers + on certain cables. If you are seeing lots of errors, try turning + this option on. Some boards have incorrect values for supporting + resistors that can cause this change to break. If you turn this + option on and your network suddenly stops working, turn this + option off. + SK_G16 support CONFIG_SK_G16 If you have a network (Ethernet) card of this type, say Y and read @@ -12427,6 +12503,18 @@ you can still use it for storage or swap by using this driver to present it to the system as a Memory Technology Device. +DEC MS02-NV NVRAM module support +CONFIG_MTD_MS02NV + This is a MTD driver for the DEC's MS02-type battery backed-up NVRAM + module. The module was originally meant as an NFS accelerator. Say Y + here if you have a DECstation 5000/2x0 or a DECsystem 5900 equipped + with such a module. + + If you want to compile this driver as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called ms02-nv.o. + Debugging RAM test driver CONFIG_MTD_MTDRAM This enables a test MTD device driver which uses vmalloc() to @@ -12916,6 +13004,17 @@ The module will be called visor.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. +USB Compaq iPAQ Driver +CONFIG_USB_SERIAL_IPAQ + Say Y here if you want to connect to your Compaq iPAQ running + Windows CE 3.0 using a USB autosync cable. For information on using + the driver, read <file:Documentation/usb/usb-serial.txt>. + + This code is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called ipaq.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. + USB IR Dongle Serial Driver CONFIG_USB_SERIAL_IR Say Y here if you want to enable simple serial support for USB IrDA @@ -13125,6 +13224,22 @@ The module will be called io_edgeport.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. +USB PalmConnect (and other KL5KUSB105-based) Single Port Serial Driver +CONFIG_USB_SERIAL_KLSI + Say Y here if you want to use a KL5KUSB105 - based single port + serial adapter. The most widely known -- and currently the only + tested -- device in this category is the PalmConnect USB Serial + adapter sold by Palm Inc. for use with their Palm III and Palm V + series PDAs. + + Please read <file:Documentation/usb/usb-serial.txt> for more + information. + + This code is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called kl5kusb105.o. If you want to compile it as + a module, say M here and read <file:Documentation/modules.txt>. + USB Serial Converter verbose debug CONFIG_USB_SERIAL_DEBUG Say Y here if you want verbose debug messages from the USB Serial @@ -13231,6 +13346,54 @@ The module will be called pwc.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. +USB SE401 Camera support +CONFIG_USB_SE401 + Say Y here if you want to connect this type of camera to your + computer's USB port. See <file:Documentation/usb/se401.txt> for more + information and for a list of supported cameras. + + This driver uses the Video For Linux API. You must say Y or M to + "Video For Linux" (under Multimedia Devices) to use this driver. + Information on this API and pointers to "v4l" programs may be found + on the WWW at <http://roadrunner.swansea.uk.linux.org/v4l.shtml>. + + This code is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called se401.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. + +USB STV680 (Pencam) Camera support +CONFIG_USB_STV680 + Say Y here if you want to connect this type of camera to your + computer's USB port. This includes the Pencam line of cameras. + See <file:Documentation/usb/stv680.txt> for more information and for + a list of supported cameras. + + This driver uses the Video For Linux API. You must say Y or M to + "Video For Linux" (under Multimedia Devices) to use this driver. + Information on this API and pointers to "v4l" programs may be found + on the WWW at <http://roadrunner.swansea.uk.linux.org/v4l.shtml>. + + This code is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called stv680.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. + +Vicam +CONFIG_USB_VICAM + Say Y here if you have 3com homeconnect camera (vicam). + + This driver uses the Video For Linux API. You must say Y or M to + "Video For Linux" (under Multimedia Devices) to use this driver. + Information on this API and pointers to "v4l" programs may be found + on the WWW at <http://roadrunner.swansea.uk.linux.org/v4l.shtml>. + + This code is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called vicam.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. + + Pegasus/Pegasus II based USB-Ethernet device support CONFIG_USB_PEGASUS Say Y here if you know you have Pegasus or Pegasus II based adapter. @@ -14820,6 +14983,18 @@ Say Y here if you would like to be able to read the hard disk partition table format used by SGI machines. +Intel EFI GUID partition support +CONFIG_EFI_PARTITION + Say Y here if you would like to use hard disks under Linux which + were partitioned using EFI GPT. Presently only useful on the + IA-64 platform. + +/dev/guid support (EXPERIMENTAL) +CONFIG_DEVFS_GUID + Say Y here if you would like to access disks and partitions by + their Globally Unique Identifiers (GUIDs) which will appear as + symbolic links in /dev/guid. + Ultrix partition table support CONFIG_ULTRIX_PARTITION Say Y here if you would like to be able to read the hard disk @@ -15094,7 +15269,7 @@ Currently, the valid values are: big5, cp437, cp737, cp775, cp850, cp852, cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp932, cp936, - cp949, cp950, cp1251, cp1255, euc-jp, euc-kr, gb2312, iso8859-1, + cp949, cp950, cp1250, cp1251, cp1255, euc-jp, euc-kr, gb2312, iso8859-1, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-9, iso8859-13, iso8859-14, iso8859-15, koi8-r, koi8-ru, koi8-u, sjis, tis-620, utf8. @@ -15334,6 +15509,16 @@ say Y here if you want to include the DOS codepage for Traditional Chinese(Big5). +Central European (Codepage 1250) +CONFIG_NLS_CODEPAGE_1250 + If you want to display filenames with native language characters + from the Microsoft FAT file system family or from JOLIET CDROMs + correctly on the screen, you need to include the appropriate + input/output character sets. Say Y here for the Windows CP-1250 + character set, which works for most Latin-written Slavic and Central + European languages: Czech, German, Hungarian, Polish, Rumanian, Croatian, + Slovak, Slovene. + NLS ISO 8859-1 (Latin 1; Western European Languages) CONFIG_NLS_ISO8859_1 If you want to display filenames with native language characters @@ -15604,13 +15789,10 @@ Support for PMU-based PowerMacs CONFIG_ADB_PMU - On the PowerBook 3400 and 2400, the PMU is a 6805 microprocessor - core whose primary function is to control battery charging and - system power. The PMU also controls the ADB (Apple Desktop Bus) - which connects to the keyboard and mouse, as well as the - non-volatile RAM and the RTC (real time clock) chip. Say Y to - enable support for this device; you should do so if your machine - is one of these PowerBooks. + This provides support for PMU based Power Macintosh systems. This + includes all PowerBooks and all AGP-based machines. + + If unsure say Y. Include MacIO ADB driver CONFIG_ADB_MACIO @@ -17033,22 +17215,6 @@ will issue the hlt instruction if nothing is to be done, thereby sending the processor to sleep and saving power. -USB SE401 Camera support -CONFIG_USB_SE401 - Say Y here if you want to connect this type of camera to your - computer's USB port. See <file:Documentation/usb/se401.txt> for more - information and for a list of supported cameras. - - This driver uses the Video For Linux API. You must say Y or M to - "Video For Linux" (under Multimedia Devices) to use this driver. - Information on this API and pointers to "v4l" programs may be found - on the WWW at <http://roadrunner.swansea.uk.linux.org/v4l.shtml>. - - This code is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called se401.o. If you want to compile it as a - module, say M here and read <file:Documentation/modules.txt>. - ACPI support CONFIG_ACPI ACPI/OSPM support for Linux is currently under development. As such, @@ -20445,7 +20611,7 @@ <file:Documentation/modules.txt>. PowerMac DMA sound support -CONFIG_DMASOUND_AWACS +CONFIG_DMASOUND_PMAC If you want to use the internal audio of your PowerMac in Linux, answer Y to this question. This will provide a Sun-like /dev/audio, compatible with the Linux/i386 sound system. Otherwise, say N. @@ -20705,6 +20871,14 @@ have it autoloaded. The act of removing the module shuts down the sound hardware for more power savings. +APM emulation +CONFIG_PMAC_APM_EMU + This driver provides an emulated /dev/apm_bios and /proc/apm. The + first one is mostly intended for XFree to sleep & wakeup properly, + the second ones provides some battery informations to allow existing + APM utilities to work. It provides less useful informations than + tools specifically designed for PowerBooks or /proc/pmu/battery_x + Backlight control for LCD screens CONFIG_PMAC_BACKLIGHT Say Y here to build in code to manage the LCD backlight on a @@ -20783,7 +20957,7 @@ End of life: mid 2001 (?) URL: <http://www.tz-mikroelektronik.de/ServiceModule/index.html> - HERMES: + HERMES_PRO: Hermes-Pro ISDN/LAN router with integrated 8 x hub Manufacturer: Multidata Gesellschaft für Datentechnik und Informatik <http://www.multidata.de/> @@ -21651,24 +21825,18 @@ If you want to use the produced kernel to IPL directly from a device, you have to merge a bootsector specific to the device into the first bytes of the kernel. You will have to select the - IPL device. + IPL device on another question, that pops up, when you select + CONFIG_IPL. -# Choice: s390_ipl -IPL from a S/390 tape unit +IPL from a /390 tape unit CONFIG_IPL_TAPE Select this option if you want to IPL the image from a Tape. IPL from a virtual card reader emulated by VM/ESA -CONFIG_IPL_RDR_VM +CONFIG_IPL_VM Select this option if you are running under VM/ESA and want to IPL the image from the emulated card reader. -IPL from a real card reader -CONFIG_IPL_RDR - Select this option if you want to IPL the image from a real - card reader. Maybe you still got one and want to try. We didn't - test. - Support for DASD hard disks CONFIG_DASD Enable this option if you want to access DASDs directly utilizing @@ -23664,12 +23832,23 @@ HP-simulator For the HP simulator (<http://software.hp.com/ia64linux/>). - SN1-simulator For the SGI SN1 simulator. + SN1 For SGI SN1 Platforms. + SN2 For SGI SN2 Platforms. DIG-compliant For DIG ("Developer's Interface Guide") compliant system. If you don't know what to do, choose "generic". +CONFIG_IA64_SGI_SN_SIM + Build a kernel that runs on both the SGI simulator AND on hardware. + There is a very slight performance penalty on hardware for including this + option. + +CONFIG_IA64_SGI_SN_DEBUG + This enables addition debug code that helps isolate + platform/kernel bugs. There is a small but measurable performance + degradation when this option is enabled. + # Choice: pagesize Kernel page size CONFIG_IA64_PAGE_SIZE_4KB @@ -23687,53 +23866,13 @@ If you don't know what to do, choose 8KB. -Enable Itanium A-step specific code -CONFIG_ITANIUM_ASTEP_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with an A-step CPU. You have an A-step CPU if the "revision" field - in /proc/cpuinfo is 0. - Enable Itanium B-step specific code CONFIG_ITANIUM_BSTEP_SPECIFIC Select this option to build a kernel for an Itanium prototype system - with a B-step CPU. You have a B-step CPU if the "revision" field in - /proc/cpuinfo has a value in the range from 1 to 4. - -Enable Itanium B0-step specific code -CONFIG_ITANIUM_B0_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with a B0-step CPU. You have a B0-step CPU if the "revision" field - in /proc/cpuinfo is 1. - -Enable Itanium C-step specific code -CONFIG_ITANIUM_CSTEP_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with a C-step CPU. You have a C-step CPU if the "revision" field in - /proc/cpuinfo is in the range of 5 to 8. - -Enable Itanium B1-step specific code -CONFIG_ITANIUM_B1_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with a B1-step CPU. You have a B1-step CPU if the "revision" field - in /proc/cpuinfo is 2. - -Enable Itanium B2-step specific code -CONFIG_ITANIUM_B2_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with a B2-step CPU. You have a B2-step CPU if the "revision" field - in /proc/cpuinfo is 3. - -Enable Itanium C0-step specific code -CONFIG_ITANIUM_C0_SPECIFIC - Select this option to build a kernel for an Itanium prototype system - with a C0-step CPU. You have a C0-step CPU if the "revision" field - in /proc/cpuinfo is 5. - -Force interrupt redirection -CONFIG_IA64_HAVE_IRQREDIR - Select this option if you know that your system has the ability to - redirect interrupts to different CPUs. Select N here if you're - unsure. + with a B-step CPU. Only B3 step CPUs are supported. You have a B3-step + CPU if the "revision" field in /proc/cpuinfo is equal to 4. If the + "revision" field shows a number bigger than 4, you do not have to turn + on this option. Enable IA-64 Machine Check Abort CONFIG_IA64_MCA @@ -23802,6 +23941,15 @@ To use this option, you have to check that the "/proc file system support" (CONFIG_PROC_FS) is enabled, too. +/proc/efi/vars support +CONFIG_EFI_VARS + If you say Y here, you are able to get EFI (Extensible Firmware + Interface) variable information in /proc/efi/vars. You may read, + write, create, and destroy EFI variables through this interface. + + To use this option, you have to check that the "/proc file system + support" (CONFIG_PROC_FS) is enabled, too. + Kernel support for IA-32 emulation CONFIG_IA32_SUPPORT IA64 processors can run IA32 (that is, x86) binaries by emulating @@ -24272,6 +24420,16 @@ If you are using GDB for remote debugging over a serial port and would like kernel messages to be formatted into GDB $O packets so that GDB prints them as program output, say 'Y'. + +802.1Q VLAN Support +CONFIG_VLAN_8021Q + Select this and you will be able to create 802.1Q VLAN interfaces on your + ethernet interfaces. 802.1Q VLAN supports almost everything a regular + ethernet interface does, including firewalling, bridging, and of course + IP traffic. You will need the 'vconfig' tool from the VLAN project in + order to effectively use VLANs. See the VLAN web page for more + information: http://www.candelatech.com/~greear/vlan.html If unsure, + you can safely say 'N'. # # A couple of things I keep forgetting: |
From: Paul M. <le...@us...> - 2002-04-21 18:03:14
|
Update of /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120 In directory usw-pr-cvs1:/tmp/cvs-serv9425/arch/mips/galileo-boards/ev64120 Modified Files: int-handler.S Log Message: Sync with OSS. Index: int-handler.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120/int-handler.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- int-handler.S 2 Jan 2002 18:01:13 -0000 1.3 +++ int-handler.S 21 Apr 2002 18:03:11 -0000 1.4 @@ -11,6 +11,7 @@ #include <asm/stackframe.h> /* + * galileo_handle_int - * We check for the timer first, then check PCI ints A and D. * Then check for serial IRQ and fall through. */ @@ -21,66 +22,93 @@ SAVE_ALL CLI .set at + mfc0 t0,CP0_CAUSE + mfc0 t2,CP0_STATUS - mfc0 t0, CP0_CAUSE - mfc0 t2, CP0_STATUS - - and t0, t2 + and t0,t2 - .set noreorder - andi t1, t0, STATUSF_IP4 /* int2 hardware line (timer) */ - andi t2, t0, STATUSF_IP2 /* int0 hardware line */ - bnez t1, ll_galileo_irq - andi t1, t0, STATUSF_IP5 /* int3 hardware line */ - bnez t2, ll_pci_intA - andi t2, t0, STATUSF_IP6 /* int4 hardware line */ - bnez t1, ll_pci_intD - andi t1, t0, STATUSF_IP7 /* compare int */ - bnez t2, ll_serial_irq - nop - bnez t1, ll_compare_irq + andi t1,t0,STATUSF_IP4 /* int2 hardware line (timer) */ + bnez t1,ll_galileo_irq + andi t1,t0,STATUSF_IP2 /* int0 hardware line */ + bnez t1,ll_pci_intA + andi t1,t0,STATUSF_IP5 /* int3 hardware line */ + bnez t1,ll_pci_intD + andi t1,t0,STATUSF_IP6 /* int4 hardware line */ + bnez t1,ll_serial_irq + andi t1,t0,STATUSF_IP7 /* compare int */ + bnez t1,ll_compare_irq nop - .set reorder + /* wrong alarm or masked ... */ j spurious_interrupt + nop END(galileo_handle_int) + .align 5 -ll_galileo_irq: li a0, 4 - move a1, sp + .set reorder +ll_galileo_irq: + li a0,4 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop .align 5 -ll_compare_irq: li a0, 7 - move a1, sp + .set reorder +ll_compare_irq: + li a0,7 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop .align 5 -ll_pci_intA: move a0, sp + .set reorder +ll_pci_intA: + move a0,sp jal pci_intA + nop j ret_from_irq + nop #if 0 .align 5 -ll_pci_intB: move a0, sp + .set reorder +ll_pci_intB: + move a0,sp jal pci_intB + nop j ret_from_irq + nop .align 5 -ll_pci_intC: move a0, sp + .set reorder +ll_pci_intC: + move a0,sp jal pci_intC + nop j ret_from_irq + nop #endif .align 5 -ll_pci_intD: move a0, sp + .set reorder +ll_pci_intD: + move a0,sp jal pci_intD + nop j ret_from_irq + nop .align 5 -ll_serial_irq: li a0, 6 - move a1, sp + .set reorder +ll_serial_irq: + li a0,6 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop |
From: Paul M. <le...@us...> - 2002-04-21 18:03:14
|
Update of /cvsroot/linux-mips/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv9425/arch/mips Modified Files: config.in Log Message: Sync with OSS. Index: config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/config.in,v retrieving revision 1.92 retrieving revision 1.93 diff -u -d -r1.92 -r1.93 --- config.in 2 Apr 2002 22:59:38 -0000 1.92 +++ config.in 21 Apr 2002 18:03:11 -0000 1.93 @@ -3,6 +3,7 @@ # see Documentation/kbuild/config-language.txt. # define_bool CONFIG_MIPS y +define_bool CONFIG_MIPS32 y mainmenu_name "Linux Kernel Configuration" @@ -116,6 +117,8 @@ define_bool CONFIG_SBUS n if [ "$CONFIG_DECSTATION" = "y" ]; then + define_bool CONFIG_IRQ_CPU y + define_bool CONFIG_NEW_IRQ y define_bool CONFIG_NONCOHERENT_IO y fi @@ -170,8 +173,8 @@ define_bool CONFIG_OLD_TIME_C y fi if [ "$CONFIG_MIPS_ATLAS" = "y" ]; then - define_bool CONFIG_NEW_TIME_C y define_bool CONFIG_NEW_IRQ y + define_bool CONFIG_NEW_TIME_C y define_bool CONFIG_NONCOHERENT_IO y define_bool CONFIG_PCI y define_bool CONFIG_SWAP_IO_SPACE y @@ -712,7 +715,10 @@ source drivers/block/Config.in if [ "$CONFIG_BLK_DEV_INITRD" = "y" ]; then + mainmenu_option next_comment + comment 'MIPS initrd options' bool ' Embed root filesystem ramdisk into the kernel' CONFIG_EMBEDDED_RAMDISK + endmenu fi source drivers/md/Config.in |