You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(135) |
Nov
(123) |
Dec
(83) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(244) |
Feb
(72) |
Mar
(221) |
Apr
(91) |
May
(104) |
Jun
(93) |
Jul
(78) |
Aug
(1) |
Sep
(1) |
Oct
(29) |
Nov
(98) |
Dec
(20) |
2003 |
Jan
|
Feb
(21) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(18) |
Sep
(18) |
Oct
(23) |
Nov
(12) |
Dec
(6) |
2004 |
Jan
(2) |
Feb
(32) |
Mar
|
Apr
(12) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(9) |
Sep
|
Oct
(15) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
(2) |
Mar
(11) |
Apr
(6) |
May
(1) |
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(2) |
Mar
|
Apr
(25) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
(2) |
Dec
(2) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(1) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
From: James S. <jsi...@us...> - 2001-10-29 00:11:31
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/s390x/mm In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/s390x/mm Modified Files: fault.c Log Message: Synced to 2.4.13 Index: fault.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/s390x/mm/fault.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- fault.c 2001/09/02 23:14:23 1.1 +++ fault.c 2001/10/29 00:10:58 1.2 @@ -4,6 +4,7 @@ * S390 version * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Author(s): Hartmut Penner (hp...@de...) + * Ulrich Weigand (uwe...@de...) * * Derived from "arch/i386/mm/fault.c" * Copyright (C) 1995 Linus Torvalds @@ -21,6 +22,7 @@ #include <linux/mm.h> #include <linux/smp.h> #include <linux/smp_lock.h> +#include <linux/init.h> #include <asm/system.h> #include <asm/uaccess.h> @@ -32,6 +34,7 @@ #endif extern void die(const char *,struct pt_regs *,long); +static void force_sigsegv(struct task_struct *tsk, int code, void *address); /* * This routine handles page faults. It determines the address, @@ -52,19 +55,32 @@ unsigned long address; unsigned long fixup; int write; - unsigned long psw_mask; - unsigned long psw_addr; int si_code = SEGV_MAPERR; int kernel_address = 0; - /* - * get psw mask of Program old psw to find out, - * if user or kernel mode - */ + tsk = current; + mm = tsk->mm; + + /* + * Check for low-address protection. This needs to be treated + * as a special case because the translation exception code + * field is not guaranteed to contain valid data in this case. + */ + if ((error_code & 0xff) == 4 && !(S390_lowcore.trans_exc_code & 4)) { - psw_mask = S390_lowcore.program_old_psw.mask; - psw_addr = S390_lowcore.program_old_psw.addr; + /* Low-address protection hit in kernel mode means + NULL pointer write access in kernel mode. */ + if (!(regs->psw.mask & PSW_PROBLEM_STATE)) { + address = 0; + kernel_address = 1; + goto no_context; + } + /* Low-address protection hit in user mode 'cannot happen'. */ + die ("Low-address protection", regs, error_code); + do_exit(SIGKILL); + } + /* * get the failing address * more specific the segment and page table portion of @@ -73,11 +89,6 @@ address = S390_lowcore.trans_exc_code&-4096L; - tsk = current; - mm = tsk->mm; - - if (in_interrupt() || !mm) - goto no_context; /* * Check which address space the address belongs to @@ -108,6 +119,7 @@ } } die("page fault via unknown access register", regs, error_code); + do_exit(SIGKILL); break; case 2: /* Secondary Segment Table Descriptor */ @@ -116,6 +128,11 @@ break; } + /* + * Check whether we have a user MM in the first place. + */ + if (in_interrupt() || !mm) + goto no_context; /* * When we get here, the fault happened in the current @@ -125,10 +142,8 @@ down_read(&mm->mmap_sem); vma = find_vma(mm, address); - if (!vma) { - printk("no vma for address %lX\n",address); + if (!vma) goto bad_area; - } if (vma->vm_start <= address) goto good_area; if (!(vma->vm_flags & VM_GROWSDOWN)) @@ -158,6 +173,7 @@ goto bad_area; } + survive: /* * If for any reason at all we couldn't handle the fault, * make sure we exit gracefully rather than endlessly redo @@ -187,8 +203,7 @@ up_read(&mm->mmap_sem); /* User mode accesses just cause a SIGSEGV */ - if (psw_mask & PSW_PROBLEM_STATE) { - struct siginfo si; + if (regs->psw.mask & PSW_PROBLEM_STATE) { tsk->thread.prot_addr = address; tsk->thread.trap_no = error_code; #ifndef CONFIG_SYSCTL @@ -205,10 +220,8 @@ show_regs(regs); } #endif - si.si_signo = SIGSEGV; - si.si_code = si_code; - si.si_addr = (void*) address; - force_sig_info(SIGSEGV, &si, tsk); + + force_sigsegv(tsk, si_code, (void *)address); return; } @@ -223,6 +236,7 @@ * Oops. The kernel tried to access some bad page. We'll have to * terminate things with extreme prejudice. */ + if (kernel_address) printk(KERN_ALERT "Unable to handle kernel pointer dereference" " at virtual kernel address %016lx\n", address); @@ -230,10 +244,6 @@ printk(KERN_ALERT "Unable to handle kernel paging request" " at virtual user address %016lx\n", address); -/* - * need to define, which information is useful here - */ - die("Oops", regs, error_code); do_exit(SIGKILL); @@ -244,8 +254,14 @@ */ out_of_memory: up_read(&mm->mmap_sem); + if (tsk->pid == 1) { + tsk->policy |= SCHED_YIELD; + schedule(); + down_read(&mm->mmap_sem); + goto survive; + } printk("VM: killing process %s\n", tsk->comm); - if (psw_mask & PSW_PROBLEM_STATE) + if (regs->psw.mask & PSW_PROBLEM_STATE) do_exit(SIGKILL); goto no_context; @@ -261,6 +277,151 @@ force_sig(SIGBUS, tsk); /* Kernel mode? Handle exceptions or die */ - if (!(psw_mask & PSW_PROBLEM_STATE)) + if (!(regs->psw.mask & PSW_PROBLEM_STATE)) goto no_context; } + +/* + * Send SIGSEGV to task. This is an external routine + * to keep the stack usage of do_page_fault small. + */ +static void force_sigsegv(struct task_struct *tsk, int code, void *address) +{ + struct siginfo si; + si.si_signo = SIGSEGV; + si.si_code = code; + si.si_addr = address; + force_sig_info(SIGSEGV, &si, tsk); +} + + +#ifdef CONFIG_PFAULT +/* + * 'pfault' pseudo page faults routines. + */ +static int pfault_disable = 0; + +static int __init nopfault(char *str) +{ + pfault_disable = 1; + return 1; +} + +__setup("nopfault", nopfault); + +typedef struct { + __u16 refdiagc; + __u16 reffcode; + __u16 refdwlen; + __u16 refversn; + __u64 refgaddr; + __u64 refselmk; + __u64 refcmpmk; + __u64 reserved; +} __attribute__ ((packed)) pfault_refbk_t; + +typedef struct _pseudo_wait_t { + struct _pseudo_wait_t *next; + wait_queue_head_t queue; + unsigned long address; + int resolved; +} pseudo_wait_t; + +int pfault_init(void) +{ + pfault_refbk_t refbk = + { 0x258, 0, 5, 2, __LC_KERNEL_STACK, 1ULL << 48, 1ULL << 48, + 0x8000000000000000ULL }; + int rc; + + if (pfault_disable) + return -1; + __asm__ __volatile__( + " diag %1,%0,0x258\n" + "0: j 2f\n" + "1: la %0,8\n" + "2:\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .quad 0b,1b\n" + ".previous" + : "=d" (rc) : "a" (&refbk) : "cc" ); + __ctl_set_bit(0, 9); + return rc; +} + +void pfault_fini(void) +{ + pfault_refbk_t refbk = + { 0x258, 1, 5, 2, 0ULL, 0ULL, 0ULL, 0ULL }; + + if (pfault_disable) + return; + __ctl_clear_bit(0, 9); + __asm__ __volatile__( + " diag %0,0,0x258\n" + "0:\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .quad 0b,0b\n" + ".previous" + : : "a" (&refbk) : "cc" ); +} + +asmlinkage void +pfault_interrupt(struct pt_regs *regs, __u16 error_code) +{ + struct task_struct *tsk; + wait_queue_head_t queue; + wait_queue_head_t *qp; + __u16 subcode; + + /* + * Get the external interruption subcode & pfault + * initial/completion signal bit. VM stores this + * in the 'cpu address' field associated with the + * external interrupt. + */ + subcode = S390_lowcore.cpu_addr; + if ((subcode & 0xff00) != 0x0600) + return; + + /* + * Get the token (= address of kernel stack of affected task). + */ + tsk = (struct task_struct *) + (*((unsigned long *) __LC_PFAULT_INTPARM) - THREAD_SIZE); + + if (subcode & 0x0080) { + /* signal bit is set -> a page has been swapped in by VM */ + qp = (wait_queue_head_t *) + xchg(&tsk->thread.pfault_wait, -1); + if (qp != NULL) { + /* Initial interrupt was faster than the completion + * interrupt. pfault_wait is valid. Set pfault_wait + * back to zero and wake up the process. This can + * safely be done because the task is still sleeping + * and can't procude new pfaults. */ + tsk->thread.pfault_wait = 0ULL; + wake_up(qp); + } + } else { + /* signal bit not set -> a real page is missing. */ + init_waitqueue_head (&queue); + qp = (wait_queue_head_t *) + xchg(&tsk->thread.pfault_wait, (addr_t) &queue); + if (qp != NULL) { + /* Completion interrupt was faster than the initial + * interrupt (swapped in a -1 for pfault_wait). Set + * pfault_wait back to zero and exit. This can be + * done safely because tsk is running in kernel + * mode and can't produce new pfaults. */ + tsk->thread.pfault_wait = 0ULL; + } + + /* go to sleep */ + wait_event(queue, tsk->thread.pfault_wait == 0ULL); + } +} +#endif + |
From: James S. <jsi...@us...> - 2001-10-29 00:11:31
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/ppc/kernel Modified Files: prep_setup.c Log Message: Synced to 2.4.13 Index: prep_setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/prep_setup.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- prep_setup.c 2001/10/06 16:11:13 1.5 +++ prep_setup.c 2001/10/29 00:10:58 1.6 @@ -827,8 +827,8 @@ */ void __init prep_map_io(void) { - io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO); - io_block_mapping(0xf0000000, 0xc0000000, 0x08000000, _PAGE_IO); + io_block_mapping(0x80000000, PREP_ISA_IO_BASE, 0x10000000, _PAGE_IO); + io_block_mapping(0xf0000000, PREP_ISA_MEM_BASE, 0x08000000, _PAGE_IO); } void __init |
From: James S. <jsi...@us...> - 2001-10-29 00:11:31
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/boot In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/ppc/boot Modified Files: Makefile Log Message: Synced to 2.4.13 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/boot/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 2001/05/12 22:29:45 1.1 +++ Makefile 2001/10/29 00:10:58 1.2 @@ -9,127 +9,78 @@ # Adapted for PowerPC by Gary Thomas # modified by Cort (co...@cs...) # -.c.s: - $(CC) $(CFLAGS) -S -o $*.s $< -.s.o: - $(AS) -o $*.o $< -.c.o: - $(CC) $(CFLAGS) -DINITRD_OFFSET=$(IOFF) -DINITRD_SIZE=$(ISZ) -DZIMAGE_OFFSET=$(ZOFF) -DZIMAGE_SIZE=$(ZSZ) -D__BOOTER__ -c -o $*.o $< -.S.s: - $(CPP) $(AFLAGS) -traditional -o $*.o $< -.S.o: - $(CC) $(AFLAGS) -traditional -c -o $*.o $< -ZOFF = 0 -ZSZ = 0 -IOFF = 0 -ISZ = 0 +GZIP_FLAGS = -v9f -ifeq ($(CONFIG_SMP),y) -TFTPIMAGE=/tftpboot/zImage.prep.smp$(MSIZE) -else -TFTPIMAGE=/tftpboot/zImage.prep$(MSIZE) -endif +CFLAGS += -fno-builtin -D__BOOTER__ -I$(TOPDIR)/arch/$(ARCH)/boot/include -ifeq ($(CONFIG_PPC64BRIDGE),y) -MSIZE=.64 +AFLAGS += -D__BOOTER__ +OBJCOPY_ARGS = -O elf32-powerpc + +ifeq ($(CONFIG_SMP),y) +TFTPSIMAGE=/tftpboot/sImage.smp else -MSIZE= +TFTPSIMAGE=/tftpboot/sImage endif -ZLINKFLAGS = -T ../vmlinux.lds -Ttext 0x00800000 +lib/zlib.a: + $(MAKE) -C lib -GZIP_FLAGS = -v9f +images/vmlinux.gz: $(TOPDIR)/vmlinux + $(MAKE) -C images vmlinux.gz -OBJECTS := head.o misc.o ../coffboot/zlib.o -CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS -fno-builtin -OBJCOPY_ARGS = -O elf32-powerpc +# Subdirs and tools needed for each. +subdir-y := lib images common +subdir-$(CONFIG_ALL_PPC) += chrp pmac prep +tools-$(CONFIG_ALL_PPC) := addnote piggyback mknote hack-coff mkprep +subdir-$(CONFIG_4xx) += tree +subdir-$(CONFIG_8xx) += mbx +subdir-$(CONFIG_8260) += mbx +tools-$(CONFIG_GEMINI) := mksimage -OBJECTS += vreset.o of1275.o -ifeq ($(CONFIG_SERIAL_CONSOLE),y) -OBJECTS += ns16550.o -endif +# These are dirs we don't want to go into on BOOT_TARGETS +NONBOOT := lib images common -all: zImage +# These are the subdirs we want to use +BOOTDIRS = $(filter-out $(NONBOOT), $(subdir-y)) -zvmlinux.initrd: zvmlinux - $(LD) $(ZLINKFLAGS) -o zvmlinux.initrd.tmp $(OBJECTS) - $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \ - --add-section=initrd=ramdisk.image.gz \ - --add-section=image=../coffboot/vmlinux.gz \ - zvmlinux.initrd.tmp zvmlinux.initrd - $(CC) $(CFLAGS) -DINITRD_OFFSET=`sh offset $(OBJDUMP) zvmlinux.initrd initrd` \ - -DINITRD_SIZE=`sh size $(OBJDUMP) zvmlinux.initrd initrd` \ - -DZIMAGE_OFFSET=`sh offset $(OBJDUMP) zvmlinux.initrd image` \ - -DZIMAGE_SIZE=`sh size $(OBJDUMP) zvmlinux.initrd image` \ - -D__BOOTER__ \ - -c -o misc.o misc.c - $(LD) $(ZLINKFLAGS) -o zvmlinux.initrd.tmp $(OBJECTS) - $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \ - --add-section=initrd=ramdisk.image.gz \ - --add-section=image=../coffboot/vmlinux.gz \ - zvmlinux.initrd.tmp $@ - rm zvmlinux.initrd.tmp +# This will make the tools we need. We do it like this to ensure that we use +# HOSTCC. -- Tom +maketools: + $(MAKE) -C utils $(tools-y) -zImage: zvmlinux mkprep -ifdef CONFIG_ALL_PPC - ./mkprep -pbp zvmlinux zImage -endif -ifdef CONFIG_APUS - $(STRIP) ../../../vmlinux -o vmapus - gzip $(GZIP_FLAGS) vmapus +# The targets all boards support for boot images. +BOOT_TARGETS = zImage +ifndef CONFIG_GEMINI +BOOT_TARGETS += zImage.initrd znetboot znetboot.initrd endif -zImage.initrd: zvmlinux.initrd mkprep -ifdef CONFIG_ALL_PPC - ./mkprep -pbp zvmlinux.initrd zImage.initrd +$(BOOT_TARGETS): sImage vmapus lib/zlib.a images/vmlinux.gz maketools +ifneq ($(BOOTDIRS),) + for d in $(BOOTDIRS); do $(MAKE) -C $$d $@; done endif - -zvmlinux: $(OBJECTS) ../coffboot/vmlinux.gz -# -# build the boot loader image and then compute the offset into it -# for the kernel image -# - $(LD) $(ZLINKFLAGS) -o zvmlinux.tmp $(OBJECTS) - $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment --add-section=image=../coffboot/vmlinux.gz \ - zvmlinux.tmp $@ -# -# then with the offset rebuild the bootloader so we know where the kernel is -# - $(CC) $(CFLAGS) -DINITRD_OFFSET=0 -DINITRD_SIZE=0 \ - -DZIMAGE_OFFSET=`sh offset $(OBJDUMP) zvmlinux image` \ - -DZIMAGE_SIZE=`sh size $(OBJDUMP) zvmlinux image` \ - -D__BOOTER__ \ - -c -o misc.o misc.c - $(LD) $(ZLINKFLAGS) -o zvmlinux.tmp $(OBJECTS) - $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment --add-section=image=../coffboot/vmlinux.gz \ - zvmlinux.tmp $@ - rm zvmlinux.tmp -floppy: $(TOPDIR)/vmlinux zImage - dd if=zImage of=/dev/fd0H1440 bs=64b +sImage: $(TOPDIR)/vmlinux +ifdef CONFIG_GEMINI + $(OBJCOPY) -I elf32-powerpc -O binary $(TOPDIR)/vmlinux images/sImage +endif -mkprep : mkprep.c - $(HOSTCC) -o mkprep mkprep.c +vmapus: $(TOPDIR)/vmlinux +ifdef CONFIG_APUS + $(STRIP) $(TOPDIR)/vmlinux -o images/vmapus + gzip $(GZIP_FLAGS) images/vmapus +endif +ifdef CONFIG_GEMINI znetboot : zImage -ifdef CONFIG_ALL_PPC - cp zImage $(TFTPIMAGE) + cp images/sImage $(TFTPSIMAGE) endif - -znetboot.initrd : zImage.initrd - cp zImage.initrd $(TFTPIMAGE) +# Clean up after ourselves. We have to do it like this since only some dirs +# need to be gone into. -- Tom clean: - rm -f vmlinux* zvmlinux* mkprep zImage* - -fastdep: - $(TOPDIR)/scripts/mkdep *.[Sch] > .depend - -dep: - $(CPP) $(CPPFLAGS) -M *.S *.c > .depend - -# just here to match coffboot/Makefile -vmlinux.coff: + $(MAKE) -C images clean + $(MAKE) -C tree clean + $(MAKE) -C utils clean -vmlinux.coff.initrd: +include $(TOPDIR)/Rules.make |
From: James S. <jsi...@us...> - 2001-10-29 00:11:31
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/amiga In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/ppc/amiga Modified Files: config.c Log Message: Synced to 2.4.13 Index: config.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/amiga/config.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- config.c 2001/09/02 23:24:39 1.1 +++ config.c 2001/10/29 00:10:58 1.2 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.config.c 1.7 05/21/01 00:48:24 cort + * BK Id: SCCS/s.config.c 1.12 09/18/01 11:19:06 paulus */ #define m68k_debug_device debug_device @@ -51,22 +51,22 @@ unsigned char amiga_psfreq; struct amiga_hw_present amiga_hw_present; -static const char s_a500[] __initdata = "A500"; -static const char s_a500p[] __initdata = "A500+"; -static const char s_a600[] __initdata = "A600"; -static const char s_a1000[] __initdata = "A1000"; -static const char s_a1200[] __initdata = "A1200"; -static const char s_a2000[] __initdata = "A2000"; -static const char s_a2500[] __initdata = "A2500"; -static const char s_a3000[] __initdata = "A3000"; -static const char s_a3000t[] __initdata = "A3000T"; -static const char s_a3000p[] __initdata = "A3000+"; -static const char s_a4000[] __initdata = "A4000"; -static const char s_a4000t[] __initdata = "A4000T"; -static const char s_cdtv[] __initdata = "CDTV"; -static const char s_cd32[] __initdata = "CD32"; -static const char s_draco[] __initdata = "Draco"; -static const char *amiga_models[] __initdata = { +static char s_a500[] __initdata = "A500"; +static char s_a500p[] __initdata = "A500+"; +static char s_a600[] __initdata = "A600"; +static char s_a1000[] __initdata = "A1000"; +static char s_a1200[] __initdata = "A1200"; +static char s_a2000[] __initdata = "A2000"; +static char s_a2500[] __initdata = "A2500"; +static char s_a3000[] __initdata = "A3000"; +static char s_a3000t[] __initdata = "A3000T"; +static char s_a3000p[] __initdata = "A3000+"; +static char s_a4000[] __initdata = "A4000"; +static char s_a4000t[] __initdata = "A4000T"; +static char s_cdtv[] __initdata = "CDTV"; +static char s_cd32[] __initdata = "CD32"; +static char s_draco[] __initdata = "Draco"; +static char *amiga_models[] __initdata = { s_a500, s_a500p, s_a600, s_a1000, s_a1200, s_a2000, s_a2500, s_a3000, s_a3000t, s_a3000p, s_a4000, s_a4000t, s_cdtv, s_cd32, s_draco, }; @@ -76,9 +76,6 @@ extern char m68k_debug_device[]; static void amiga_sched_init(void (*handler)(int, void *, struct pt_regs *)); -/* amiga specific keyboard functions */ -extern int amiga_keyb_init(void); -extern int amiga_kbdrate (struct kbd_repeat *); /* amiga specific irq functions */ extern void amiga_init_IRQ (void); extern void (*amiga_default_handler[]) (int, void *, struct pt_regs *); @@ -122,21 +119,6 @@ index: -1, }; -#ifdef CONFIG_MAGIC_SYSRQ -char amiga_sysrq_xlate[128] = - "\0001234567890-=\\\000\000" /* 0x00 - 0x0f */ - "qwertyuiop[]\000123" /* 0x10 - 0x1f */ - "asdfghjkl;'\000\000456" /* 0x20 - 0x2f */ - "\000zxcvbnm,./\000+789" /* 0x30 - 0x3f */ - " \177\t\r\r\000\177\000\000\000-\000\000\000\000\000" /* 0x40 - 0x4f */ - "\000\201\202\203\204\205\206\207\210\211()/*+\000" /* 0x50 - 0x5f */ - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" /* 0x60 - 0x6f */ - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; /* 0x70 - 0x7f */ -#endif - -extern void (*kd_mksound)(unsigned int, unsigned int); - - /* * Motherboard Resources present in all Amiga models */ @@ -410,8 +392,6 @@ request_resource(&iomem_resource, &((struct resource *)&mb_resources)[i]); mach_sched_init = amiga_sched_init; - mach_keyb_init = amiga_keyb_init; - mach_kbdrate = amiga_kbdrate; mach_init_IRQ = amiga_init_IRQ; mach_default_handler = &amiga_default_handler; #ifndef CONFIG_APUS @@ -451,10 +431,6 @@ mach_floppy_setup = amiga_floppy_setup; #endif mach_reset = amiga_reset; -#ifdef CONFIG_DUMMY_CONSOLE - conswitchp = &dummy_con; -#endif - kd_mksound = amiga_mksound; #ifdef CONFIG_HEARTBEAT mach_heartbeat = amiga_heartbeat; #endif |
From: James S. <jsi...@us...> - 2001-10-29 00:11:31
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/mips Modified Files: config.in Log Message: Synced to 2.4.13 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips/config.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- config.in 2001/10/06 16:11:12 1.14 +++ config.in 2001/10/29 00:10:58 1.15 @@ -364,7 +364,7 @@ if [ "$CONFIG_DECSTATION" != "y" -a \ "$CONFIG_SGI_IP22" != "y" ]; then - source drivers/i2o/Config.in + source drivers/message/i2o/Config.in fi if [ "$CONFIG_NET" = "y" ]; then |
From: James S. <jsi...@us...> - 2001-10-29 00:11:30
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/i386/kernel Modified Files: dmi_scan.c setup.c Log Message: Synced to 2.4.13 Index: dmi_scan.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel/dmi_scan.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- dmi_scan.c 2001/10/06 16:27:52 1.1 +++ dmi_scan.c 2001/10/29 00:10:58 1.2 @@ -9,6 +9,8 @@ #include <linux/pm.h> #include <linux/keyboard.h> +int is_sony_vaio_laptop; + struct dmi_header { u8 type; @@ -321,8 +323,6 @@ * This one isn't a bug detect for those who asked, we simply want to * activate Sony specific goodies like the camera and jogdial.. */ -int is_sony_vaio_laptop; - static __init int sony_vaio_laptop(struct dmi_blacklist *d) { if (is_sony_vaio_laptop == 0) Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel/setup.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- setup.c 2001/10/15 01:13:17 1.28 +++ setup.c 2001/10/29 00:10:58 1.29 @@ -1592,7 +1592,7 @@ case 6: switch (c->x86_model) { - case 6 ... 7: /* Cyrix III or C3 */ + case 6 ... 8: /* Cyrix III family */ rdmsr (MSR_VIA_FCR, lo, hi); lo |= (1<<1 | 1<<7); /* Report CX8 & enable PGE */ wrmsr (MSR_VIA_FCR, lo, hi); |
From: James S. <jsi...@us...> - 2001-10-29 00:11:30
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ia64 In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/ia64 Modified Files: config.in Log Message: Synced to 2.4.13 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/config.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- config.in 2001/09/09 16:36:33 1.15 +++ config.in 2001/10/29 00:10:58 1.16 @@ -149,7 +149,7 @@ source drivers/mtd/Config.in source drivers/pnp/Config.in source drivers/block/Config.in -source drivers/i2o/Config.in +source drivers/message/i2o/Config.in source drivers/md/Config.in mainmenu_option next_comment |
From: James S. <jsi...@us...> - 2001-10-29 00:11:30
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/i386 In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/i386 Modified Files: config.in Log Message: Synced to 2.4.13 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/config.in,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- config.in 2001/10/15 01:13:17 1.27 +++ config.in 2001/10/29 00:10:57 1.28 @@ -253,7 +253,6 @@ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then dep_bool ' ACPI support' CONFIG_ACPI $CONFIG_PM - if [ "$CONFIG_ACPI" != "n" ]; then source drivers/acpi/Config.in fi @@ -317,7 +316,7 @@ source drivers/ieee1394/Config.in -source drivers/i2o/Config.in +source drivers/message/i2o/Config.in if [ "$CONFIG_NET" = "y" ]; then mainmenu_option next_comment @@ -388,6 +387,7 @@ bool 'Kernel debugging' CONFIG_DEBUG_KERNEL if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then + bool ' Debug high memory support' CONFIG_DEBUG_HIGHMEM bool ' Debug memory allocations' CONFIG_DEBUG_SLAB bool ' Memory mapped I/O debugging' CONFIG_DEBUG_IOVIRT bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ |
From: James S. <jsi...@us...> - 2001-10-29 00:11:30
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/cris In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/cris Modified Files: config.in Log Message: Synced to 2.4.13 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/cris/config.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- config.in 2001/10/15 01:13:16 1.5 +++ config.in 2001/10/29 00:10:57 1.6 @@ -180,7 +180,7 @@ source drivers/ieee1394/Config.in -source drivers/i2o/Config.in +source drivers/message/i2o/Config.in if [ "$CONFIG_NET" = "y" ]; then mainmenu_option next_comment |
From: James S. <jsi...@us...> - 2001-10-29 00:11:30
|
Update of /cvsroot/linuxconsole/ruby/linux In directory usw-pr-cvs1:/tmp/cvs-serv10630 Modified Files: Makefile Log Message: Synced to 2.4.13 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- Makefile 2001/10/15 01:13:16 1.38 +++ Makefile 2001/10/29 00:10:57 1.39 @@ -1,11 +1,12 @@ VERSION = 2 PATCHLEVEL = 4 -SUBLEVEL = 12 +SUBLEVEL = 13 EXTRAVERSION = -ruby KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//") CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ @@ -132,13 +133,13 @@ DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o DRIVERS-$(CONFIG_L3) += drivers/l3/l3.o +DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o DRIVERS-y += drivers/char/char.o \ drivers/block/block.o \ drivers/misc/misc.o \ drivers/net/net.o \ drivers/media/media.o \ drivers/video/video.o -DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o DRIVERS-$(CONFIG_DRM) += drivers/char/drm/drm.o DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a DRIVERS-$(CONFIG_ISDN) += drivers/isdn/isdn.a @@ -159,7 +160,7 @@ endif DRIVERS-$(CONFIG_SSI) += drivers/ssi/ssi.o -DRIVERS-$(CONFIG_UART) += drivers/serial/uart.o +DRIVERS-$(CONFIG_UART) += drivers/serial/uart.o DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o @@ -180,7 +181,7 @@ DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o -DRIVERS-$(CONFIG_I2O) += drivers/i2o/i2o.o +DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o |
From: James S. <jsi...@us...> - 2001-10-29 00:11:04
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers/video Modified Files: Config.in fbcon.c fm2fb.c macfb.c newport_con.c promcon.c sa1100fb.c sgivwfb.c Log Message: Synced to 2.4.13 Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Config.in,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- Config.in 2001/10/08 08:35:49 1.52 +++ Config.in 2001/10/29 00:11:00 1.53 @@ -157,9 +157,6 @@ if [ "$CONFIG_FB_ATY" != "n" ]; then bool ' Mach64 GX support (EXPERIMENTAL)' CONFIG_FB_ATY_GX bool ' Mach64 CT/VT/GT/LT (incl. 3D RAGE) support' CONFIG_FB_ATY_CT - if [ "$CONFIG_FB_ATY_CT" = "y" ]; then - bool ' Sony Vaio C1VE 1024x480 LCD support' CONFIG_FB_ATY_CT_VAIO_LCD - fi fi tristate ' ATI Radeon display support (EXPERIMENTAL)' CONFIG_FB_RADEON tristate ' ATI Rage 128 display support (EXPERIMENTAL)' CONFIG_FB_ATY128 Index: fbcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbcon.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- fbcon.c 2001/10/04 02:45:52 1.55 +++ fbcon.c 2001/10/29 00:11:00 1.56 @@ -169,8 +169,9 @@ if (!options || !*options) return 0; - if (!strncmp(options, "font:", 5)) - strcpy(fontname, options+5); + while (this_opt = strsep(&options, ",")) { + if (!strncmp(options, "font:", 5)) + strcpy(fontname, options+5); return 0; } @@ -374,17 +375,18 @@ unsigned short charmask = (vc->vc_font.charcount > 256) ? 0x1ff: 0xff; unsigned int width = ((vc->vc_font.width+7)>>3); struct fb_image image; + u16 c = scr_readw(s); if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR) { image.fg_color = attr_fgcol(vc, *s); image.bg_color = attr_bgcol(vc, *s); } else { if (info->var.bits_per_pixel > 16) { - image.fg_color = ((u32*)info->pseudo_palette)[attr_fgcol(vc,*s)]; - image.bg_color = ((u32*)info->pseudo_palette)[attr_bgcol(vc,*s)]; + image.fg_color = ((u32*)info->pseudo_palette)[attr_fgcol(vc,c)]; + image.bg_color = ((u32*)info->pseudo_palette)[attr_bgcol(vc,c)]; } else { - image.fg_color = ((u16*)info->pseudo_palette)[attr_fgcol(vc,*s)]; - image.bg_color = ((u16*)info->pseudo_palette)[attr_bgcol(vc,*s)]; + image.fg_color = ((u16*)info->pseudo_palette)[attr_fgcol(vc,c)]; + image.bg_color = ((u16*)info->pseudo_palette)[attr_bgcol(vc,c)]; } } image.x = xpos * vc->vc_font.width; @@ -395,7 +397,8 @@ while (count--) { image.data = vc->vc_font.data + - (scr_readw(s++) & charmask)*vc->vc_font.height*width; + (scr_readw(s) & charmask)*vc->vc_font.height*width; + s++; info->fbops->fb_imageblit(info, &image); image.x += vc->vc_font.width; } Index: fm2fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fm2fb.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- fm2fb.c 2001/08/27 16:36:15 1.6 +++ fm2fb.c 2001/10/29 00:11:00 1.7 @@ -315,8 +315,7 @@ if (!options || !*options) return 0; - for (this_opt = strtok(options, ","); this_opt; - this_opt = strtok(NULL, ",")) { + while (this_opt = strsep(&options, ",")) { if (!strncmp(this_opt, "pal", 3)) fm2fb_mode = FM2FB_MODE_PAL; else if (!strncmp(this_opt, "ntsc", 4)) Index: macfb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/macfb.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- macfb.c 2001/06/06 14:24:49 1.7 +++ macfb.c 2001/10/29 00:11:00 1.8 @@ -40,6 +40,17 @@ #include <asm/io.h> #include <asm/machw.h> +#include <video/fbcon.h> +#include <video/fbcon-mfb.h> +#include <video/fbcon-cfb2.h> +#include <video/fbcon-cfb4.h> +#include <video/fbcon-cfb8.h> +#include <video/fbcon-cfb16.h> +#include <video/fbcon-cfb24.h> +#include <video/fbcon-cfb32.h> + +#if defined(FBCON_HAS_CFB8) || defined(FBCON_HAS_CFB4) || defined(FBCON_HAS_CFB2) + /* Common DAC base address for the LC, RBV, Valkyrie, and IIvx */ #define DAC_BASE 0x50f24000 @@ -177,8 +188,20 @@ {0,0,0,0,0,0} }; +static struct display disp; static struct fb_info fb_info; static struct { u_short blue, green, red, pad; } palette[256]; +static union { +#ifdef FBCON_HAS_CFB16 + u16 cfb16[16]; +#endif +#ifdef FBCON_HAS_CFB24 + u32 cfb24[16]; +#endif +#ifdef FBCON_HAS_CFB32 + u32 cfb32[16]; +#endif +} fbcon_cmap; static int inverse = 0; static int vidtest = 0; @@ -771,9 +794,40 @@ if (con != currcon) return; if (fb_display[con].cmap.len) - fb_set_cmap(&fb_display[con].cmap, 1, info); + fb_set_cmap(&fb_display[con].cmap, 1, macfb_setcolreg, info); else - fb_set_cmap(fb_default_cmap(video_cmap_len), 1, info); + fb_set_cmap(fb_default_cmap(video_cmap_len), 1, + macfb_setcolreg, info); +} + +static int macfb_get_cmap(struct fb_cmap *cmap, int kspc, int con, + struct fb_info *info) +{ + if (con == currcon) /* current console? */ + return fb_get_cmap(cmap, kspc, macfb_getcolreg, info); + else if (fb_display[con].cmap.len) /* non default colormap? */ + fb_copy_cmap(&fb_display[con].cmap, cmap, kspc ? 0 : 2); + else + fb_copy_cmap(fb_default_cmap(video_cmap_len), + cmap, kspc ? 0 : 2); + return 0; +} + +static int macfb_set_cmap(struct fb_cmap *cmap, int kspc, int con, + struct fb_info *info) +{ + int err; + + if (!fb_display[con].cmap.len) { /* no colormap allocated? */ + err = fb_alloc_cmap(&fb_display[con].cmap,video_cmap_len,0); + if (err) + return err; + } + if (con == currcon) /* current console? */ + return fb_set_cmap(cmap, kspc, macfb_setcolreg, info); + else + fb_copy_cmap(cmap, &fb_display[con].cmap, kspc ? 0 : 1); + return 0; } static struct fb_ops macfb_ops = { @@ -781,10 +835,11 @@ fb_get_fix: macfb_get_fix, fb_get_var: macfb_get_var, fb_set_var: macfb_set_var, - fb_setcolreg: macfb_setcolreg, + fb_get_cmap: macfb_get_cmap, + fb_set_cmap: macfb_set_cmap, }; -void macfb_setup(char *options, int *ints) +void __init macfb_setup(char *options, int *ints) { char *this_opt; @@ -820,6 +875,11 @@ return 1; } +static void macfb_blank(int blank, struct fb_info *info) +{ + /* Not supported */ +} + void __init macfb_init(void) { struct nubus_dev* ndev = NULL; @@ -1160,11 +1220,13 @@ break; } + fb_info.changevar = NULL; fb_info.node = -1; fb_info.fbops = &macfb_ops; fb_info.disp = &disp; fb_info.switch_con = &macfb_switch; fb_info.updatevar = &macfb_update_var; + fb_info.blank = &macfb_blank; fb_info.flags = FBINFO_FLAG_DEFAULT; macfb_set_disp(-1); do_install_cmap(0, &fb_info); @@ -1175,3 +1237,5 @@ printk("fb%d: %s frame buffer device\n", GET_FB_IDX(fb_info.node), fb_info.modename); } + +MODULE_LICENSE("GPL"); Index: newport_con.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/newport_con.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- newport_con.c 2001/09/01 21:28:56 1.8 +++ newport_con.c 2001/10/29 00:11:00 1.9 @@ -13,9 +13,14 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/tty.h> +#include <linux/kd.h> +#include <linux/selection.h> +#include <linux/console.h> +#include <linux/console_struct.h> #include <linux/vt_kern.h> #include <linux/mm.h> #include <linux/module.h> +#include <linux/slab.h> [...1066 lines suppressed...] + return 0; } -void __exit newport_module_exit(void) { - printk("Unloading SGI Newport Console Driver\n"); -} +int cleanup_module(void) +{ + int i; -module_init(newport_module_init); -module_exit(newport_module_exit); + printk("Unloading SGI Newport Console Driver\n"); + /* free memory used by user font */ + for (i = 0; i < MAX_NR_CONSOLES; i++) + newport_set_def_font(i, NULL); + return 0; +} +#endif Index: promcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/promcon.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- promcon.c 2001/05/14 02:53:08 1.7 +++ promcon.c 2001/10/29 00:11:00 1.8 @@ -14,7 +14,11 @@ #include <linux/tty.h> #include <linux/slab.h> #include <linux/delay.h> +#include <linux/console.h> +#include <linux/console_struct.h> #include <linux/vt_kern.h> +#include <linux/selection.h> +#include <linux/fb.h> #include <linux/init.h> #include <linux/kd.h> @@ -43,71 +47,74 @@ } static int -promcon_start(struct vc_data *vc, char *b) +promcon_start(struct vc_data *conp, char *b) { unsigned short *s = (unsigned short *) - (vc->vc_origin + py * vc->vc_size_row + (px << 1)); + (conp->vc_origin + py * conp->vc_size_row + (px << 1)); + u16 cs; + cs = scr_readw(s); if (px == pw) { unsigned short *t = s - 1; + u16 ct = scr_readw(t); - if (inverted(*s) && inverted(*t)) - return sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", - *s, *t); - else if (inverted(*s)) - return sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", - *s, *t); - else if (inverted(*t)) - return sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", - *s, *t); + if (inverted(cs) && inverted(ct)) + return sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", cs, + ct); + else if (inverted(cs)) + return sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", cs, + ct); + else if (inverted(ct)) + return sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", cs, + ct); else - return sprintf(b, "\b%c\b\033[@%c", *s, *t); + return sprintf(b, "\b%c\b\033[@%c", cs, ct); } - if (inverted(*s)) - return sprintf(b, "\033[7m%c\033[m\b", *s); + if (inverted(cs)) + return sprintf(b, "\033[7m%c\033[m\b", cs); else - return sprintf(b, "%c\b", *s); + return sprintf(b, "%c\b", cs); } static int -promcon_end(struct vc_data *vc, char *b) +promcon_end(struct vc_data *conp, char *b) { unsigned short *s = (unsigned short *) - (vc->vc_origin + py * vc->vc_size_row + (px << 1)); + (conp->vc_origin + py * conp->vc_size_row + (px << 1)); char *p = b; + u16 cs; b += sprintf(b, "\033[%d;%dH", py + 1, px + 1); + cs = scr_readw(s); if (px == pw) { unsigned short *t = s - 1; + u16 ct = scr_readw(t); - if (inverted(*s) && inverted(*t)) - b += sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", *s, *t); - else if (inverted(*s)) - b += sprintf(b, "\b%c\b\033[@%c", *s, *t); - else if (inverted(*t)) - b += sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", *s, *t); + if (inverted(cs) && inverted(ct)) + b += sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", cs, ct); + else if (inverted(cs)) + b += sprintf(b, "\b%c\b\033[@%c", cs, ct); + else if (inverted(ct)) + b += sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", cs, ct); else - b += sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", *s, *t); + b += sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", cs, ct); return b - p; } - if (inverted(*s)) - b += sprintf(b, "%c\b", *s); + if (inverted(cs)) + b += sprintf(b, "%c\b", cs); else - b += sprintf(b, "\033[7m%c\033[m\b", *s); + b += sprintf(b, "\033[7m%c\033[m\b", cs); return b - p; } -const char __init *promcon_startup(struct vt_struct *vt, int init) +const char __init *promcon_startup(void) { const char *display_desc = "PROM"; - struct vc_data *vc; - char buf[40]; int node; - - vt->default_mode = vc = &prom_default; + char buf[40]; node = prom_getchild(prom_root_node); node = prom_searchsiblings(node, "options"); @@ -124,16 +131,11 @@ ph--; } promcon_puts("\033[H\033[J", 6); - vc->vc_can_do_color = PROMCON_COLOR; - if (init) { - vc->vc_cols = pw + 1; - vc->vc_rows = ph + 1; - } return display_desc; } static void __init -promcon_init_unimap(struct vc_data *vc) +promcon_init_unimap(struct vc_data *conp) { mm_segment_t old_fs = get_fs(); struct unipair *p, *p1; @@ -154,43 +156,50 @@ k++; } set_fs(KERNEL_DS); - con_clear_unimap(vc, NULL); - con_set_unimap(vc, k, p); - con_protect_unimap(vc, 1); + con_clear_unimap(conp->vc_num, NULL); + con_set_unimap(conp->vc_num, k, p); + con_protect_unimap(conp->vc_num, 1); set_fs(old_fs); kfree(p); } static void -promcon_init(struct vc_data *vc) +promcon_init(struct vc_data *conp, int init) { unsigned long p; - vc->vc_can_do_color = PROMCON_COLOR; - vc->vc_cols = vc->display_fg->default_mode->vc_cols; - vc->vc_rows = vc->display_fg->default_mode->vc_rows; - p = *vc->vc_uni_pagedir_loc; - if (vc->vc_uni_pagedir_loc == &vc->vc_uni_pagedir || - !--vc->vc_uni_pagedir_loc[1]) - con_free_unimap(vc); - vc->vc_uni_pagedir_loc = promcon_uni_pagedir; + conp->vc_can_do_color = PROMCON_COLOR; + if (init) { + conp->vc_cols = pw + 1; + conp->vc_rows = ph + 1; + } + p = *conp->vc_uni_pagedir_loc; + if (conp->vc_uni_pagedir_loc == &conp->vc_uni_pagedir || + !--conp->vc_uni_pagedir_loc[1]) + con_free_unimap(conp->vc_num); + conp->vc_uni_pagedir_loc = promcon_uni_pagedir; promcon_uni_pagedir[1]++; - if (!promcon_uni_pagedir[0] && p) - promcon_init_unimap(vc); + if (!promcon_uni_pagedir[0] && p) { + promcon_init_unimap(conp); + } + if (!init) { + if (conp->vc_cols != pw + 1 || conp->vc_rows != ph + 1) + vc_resize_con(ph + 1, pw + 1, conp->vc_num); + } } static void -promcon_deinit(struct vc_data *vc) +promcon_deinit(struct vc_data *conp) { /* When closing the last console, reset video origin */ if (!--promcon_uni_pagedir[1]) - con_free_unimap(vc); - vc->vc_uni_pagedir_loc = &vc->vc_uni_pagedir; - con_set_default_unimap(vc); + con_free_unimap(conp->vc_num); + conp->vc_uni_pagedir_loc = &conp->vc_uni_pagedir; + con_set_default_unimap(conp->vc_num); } static int -promcon_switch(struct vc_data *vc) +promcon_switch(struct vc_data *conp) { return 1; } @@ -203,8 +212,9 @@ unsigned char *b = *bp; while (cnt--) { - if (attr != inverted(*s)) { - attr = inverted(*s); + u16 c = scr_readw(s); + if (attr != inverted(c)) { + attr = inverted(c); if (attr) { strcpy (b, "\033[7m"); b += 4; @@ -213,7 +223,8 @@ b += 3; } } - *b++ = *s++; + *b++ = c; + s++; if (b - buf >= 224) { promcon_puts(buf, b - buf); b = buf; @@ -224,7 +235,7 @@ } static void -promcon_putcs(struct vc_data *vc, const unsigned short *s, +promcon_putcs(struct vc_data *conp, const unsigned short *s, int count, int y, int x) { unsigned char buf[256], *b = buf; @@ -232,20 +243,20 @@ unsigned char save; int i, last = 0; - if (vc->display_fg->vt_blanked) + if (console_blanked) return; if (count <= 0) return; - b += promcon_start(vc, b); + b += promcon_start(conp, b); if (x + count >= pw + 1) { if (count == 1) { x -= 1; - save = *(unsigned short *)(vc->vc_origin - + y * vc->vc_size_row - + (x << 1)); + save = scr_readw((unsigned short *)(conp->vc_origin + + y * conp->vc_size_row + + (x << 1))); if (px != x || py != y) { b += sprintf(b, "\033[%d;%dH", y + 1, x + 1); @@ -268,7 +279,7 @@ px++; - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; } else { @@ -309,44 +320,44 @@ b += 3; } - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); } static void -promcon_putc(struct vc_data *vc, int c, int y, int x) +promcon_putc(struct vc_data *conp, int c, int y, int x) { unsigned short s; - if (vc->display_fg->vt_blanked) + if (console_blanked) return; scr_writew(c, &s); - promcon_putcs(vc, &s, 1, y, x); + promcon_putcs(conp, &s, 1, y, x); } static void -promcon_clear(struct vc_data *vc, int sy, int sx, int height, int width) +promcon_clear(struct vc_data *conp, int sy, int sx, int height, int width) { unsigned char buf[256], *b = buf; int i, j; - if (vc->display_fg->vt_blanked) + if (console_blanked) return; - b += promcon_start(vc, b); + b += promcon_start(conp, b); if (!sx && width == pw + 1) { if (!sy && height == ph + 1) { strcpy(b, "\033[H\033[J"); b += 6; - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; } else if (sy + height == ph + 1) { b += sprintf(b, "\033[%dH\033[J", sy + 1); - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; } @@ -360,7 +371,7 @@ strcpy(b, "\033[K"); b += 3; - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; @@ -375,7 +386,7 @@ strcpy(b, "\033[K"); b += 3; - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; } @@ -390,29 +401,29 @@ } } - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); } static void -promcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx, +promcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx, int height, int width) { char buf[256], *b = buf; - if (vc->display_fg->vt_blanked) + if (console_blanked) return; - b += promcon_start(vc, b); + b += promcon_start(conp, b); if (sy == dy && height == 1) { - if (dx > sx && dx + width == vc->vc_cols) + if (dx > sx && dx + width == conp->vc_cols) b += sprintf(b, "\033[%d;%dH\033[%d@\033[%d;%dH", sy + 1, sx + 1, dx - sx, py + 1, px + 1); - else if (dx < sx && sx + width == vc->vc_cols) + else if (dx < sx && sx + width == conp->vc_cols) b += sprintf(b, "\033[%d;%dH\033[%dP\033[%d;%dH", dy + 1, dx + 1, sx - dx, py + 1, px + 1); - b += promcon_end(vc, b); + b += promcon_end(conp, b); promcon_puts(buf, b - buf); return; } @@ -425,7 +436,7 @@ } static void -promcon_cursor(struct vc_data *vc, int mode) +promcon_cursor(struct vc_data *conp, int mode) { char buf[32], *b = buf; @@ -435,10 +446,10 @@ case CM_MOVE: case CM_DRAW: - b += promcon_start(vc, b); - if (px != vc->vc_x || py != vc->vc_y) { - px = vc->vc_x; - py = vc->vc_y; + b += promcon_start(conp, b); + if (px != conp->vc_x || py != conp->vc_y) { + px = conp->vc_x; + py = conp->vc_y; b += sprintf(b, "\033[%d;%dH", py + 1, px + 1); } promcon_puts(buf, b - buf); @@ -447,13 +458,13 @@ } static int -promcon_font_op(struct vc_data *vc, struct console_font_op *op) +promcon_font_op(struct vc_data *conp, struct console_font_op *op) { return -ENOSYS; } static int -promcon_blank(struct vc_data *vc, int blank) +promcon_blank(struct vc_data *conp, int blank) { if (blank) { promcon_puts("\033[H\033[J\033[7m \033[m\b", 15); @@ -465,16 +476,16 @@ } static int -promcon_scroll(struct vc_data *vc, int t, int b, int dir, int count) +promcon_scroll(struct vc_data *conp, int t, int b, int dir, int count) { unsigned char buf[256], *p = buf; unsigned short *s; int i; - if (vc->display_fg->vt_blanked) + if (console_blanked) return 0; - p += promcon_start(vc, p); + p += promcon_start(conp, p); switch (dir) { case SM_UP: @@ -482,13 +493,13 @@ p += sprintf(p, "\033[%dH\033[%dM", t + 1, count); px = 0; py = t; - p += promcon_end(vc, p); + p += promcon_end(conp, p); promcon_puts(buf, p - buf); break; } - s = (unsigned short *)((t + count) * vc->vc_size_row + - vc->vc_origin); + s = (unsigned short *)(conp->vc_origin + + (t + count) * conp->vc_size_row); p += sprintf(p, "\033[%dH", t + 1); @@ -507,7 +518,7 @@ strcpy(p, "\033[K"); p += 3; - p += promcon_end(vc, p); + p += promcon_end(conp, p); promcon_puts(buf, p - buf); break; @@ -516,12 +527,12 @@ p += sprintf(p, "\033[%dH\033[%dL", t + 1, count); px = 0; py = t; - p += promcon_end(vc, p); + p += promcon_end(conp, p); promcon_puts(buf, p - buf); break; } - s = (unsigned short *)(vc->vc_origin + t * vc->vc_size_row); + s = (unsigned short *)(conp->vc_origin + t * conp->vc_size_row); p += sprintf(p, "\033[%dH", t + 1); @@ -537,7 +548,7 @@ for (; i < b; i++) s = promcon_repaint_line(s, buf, &p); - p += promcon_end(vc, p); + p += promcon_end(conp, p); promcon_puts(buf, p - buf); break; } @@ -546,7 +557,7 @@ } #if !(PROMCON_COLOR) -static u8 promcon_build_attr(struct vc_data *vc, u8 _color, u8 _intensity, u8 _blink, u8 _underline, u8 _reverse) +static u8 promcon_build_attr(struct vc_data *conp, u8 _color, u8 _intensity, u8 _blink, u8 _underline, u8 _reverse) { return (_reverse) ? 0xf : 0x7; } @@ -576,7 +587,6 @@ con_switch: promcon_switch, con_blank: promcon_blank, con_font_op: promcon_font_op, - con_resize: DUMMY, con_set_palette: DUMMY, con_scrolldelta: DUMMY, #if !(PROMCON_COLOR) @@ -586,28 +596,11 @@ void __init prom_con_init(void) { - const char *display_desc = NULL; - struct vt_struct *vt; - struct vc_data *vc; - long q; - - /* Alloc the mem we need */ - vt = (struct vt_struct *) kmalloc(sizeof(struct vt_struct),GFP_KERNEL); - if (!vt) return; - vc = (struct vc_data *) kmalloc(sizeof(struct vc_data), GFP_KERNEL); - vt->kmalloced = 1; - vt->vt_sw = &prom_con; - vt->vcs.vc_cons[0] = vc; - display_desc = create_vt(vt, 0); - q = (long) kmalloc(vc->vc_screenbuf_size, GFP_KERNEL); - if (!display_desc || !q) { - kfree(vt->vcs.vc_cons[0]); - kfree(vt); - if (q) - kfree((char *) q); - return; - } - vc->vc_screenbuf = (unsigned short *) q; - vc_init(vc, 1); - promcon_init_unimap(vt->fg_console); +#ifdef CONFIG_DUMMY_CONSOLE + if (conswitchp == &dummy_con) + take_over_console(&prom_con, 0, MAX_NR_CONSOLES-1, 1); + else +#endif + if (conswitchp == &prom_con) + promcon_init_unimap(vc_cons[fg_console].d); } Index: sa1100fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/sa1100fb.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- sa1100fb.c 2001/10/17 17:00:14 1.16 +++ sa1100fb.c 2001/10/29 00:11:00 1.17 @@ -1931,10 +1931,8 @@ if (!options || !*options) return 0; - - for (this_opt = strtok(options, ","); this_opt; - this_opt = strtok(NULL, ",")) { - + + while(this_opt = strsep(&options, ",")) { if (!strncmp(this_opt, "bpp:", 4)) current_par.max_bpp = simple_strtoul(this_opt + 4, NULL, 0); Index: sgivwfb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/sgivwfb.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- sgivwfb.c 2001/08/31 18:12:45 1.9 +++ sgivwfb.c 2001/10/29 00:11:00 1.10 @@ -611,8 +611,7 @@ if (!options || !*options) return 0; - for (this_opt = strtok(options, ","); this_opt; - this_opt = strtok(NULL, ",")) { + while (this_opt = strsep(&options, ",")) { } return 0; } |
From: James S. <jsi...@us...> - 2001-10-29 00:11:04
|
Update of /cvsroot/linuxconsole/ruby/linux/include/asm-i386 In directory usw-pr-cvs1:/tmp/cvs-serv10630/include/asm-i386 Modified Files: page.h Log Message: Synced to 2.4.13 Index: page.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/asm-i386/page.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- page.h 2001/10/05 03:58:58 1.4 +++ page.h 2001/10/29 00:11:00 1.5 @@ -15,7 +15,7 @@ #include <asm/mmx.h> -#define clear_page(page) mmx_clear_page(page) +#define clear_page(page) mmx_clear_page((void *)page) #define copy_page(to,from) mmx_copy_page(to,from) #else |
From: James S. <jsi...@us...> - 2001-10-29 00:11:04
|
Update of /cvsroot/linuxconsole/ruby/linux/include/asm-s390x In directory usw-pr-cvs1:/tmp/cvs-serv10630/include/asm-s390x Modified Files: page.h Log Message: Synced to 2.4.13 Index: page.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/asm-s390x/page.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- page.h 2001/09/09 16:36:34 1.2 +++ page.h 2001/10/29 00:11:00 1.3 @@ -110,11 +110,6 @@ /* to align the pointer to the (next) page boundary */ #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) -/* - * - * - */ - #define __PAGE_OFFSET 0x0UL #define PAGE_OFFSET 0x0UL #define __pa(x) (unsigned long)(x) |
From: James S. <jsi...@us...> - 2001-10-29 00:11:04
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video/aty In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers/video/aty Modified Files: atyfb_base.c Log Message: Synced to 2.4.13 Index: atyfb_base.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty/atyfb_base.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- atyfb_base.c 2001/09/09 16:36:34 1.7 +++ atyfb_base.c 2001/10/29 00:11:00 1.8 @@ -52,7 +52,7 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/selection.h> @@ -2521,8 +2521,7 @@ if (!options || !*options) return 0; - for (this_opt = strtok(options, ","); this_opt; - this_opt = strtok(NULL, ",")) { + while (this_opt = strsep(&options, ",")) { if (!strncmp(this_opt, "font:", 5)) { char *p; int i; |
From: James S. <jsi...@us...> - 2001-10-29 00:11:03
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers/char Modified Files: Config.in Makefile sysrq.c vt.c Log Message: Synced to 2.4.13 Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Config.in,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Config.in 2001/10/15 01:13:17 1.27 +++ Config.in 2001/10/29 00:10:59 1.28 @@ -142,6 +142,7 @@ tristate ' Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT tristate ' Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT + tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD @@ -178,7 +179,7 @@ tristate 'Double Talk PC internal speech card support' CONFIG_DTLK tristate 'Siemens R3964 line discipline' CONFIG_R3964 tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM -if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then +if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_X86" = "y" ]; then dep_tristate 'Sony Vaio Programmable I/O Control Device support' CONFIG_SONYPI $CONFIG_PCI fi @@ -206,4 +207,7 @@ if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then source drivers/char/pcmcia/Config.in fi + +tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE + endmenu Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- Makefile 2001/10/15 01:13:17 1.28 +++ Makefile 2001/10/29 00:10:59 1.29 @@ -115,6 +115,7 @@ obj-$(CONFIG_PCWATCHDOG) += pcwd.o obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o +obj-$(CONFIG_IB700_WDT) += ib700wdt.o obj-$(CONFIG_MIXCOMWD) += mixcomwd.o obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o obj-$(CONFIG_WDT) += wdt.o @@ -123,8 +124,13 @@ obj-$(CONFIG_977_WATCHDOG) += wdt977.o obj-$(CONFIG_I810_TCO) += i810-tco.o obj-$(CONFIG_MACHZ_WDT) += machzwd.o +obj-$(CONFIG_SH_WDT) += shwdt.o obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o +subdir-$(CONFIG_MWAVE) += mwave +ifeq ($(CONFIG_MWAVE),y) + obj-y += mwave/mwave.o +endif include $(TOPDIR)/Rules.make Index: sysrq.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/sysrq.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- sysrq.c 2001/10/08 18:28:04 1.15 +++ sysrq.c 2001/10/29 00:10:59 1.16 @@ -47,13 +47,13 @@ int i; i = key - '0'; console_loglevel = 7; - printk("%d\n", i); + printk("Loglevel set to %d\n", i); console_loglevel = i; } static struct sysrq_key_op sysrq_loglevel_op = { handler: sysrq_handle_loglevel, help_msg: "loglevel0-8", - action_msg: "Loglevel set to ", + action_msg: "Changing Loglevel", }; @@ -71,7 +71,7 @@ static struct sysrq_key_op sysrq_SAK_op = { handler: sysrq_handle_SAK, help_msg: "saK", - action_msg: "SAK\n", + action_msg: "SAK", }; #endif @@ -87,7 +87,7 @@ static struct sysrq_key_op sysrq_unraw_op = { handler: sysrq_handle_unraw, help_msg: "unRaw", - action_msg: "Keyboard mode set to XLATE\n", + action_msg: "Keyboard mode set to XLATE", }; @@ -99,7 +99,7 @@ static struct sysrq_key_op sysrq_reboot_op = { handler: sysrq_handle_reboot, help_msg: "reBoot", - action_msg: "Resetting\n", + action_msg: "Resetting", }; @@ -230,7 +230,7 @@ static struct sysrq_key_op sysrq_sync_op = { handler: sysrq_handle_sync, help_msg: "Sync", - action_msg: "Emergency Sync\n", + action_msg: "Emergency Sync", }; static void sysrq_handle_mountro(int key, struct pt_regs *pt_regs, @@ -241,7 +241,7 @@ static struct sysrq_key_op sysrq_mountro_op = { handler: sysrq_handle_mountro, help_msg: "Unmount", - action_msg: "Emergency Remount R/0\n", + action_msg: "Emergency Remount R/O", }; /* END SYNC SYSRQ HANDLERS BLOCK */ @@ -257,7 +257,7 @@ static struct sysrq_key_op sysrq_showregs_op = { handler: sysrq_handle_showregs, help_msg: "showPc", - action_msg: "Show Regs\n", + action_msg: "Show Regs", }; @@ -268,7 +268,7 @@ static struct sysrq_key_op sysrq_showstate_op = { handler: sysrq_handle_showstate, help_msg: "showTasks", - action_msg: "Show State\n", + action_msg: "Show State", }; @@ -279,7 +279,7 @@ static struct sysrq_key_op sysrq_showmem_op = { handler: sysrq_handle_showmem, help_msg: "showMem", - action_msg: "Show Memory\n", + action_msg: "Show Memory", }; /* SHOW SYSRQ HANDLERS BLOCK */ @@ -312,7 +312,7 @@ static struct sysrq_key_op sysrq_term_op = { handler: sysrq_handle_term, help_msg: "tErm", - action_msg: "Terminate All Tasks\n", + action_msg: "Terminate All Tasks", }; static void sysrq_handle_kill(int key, struct pt_regs *pt_regs, @@ -323,7 +323,7 @@ static struct sysrq_key_op sysrq_kill_op = { handler: sysrq_handle_kill, help_msg: "kIll", - action_msg: "Kill All Tasks\n", + action_msg: "Kill All Tasks", }; static void sysrq_handle_killall(int key, struct pt_regs *pt_regs, @@ -334,7 +334,7 @@ static struct sysrq_key_op sysrq_killall_op = { handler: sysrq_handle_killall, help_msg: "killalL", - action_msg: "Kill All Tasks (even init)\n", + action_msg: "Kill All Tasks (even init)", }; /* END SIGNAL SYSRQ HANDLERS BLOCK */ @@ -467,8 +467,9 @@ op_p = __sysrq_get_key_op(key); if (op_p) { - printk ("%s", op_p->action_msg); - op_p->handler(key, pt_regs, kbd, tty); + printk ("%s\n", op_p->action_msg); + console_loglevel = orig_log_level; + op_p->handler(key, pt_regs, kbd, tty); } else { printk("HELP : "); /* Only print the help msg once per handler */ @@ -479,8 +480,8 @@ printk ("%s ", sysrq_key_table[i]->help_msg); } printk ("\n"); + console_loglevel = orig_log_level; } - console_loglevel = orig_log_level; } EXPORT_SYMBOL(handle_sysrq); Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- vt.c 2001/10/05 03:58:58 1.109 +++ vt.c 2001/10/29 00:10:59 1.110 @@ -522,22 +522,30 @@ if (sw->con_invert_region) sw->con_invert_region(vc, p, count); else { - u16 *q = p; int cnt = count; + u16 *q = p; + u16 a; if (!can_do_color) { - while (cnt--) *q++ ^= 0x0800; + while (cnt--) { + a = scr_readw(q); + a ^= 0x0800; + scr_writew(a, q); + q++; + } } else if (hi_font_mask == 0x100) { while (cnt--) { u16 a = scr_readw(q); a = ((a) & 0x11ff) | (((a) & 0xe000) >> 4) | (((a) & 0x0e00) << 4); - scr_writew(a, q++); + scr_writew(a, q); + q++; } } else { while (cnt--) { u16 a = scr_readw(q); a = ((a) & 0x88ff) | (((a) & 0x7000) >> 4) | (((a) & 0x0700) << 4); - scr_writew(a, q++); + scr_writew(a, q); + q++; } } } |
From: James S. <jsi...@us...> - 2001-10-29 00:11:03
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/sh In directory usw-pr-cvs1:/tmp/cvs-serv10630/arch/sh Modified Files: config.in Log Message: Synced to 2.4.13 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/sh/config.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- config.in 2001/10/06 16:11:13 1.14 +++ config.in 2001/10/29 00:10:59 1.15 @@ -90,8 +90,17 @@ fi bool 'Little Endian' CONFIG_CPU_LITTLE_ENDIAN # Platform-specific memory start and size definitions -if [ "$CONFIG_SH_SOLUTION_ENGINE" = "y" -o "$CONFIG_SH_HP600" = "y" -o \ - "$CONFIG_SH_BIGSUR" = "y" -o "$CONFIG_SH_7751_SOLUTION_ENGINE" = "y" -o \ +if [ "$CONFIG_SH_SOLUTION_ENGINE" = "y" ]; then + define_hex CONFIG_MEMORY_START 0c000000 + define_hex CONFIG_MEMORY_SIZE 02000000 + define_bool CONFIG_MEMORY_SET y +fi +if [ "$CONFIG_SH_7751_SOLUTION_ENGINE" = "y" ]; then + define_hex CONFIG_MEMORY_START 0c000000 + define_hex CONFIG_MEMORY_SIZE 04000000 + define_bool CONFIG_MEMORY_SET y +fi +if [ "$CONFIG_SH_HP600" = "y" -o "$CONFIG_SH_BIGSUR" = "y" -o \ "$CONFIG_SH_DREAMCAST" = "y" -o "$CONFIG_SH_SH2000" = "y" ]; then define_hex CONFIG_MEMORY_START 0c000000 define_hex CONFIG_MEMORY_SIZE 00400000 @@ -204,6 +213,7 @@ tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC +source drivers/serial/Config.in source drivers/parport/Config.in endmenu @@ -313,6 +323,16 @@ fi dep_tristate 'Support for user-space parallel port device drivers' CONFIG_PPDEV $CONFIG_PARPORT fi + +mainmenu_option next_comment +comment 'Watchdog Cards' +bool 'Watchdog Timer Support' CONFIG_WATCHDOG +if [ "$CONFIG_WATCHDOG" != "n" ]; then + bool ' Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT + dep_tristate ' SH 3/4 Watchdog' CONFIG_SH_WDT $CONFIG_SUPERH +fi +endmenu + tristate 'Enhanced Real Time Clock Support' CONFIG_RTC if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then source drivers/char/pcmcia/Config.in |
From: James S. <jsi...@us...> - 2001-10-29 00:11:03
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers/usb Modified Files: Config.in Log Message: Synced to 2.4.13 Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/Config.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- Config.in 2001/10/15 01:13:17 1.16 +++ Config.in 2001/10/29 00:11:00 1.17 @@ -4,8 +4,8 @@ mainmenu_option next_comment comment 'USB support' -tristate 'Support for USB' CONFIG_USB -if [ ! "$CONFIG_USB" = "n" ]; then +dep_tristate 'Support for USB' CONFIG_USB $CONFIG_PCI +if [ "$CONFIG_USB" = "y" -o "$CONFIG_USB" = "m" ]; then bool ' USB verbose debug messages' CONFIG_USB_DEBUG comment 'Miscellaneous USB options' @@ -15,61 +15,71 @@ else define_bool CONFIG_USB_BANDWIDTH n fi + bool ' Long timeout for slow-responding devices (some MGE Ellipse UPSes)' CONFIG_USB_LONG_TIMEOUT + bool ' Large report fetching for "broken" devices (some APC UPSes)' CONFIG_USB_LARGE_CONFIG +fi comment 'USB Controllers' - if [ "$CONFIG_USB_UHCI_ALT" != "y" ]; then - dep_tristate ' UHCI (Intel PIIX4, VIA, ...) support' CONFIG_USB_UHCI $CONFIG_USB - fi - if [ "$CONFIG_USB_UHCI" != "y" ]; then - dep_tristate ' UHCI Alternate Driver (JE) support' CONFIG_USB_UHCI_ALT $CONFIG_USB - fi - dep_tristate ' OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support' CONFIG_USB_OHCI $CONFIG_USB +if [ "$CONFIG_USB_UHCI_ALT" != "y" ]; then + dep_tristate ' UHCI (Intel PIIX4, VIA, ...) support' CONFIG_USB_UHCI $CONFIG_USB +fi +if [ "$CONFIG_USB_UHCI" != "y" ]; then + dep_tristate ' UHCI Alternate Driver (JE) support' CONFIG_USB_UHCI_ALT $CONFIG_USB +else + define_bool CONFIG_USB_UHCI_ALT n +fi +dep_tristate ' OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support' CONFIG_USB_OHCI $CONFIG_USB - comment 'USB Device Class drivers' - dep_tristate ' USB Audio support' CONFIG_USB_AUDIO $CONFIG_USB $CONFIG_SOUND - dep_tristate ' USB Bluetooth support (EXPERIMENTAL)' CONFIG_USB_BLUETOOTH $CONFIG_USB $CONFIG_EXPERIMENTAL - dep_tristate ' USB Mass Storage support' CONFIG_USB_STORAGE $CONFIG_USB $CONFIG_SCSI - if [ "$CONFIG_USB_STORAGE" != "n" ]; then - bool ' USB Mass Storage verbose debug' CONFIG_USB_STORAGE_DEBUG - bool ' Freecom USB/ATAPI Bridge support' CONFIG_USB_STORAGE_FREECOM - bool ' ISD-200 USB/ATA Bridge support' CONFIG_USB_STORAGE_ISD200 - bool ' Microtech CompactFlash/SmartMedia support' CONFIG_USB_STORAGE_DPCM - if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then - bool ' HP CD-Writer 82xx support' CONFIG_USB_STORAGE_HP8200e - bool ' SanDisk SDDR-09 (and other SmartMedia) support' CONFIG_USB_STORAGE_SDDR09 - fi - fi - dep_tristate ' USB Modem (CDC ACM) support' CONFIG_USB_ACM $CONFIG_USB - dep_tristate ' USB Printer support' CONFIG_USB_PRINTER $CONFIG_USB +comment 'USB Device Class drivers' +dep_tristate ' USB Audio support' CONFIG_USB_AUDIO $CONFIG_USB $CONFIG_SOUND +dep_tristate ' USB Bluetooth support (EXPERIMENTAL)' CONFIG_USB_BLUETOOTH $CONFIG_USB $CONFIG_EXPERIMENTAL +dep_tristate ' USB Mass Storage support' CONFIG_USB_STORAGE $CONFIG_USB $CONFIG_SCSI + dep_mbool ' USB Mass Storage verbose debug' CONFIG_USB_STORAGE_DEBUG $CONFIG_USB_STORAGE + dep_mbool ' Datafab MDCFE-B Compact Flash Reader support' CONFIG_USB_STORAGE_DATAFAB $CONFIG_USB_STORAGE $CONFIG_EXPERIMENTAL + dep_mbool ' Freecom USB/ATAPI Bridge support' CONFIG_USB_STORAGE_FREECOM $CONFIG_USB_STORAGE + dep_mbool ' ISD-200 USB/ATA Bridge support' CONFIG_USB_STORAGE_ISD200 $CONFIG_USB_STORAGE + dep_mbool ' Microtech CompactFlash/SmartMedia support' CONFIG_USB_STORAGE_DPCM $CONFIG_USB_STORAGE + dep_mbool ' HP CD-Writer 82xx support' CONFIG_USB_STORAGE_HP8200e $CONFIG_USB_STORAGE $CONFIG_EXPERIMENTAL + dep_mbool ' SanDisk SDDR-09 (and other SmartMedia) support' CONFIG_USB_STORAGE_SDDR09 $CONFIG_USB_STORAGE $CONFIG_EXPERIMENTAL + dep_mbool ' Lexar Jumpshot Compact Flash Reader' CONFIG_USB_STORAGE_JUMPSHOT $CONFIG_USB_STORAGE $CONFIG_EXPERIMENTAL +dep_tristate ' USB Modem (CDC ACM) support' CONFIG_USB_ACM $CONFIG_USB +dep_tristate ' USB Printer support' CONFIG_USB_PRINTER $CONFIG_USB - comment 'USB Imaging devices' - dep_tristate ' USB Kodak DC-2xx Camera support' CONFIG_USB_DC2XX $CONFIG_USB - dep_tristate ' USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)' CONFIG_USB_MDC800 $CONFIG_USB $CONFIG_EXPERIMENTAL - dep_tristate ' USB Scanner support' CONFIG_USB_SCANNER $CONFIG_USB - dep_tristate ' Microtek X6USB scanner support' CONFIG_USB_MICROTEK $CONFIG_USB $CONFIG_SCSI - dep_tristate ' HP53xx USB scanner support (EXPERIMENTAL)' CONFIG_USB_HPUSBSCSI $CONFIG_USB $CONFIG_SCSI $CONFIG_EXPERIMENTAL +comment 'USB Imaging devices' +dep_tristate ' USB Kodak DC-2xx Camera support' CONFIG_USB_DC2XX $CONFIG_USB +dep_tristate ' USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)' CONFIG_USB_MDC800 $CONFIG_USB $CONFIG_EXPERIMENTAL +dep_tristate ' USB Scanner support' CONFIG_USB_SCANNER $CONFIG_USB +dep_tristate ' Microtek X6USB scanner support' CONFIG_USB_MICROTEK $CONFIG_USB $CONFIG_SCSI +dep_tristate ' HP53xx USB scanner support (EXPERIMENTAL)' CONFIG_USB_HPUSBSCSI $CONFIG_USB $CONFIG_SCSI $CONFIG_EXPERIMENTAL - comment 'USB Multimedia devices' +comment 'USB Multimedia devices' +if [ "$CONFIG_VIDEO_DEV" = "n" ]; then + comment ' Video4Linux support is needed for USB Multimedia device support' +else dep_tristate ' USB IBM (Xirlink) C-it Camera support' CONFIG_USB_IBMCAM $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB OV511 Camera support' CONFIG_USB_OV511 $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB Philips Cameras' CONFIG_USB_PWC $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB SE401 Camera support' CONFIG_USB_SE401 $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' D-Link USB FM radio support (EXPERIMENTAL)' CONFIG_USB_DSBR $CONFIG_USB $CONFIG_VIDEO_DEV $CONFIG_EXPERIMENTAL dep_tristate ' DABUSB driver' CONFIG_USB_DABUSB $CONFIG_USB +fi - comment 'USB Network adaptors' +comment 'USB Network adaptors' +if [ "$CONFIG_NET" = "n" ]; then + comment ' Networking support is needed for USB Networking device support' +else dep_tristate ' USB ADMtek Pegasus-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_PEGASUS $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL - dep_tristate ' USB CATC NetMate-based Ethernet driver (EXPERIMENTAL)' CONFIG_USB_CATC $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL - dep_tristate ' USB CDC Ethernet class (USB cable modem) support (EXPERIMENTAL)' CONFIG_USB_CDCETHER $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL dep_tristate ' USB KLSI KL5USB101-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_KAWETH $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL - dep_tristate ' USB-to-USB Networking (NetChip, Prolific, ...) (EXPERIMENTAL)' CONFIG_USB_USBNET $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL + dep_tristate ' USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)' CONFIG_USB_CATC $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL + dep_tristate ' USB Communication Class Ethernet device support (EXPERIMENTAL)' CONFIG_USB_CDCETHER $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL + dep_tristate ' USB-to-USB Networking cable device support (EXPERIMENTAL)' CONFIG_USB_USBNET $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL +fi - comment 'USB port drivers' - dep_tristate ' USS720 parport driver' CONFIG_USB_USS720 $CONFIG_USB $CONFIG_PARPORT - source drivers/usb/serial/Config.in +comment 'USB port drivers' +dep_tristate ' USS720 parport driver' CONFIG_USB_USS720 $CONFIG_USB $CONFIG_PARPORT +source drivers/usb/serial/Config.in - comment 'USB misc drivers' - dep_tristate ' USB Diamond Rio500 support (EXPERIMENTAL)' CONFIG_USB_RIO500 $CONFIG_USB $CONFIG_EXPERIMENTAL -fi +comment 'USB Miscellaneous drivers' +dep_tristate ' USB Diamond Rio500 support (EXPERIMENTAL)' CONFIG_USB_RIO500 $CONFIG_USB $CONFIG_EXPERIMENTAL endmenu |
From: James S. <jsi...@us...> - 2001-10-29 00:11:03
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers Modified Files: Makefile Log Message: Synced to 2.4.13 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile 2001/07/29 18:24:12 1.15 +++ Makefile 2001/10/29 00:10:59 1.16 @@ -7,7 +7,7 @@ mod-subdirs := dio mtd sbus macintosh usb input telephony sgi ide \ - i2o message/fusion scsi md ieee1394 pnp isdn atm \ + message/i2o message/fusion scsi md ieee1394 pnp isdn atm \ fc4 net/hamradio i2c acpi bluetooth serial subdir-y := parport char block net sound misc media cdrom video @@ -18,7 +18,7 @@ subdir-$(CONFIG_PCI) += pci subdir-$(CONFIG_PCMCIA) += pcmcia subdir-$(CONFIG_MTD) += mtd -subdir-$(CONFIG_UART) += serial +subdir-$(CONFIG_UART) += serial subdir-$(CONFIG_SBUS) += sbus subdir-$(CONFIG_ZORRO) += zorro subdir-$(CONFIG_NUBUS) += nubus @@ -31,7 +31,7 @@ subdir-$(CONFIG_SGI) += sgi subdir-$(CONFIG_IDE) += ide subdir-$(CONFIG_SCSI) += scsi -subdir-$(CONFIG_I2O) += i2o +subdir-$(CONFIG_I2O) += message/i2o subdir-$(CONFIG_FUSION) += message/fusion subdir-$(CONFIG_MD) += md subdir-$(CONFIG_IEEE1394) += ieee1394 @@ -46,7 +46,7 @@ subdir-$(CONFIG_ACPI) += acpi subdir-$(CONFIG_BLUEZ) += bluetooth -subdif-$(CONFIG_SSI) += ssi +subdif-$(CONFIG_SSI) += ssi include $(TOPDIR)/Rules.make |
From: James S. <jsi...@us...> - 2001-10-29 00:11:03
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/block In directory usw-pr-cvs1:/tmp/cvs-serv10630/drivers/block Modified Files: genhd.c Log Message: Synced to 2.4.13 Index: genhd.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/block/genhd.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- genhd.c 2001/10/15 01:13:17 1.7 +++ genhd.c 2001/10/29 00:10:59 1.8 @@ -161,9 +161,6 @@ extern int blk_dev_init(void); -#ifdef CONFIG_BLK_DEV_DAC960 -extern void DAC960_Initialize(void); -#endif #ifdef CONFIG_FUSION_BOOT extern int fusion_init(void); #endif @@ -180,9 +177,6 @@ sti(); #ifdef CONFIG_I2O i2o_init(); -#endif -#ifdef CONFIG_BLK_DEV_DAC960 - DAC960_Initialize(); #endif #ifdef CONFIG_FUSION_BOOT fusion_init(); |
From: johann d. <jd...@us...> - 2001-10-28 19:10:27
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/input In directory usw-pr-cvs1:/tmp/cvs-serv13293 Modified Files: iforce-ff.c iforce-main.c iforce-packets.c Log Message: Removed debug messages. Index: iforce-ff.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-ff.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- iforce-ff.c 2001/10/27 14:43:18 1.4 +++ iforce-ff.c 2001/10/28 19:10:24 1.5 @@ -41,8 +41,6 @@ { unsigned char data[3]; - printk(KERN_DEBUG "iforce: in make_magnitude_modifier\n"); - if (!no_alloc) { down(&iforce->mem_mutex); if (allocate_resource(&(iforce->device_memory), mod_chunk, 2, @@ -182,6 +180,7 @@ data[9] = (100*lsat)>>16; iforce_send_packet(iforce, FF_CMD_INTERACT, data); + iforce_dump_packet("interactive", FF_CMD_INTERACT, data); return 0; } @@ -408,9 +407,6 @@ effect->trigger.interval, effect->direction); } - else { - printk(KERN_DEBUG "iforce.c: no effect packet was needed\n"); - } /* If one of the parameter creation failed, we already returned an * error code. @@ -438,8 +434,6 @@ int param2_err = 1; int core_err = 0; - printk(KERN_DEBUG "iforce.c: make constant effect\n"); - if (!is_update || need_magnitude_modifier(iforce, effect)) { param1_err = make_magnitude_modifier(iforce, mod1_chunk, is_update, @@ -471,9 +465,6 @@ effect->trigger.interval, effect->direction); } - else { - printk(KERN_DEBUG "iforce.c: no effect packet was needed\n"); - } /* If one of the parameter creation failed, we already returned an * error code. @@ -496,8 +487,6 @@ u16 mod1, mod2, direction; int param_err = 1; int core_err = 0; - - printk(KERN_DEBUG "iforce.c: make interactive effect\n"); switch (effect->type) { case FF_SPRING: type = 0x40; break; Index: iforce-main.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-main.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- iforce-main.c 2001/10/23 21:20:54 1.3 +++ iforce-main.c 2001/10/28 19:10:24 1.4 @@ -120,8 +120,6 @@ int ret; int is_update; - printk(KERN_DEBUG "iforce.c: upload effect\n"); - /* * If we want to create a new effect, get a free id */ @@ -149,7 +147,6 @@ /* Check the effect is not already being updated */ if (test_bit(FF_CORE_UPDATE, iforce->core_effects[effect->id].flags)) { - printk(KERN_DEBUG "iforce.c: update too frequent refused\n"); return -EAGAIN; } @@ -203,8 +200,6 @@ return -EACCES; } - printk(KERN_DEBUG "iforce.c: erase effect %d\n", effect_id); - if (effect_id < 0 || effect_id >= FF_EFFECTS_MAX) return -EINVAL; @@ -238,7 +233,7 @@ #endif } - /* Reset device */ + /* Enable force feedback */ iforce_send_packet(iforce, FF_CMD_ENABLE, "\004"); return 0; @@ -256,7 +251,7 @@ current->pid == iforce->core_effects[i].owner) { /* Stop effect */ - iforce_input_event(dev, EV_FF, i, 0); + input_report_ff(dev, i, 0); /* Free ressources assigned to effect */ if (iforce_erase_effect(dev, i)) { @@ -322,7 +317,6 @@ iforce->dev.idbus = BUS_USB; iforce->dev.private = iforce; - iforce->dev.name = iforce->name; iforce->dev.name = iforce->phys; iforce->dev.open = iforce_open; iforce->dev.close = iforce_close; Index: iforce-packets.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-packets.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- iforce-packets.c 2001/10/23 21:20:54 1.3 +++ iforce-packets.c 2001/10/28 19:10:24 1.4 @@ -142,11 +142,10 @@ (iforce->core_effects[i].mod1_chunk.start == addr || iforce->core_effects[i].mod2_chunk.start == addr)) { clear_bit(FF_CORE_UPDATE, iforce->core_effects[i].flags); -printk(KERN_DEBUG "iforce.c: marked effect %d as ready\n", i); return 0; } } - printk(KERN_DEBUG "iforce.c: unused effect %04x updated !!!\n", addr); + printk(KERN_WARNING "iforce-packets.c: unused effect %04x updated !!!\n", addr); return -1; } @@ -157,7 +156,7 @@ static int being_used = 0; if (being_used) - printk(KERN_WARNING "iforce.c: re-entrant call to iforce_process %d\n", being_used); + printk(KERN_WARNING "iforce-packets.c: re-entrant call to iforce_process %d\n", being_used); being_used++; #ifdef IFORCE_232 @@ -218,8 +217,7 @@ if (LO(cmd) > 3) { int j; for (j=3; j<LO(cmd); j+=2) { - if (mark_core_as_ready(iforce, data[j] | (data[j+1]<<8))) - iforce_dump_packet("ff status", cmd, data); + mark_core_as_ready(iforce, data[j] | (data[j+1]<<8)); } } break; |
From: johann d. <jd...@us...> - 2001-10-27 14:44:19
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv23710/linux/include/linux Modified Files: input.h Log Message: Changed saturation values of interactive effects to unsigned values. Index: input.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/input.h,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- input.h 2001/10/06 14:46:03 1.53 +++ input.h 2001/10/27 14:44:17 1.54 @@ -543,8 +543,8 @@ */ __u16 axis; - __s16 right_saturation; /* Max level when joystick is on the right */ - __s16 left_saturation; /* Max level when joystick in on the left */ + __u16 right_saturation; /* Max level when joystick is on the right */ + __u16 left_saturation; /* Max level when joystick in on the left */ __s16 right_coeff; /* Indicates how fast the force grows when the joystick moves to the right */ |
From: johann d. <jd...@us...> - 2001-10-27 14:43:20
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/input In directory usw-pr-cvs1:/tmp/cvs-serv23635/linux/drivers/input Modified Files: iforce-ff.c Log Message: Fixed interactive effects. Index: iforce-ff.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-ff.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- iforce-ff.c 2001/10/23 21:20:54 1.3 +++ iforce-ff.c 2001/10/27 14:43:18 1.4 @@ -149,7 +149,7 @@ static int make_interactive_modifier(struct iforce* iforce, struct resource* mod_chunk, int no_alloc, - __s16 rsat, __s16 lsat, __s16 rk, __s16 lk, u16 db, __s16 center) + __u16 rsat, __u16 lsat, __s16 rk, __s16 lk, u16 db, __s16 center) { unsigned char data[10]; @@ -167,17 +167,19 @@ data[0] = LO(mod_chunk->start); data[1] = HI(mod_chunk->start); - data[2] = HIFIX80(rk); - data[3] = HIFIX80(lk); + data[2] = (100*rk)>>15; /* Dangerous: the sign is extended by gcc on plateforms providing an arith shift */ + data[3] = (100*lk)>>15; /* This code is incorrect on cpus lacking arith shift */ + center = (500*center)>>15; data[4] = LO(center); data[5] = HI(center); + db = (1000*db)>>16; data[6] = LO(db); data[7] = HI(db); - data[8] = HIFIX80(rsat); - data[9] = HIFIX80(lsat); + data[8] = (100*rsat)>>16; + data[9] = (100*lsat)>>16; iforce_send_packet(iforce, FF_CMD_INTERACT, data); |
From: johann d. <jd...@us...> - 2001-10-26 21:10:37
|
Update of /cvsroot/linuxconsole/ruby/linux/Documentation/input In directory usw-pr-cvs1:/tmp/cvs-serv7158 Modified Files: iforce-protocol.txt Log Message: Fixed some details about the encoding of values for interactive effects. For some mysterious reasons, they do not follow the same rules as other effects. Index: iforce-protocol.txt =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Documentation/input/iforce-protocol.txt,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- iforce-protocol.txt 2001/08/04 09:34:44 1.11 +++ iforce-protocol.txt 2001/10/26 21:10:35 1.12 @@ -86,12 +86,16 @@ LEN= 0a 00-01 Address 02 Positive Coeff -03 Negative Coeff (Val 14 = 2000 (decimal)) -04 Offset (Val 64 = 2000 (decimal)) | center ? -05 ??? Val = 00 | +03 Negative Coeff +04+05 Offset (center) 06+07 Dead band (Val 01F4 = 5000 (decimal)) 08 Positive saturation (Val 0a = 1000 (decimal) Val 64 = 10000 (decimal)) 09 Negative saturation + +The encoding is a bit funny here: For coeffs, these are signed values. The +maximum value is 64 (100 decimal), the min is 9c. +For the offset, the minimum value is FE0C, the maximum value is 01F4. +For the deadband, the minimum value is 0, the max is 03E8. ** Controls ** OP= 41 |
From: Vojtech P. <vo...@us...> - 2001-10-24 11:19:31
|
Update of /cvsroot/linuxconsole/ruby/utils In directory usw-pr-cvs1:/tmp/cvs-serv12814 Modified Files: evtest.c Log Message: Added one more sanity check. Index: evtest.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/utils/evtest.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- evtest.c 2001/10/02 19:25:14 1.15 +++ evtest.c 2001/10/24 11:19:28 1.16 @@ -98,9 +98,9 @@ int abs[5]; if (argc < 2) { - printf ("Usage: evtest /dev/input/eventX\n"); - printf ("Where X = input device number\n"); - exit (1); + printf("Usage: evtest /dev/input/eventX\n"); + printf("Where X = input device number\n"); + exit(1); } if ((fd = open(argv[argc - 1], O_RDONLY)) < 0) { @@ -108,7 +108,11 @@ exit(1); } - ioctl(fd, EVIOCGVERSION, &version); + if (ioctl(fd, EVIOCGVERSION, &version)) { + perror("evtest: can't get version"); + exit(1); + } + printf("Input driver version is %d.%d.%d\n", version >> 16, (version >> 8) & 0xff, version & 0xff); |
From: johann d. <jd...@us...> - 2001-10-23 21:20:57
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/input In directory usw-pr-cvs1:/tmp/cvs-serv22934 Modified Files: iforce-ff.c iforce-main.c iforce-packets.c iforce.h Log Message: Added a function iforce_control_playback. It can be used to bypass input_event to start/stop an effect, which necessary when updating effects. Do not restart an effect that stops. We had no way to tell if the effect stopped normally or too early. Instead, make_core_effect restart the effects if necessary. Index: iforce-ff.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-ff.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- iforce-ff.c 2001/10/16 21:05:57 1.2 +++ iforce-ff.c 2001/10/23 21:20:54 1.3 @@ -336,7 +336,16 @@ data[12] = LO(delay); data[13] = HI(delay); + /* Stop effect */ +/* iforce_control_playback(iforce, id, 0);*/ + iforce_send_packet(iforce, FF_CMD_EFFECT, data); + + /* If needed, restart effect */ + if (test_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[id].flags)) { + /* BUG: perhaps we should replay n times, instead of 1. But we do not know n */ + iforce_control_playback(iforce, id, 1); + } return 0; } Index: iforce-main.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-main.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- iforce-main.c 2001/10/16 21:05:57 1.2 +++ iforce-main.c 2001/10/23 21:20:54 1.3 @@ -101,11 +101,8 @@ else { clear_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[code].flags); } - data[0] = LO(code); - data[1] = (value > 0) ? ((value > 1) ? 0x41 : 0x01) : 0; - data[2] = LO(value); - iforce_send_packet(iforce, FF_CMD_PLAY, data); + iforce_control_playback(iforce, code, value); return 0; } Index: iforce-packets.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce-packets.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- iforce-packets.c 2001/10/16 21:05:57 1.2 +++ iforce-packets.c 2001/10/23 21:20:54 1.3 @@ -119,6 +119,19 @@ return 0; } +/* Start or stop an effect */ +int iforce_control_playback(struct iforce* iforce, u16 id, unsigned int value) +{ + unsigned char data[3]; + +printk(KERN_DEBUG "iforce-packets.c: control_playback %d %d\n", id, value); + + data[0] = LO(id); + data[1] = (value > 0) ? ((value > 1) ? 0x41 : 0x01) : 0; + data[2] = LO(value); + return iforce_send_packet(iforce, FF_CMD_PLAY, data); +} + /* Mark an effect that was being updated as ready. That means it can be updated * again */ static int mark_core_as_ready(struct iforce *iforce, unsigned short addr) @@ -195,22 +208,12 @@ if (data[1] & 0x80) { if (!test_and_set_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) { /* Report play event */ - input_report_ff_status(dev, i, FF_STATUS_PLAYING); -printk(KERN_DEBUG "iforce.c: effect %d started to play\n", i); + input_report_ff_status(dev, i, FF_STATUS_PLAYING); } } - else { - if (!test_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[i].flags)) { - if (test_and_clear_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) { - /* Report stop event */ - input_report_ff_status(dev, i, FF_STATUS_STOPPED); -printk(KERN_DEBUG "iforce.c: effect %d stopped to play\n", i); - } - } - else { -printk(KERN_WARNING "iforce.c: effect %d stopped, while it should not\nStarting again\n", i); - input_report_ff(dev, i, 1); - } + else if (test_and_clear_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) { + /* Report stop event */ + input_report_ff_status(dev, i, FF_STATUS_STOPPED); } if (LO(cmd) > 3) { int j; Index: iforce.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/iforce.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- iforce.h 2001/10/16 21:05:57 1.2 +++ iforce.h 2001/10/23 21:20:54 1.3 @@ -179,6 +179,7 @@ int iforce_init_device(struct iforce *iforce); /* iforce-packets.c */ +int iforce_control_playback(struct iforce*, u16 id, unsigned int); void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data); int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data); void iforce_dump_packet(char *msg, u16 cmd, unsigned char *data) ; |