Commit c643de42 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://linuxusb.bkbits.net/linus-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 93758098 45fbecb1
...@@ -27,7 +27,7 @@ fundamental disruption in the standard workflow of changes, commits, ...@@ -27,7 +27,7 @@ fundamental disruption in the standard workflow of changes, commits,
and merges. You will need to take a few minutes to think about and merges. You will need to take a few minutes to think about
how to best work under BitKeeper, and re-optimize things a bit. how to best work under BitKeeper, and re-optimize things a bit.
In some sense it is a bit radical, because it might described as In some sense it is a bit radical, because it might described as
tossing changes out into a maelstrom and having them them magically tossing changes out into a maelstrom and having them magically
land at the right destination... but I'm getting ahead of myself. land at the right destination... but I'm getting ahead of myself.
Let's start with this progression: Let's start with this progression:
......
...@@ -1025,7 +1025,7 @@ EXPORT_NO_SYMBOLS; ...@@ -1025,7 +1025,7 @@ EXPORT_NO_SYMBOLS;
Similar to <function>EXPORT_SYMBOL()</function> except that the Similar to <function>EXPORT_SYMBOL()</function> except that the
symbols exported by <function>EXPORT_SYMBOL_GPL()</function> can symbols exported by <function>EXPORT_SYMBOL_GPL()</function> can
only be seen by modules with a only be seen by modules with a
<function>MODULE_LICENCE()</function> that specifies a GPL <function>MODULE_LICENSE()</function> that specifies a GPL
compatible license. compatible license.
</para> </para>
</sect1> </sect1>
......
...@@ -347,9 +347,9 @@ fs lib mm ipc kernel drivers net sound: dummy ...@@ -347,9 +347,9 @@ fs lib mm ipc kernel drivers net sound: dummy
$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@) $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)
TAGS: dummy TAGS: dummy
etags `find include/asm-$(ARCH) -name '*.h'` { find include/asm-${ARCH} -name '*.h' -print ; \
find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs etags -a find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print ; \
find $(SUBDIRS) init -name '*.[ch]' | xargs etags -a find $(SUBDIRS) init -name '*.[ch]' ; } | grep -v SCCS | etags -
# Exuberant ctags works better with -I # Exuberant ctags works better with -I
tags: dummy tags: dummy
......
...@@ -324,14 +324,7 @@ fi ...@@ -324,14 +324,7 @@ fi
source net/ax25/Config.in source net/ax25/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -219,7 +219,7 @@ asmlinkage unsigned long sys_getxpid(int a0, int a1, int a2, int a3, int a4, ...@@ -219,7 +219,7 @@ asmlinkage unsigned long sys_getxpid(int a0, int a1, int a2, int a3, int a4,
* isn't actually going to matter, as if the parent happens * isn't actually going to matter, as if the parent happens
* to change we can happily return either of the pids. * to change we can happily return either of the pids.
*/ */
(&regs)->r20 = tsk->p_opptr->pid; (&regs)->r20 = tsk->real_parent->pid;
return tsk->pid; return tsk->pid;
} }
......
...@@ -54,15 +54,21 @@ sys_sethae(unsigned long hae, unsigned long a1, unsigned long a2, ...@@ -54,15 +54,21 @@ sys_sethae(unsigned long hae, unsigned long a1, unsigned long a2,
return 0; return 0;
} }
void default_idle(void)
{
barrier();
}
void void
cpu_idle(void) cpu_idle(void)
{ {
while (1) { while (1) {
void (*idle)(void) = default_idle;
/* FIXME -- EV6 and LCA45 know how to power down /* FIXME -- EV6 and LCA45 know how to power down
the CPU. */ the CPU. */
while (!need_resched()) while (!need_resched())
barrier(); idle();
schedule(); schedule();
} }
} }
......
...@@ -292,7 +292,7 @@ sys_ptrace(long request, long pid, long addr, long data, ...@@ -292,7 +292,7 @@ sys_ptrace(long request, long pid, long addr, long data,
if (request != PTRACE_KILL) if (request != PTRACE_KILL)
goto out; goto out;
} }
if (child->p_pptr != current) { if (child->parent != current) {
DBG(DBG_MEM, ("child not parent of this process\n")); DBG(DBG_MEM, ("child not parent of this process\n"));
goto out; goto out;
} }
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
* (C) Copyright 1999, 2000 Richard Henderson * (C) Copyright 1999, 2000 Richard Henderson
*/ */
#include <linux/errno.h>
#include <linux/sched.h> #include <linux/sched.h>
/* /*
* Semaphores are implemented using a two-way counter: * Semaphores are implemented using a two-way counter:
* *
......
...@@ -661,8 +661,8 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw, ...@@ -661,8 +661,8 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw,
info.si_signo = signr; info.si_signo = signr;
info.si_errno = 0; info.si_errno = 0;
info.si_code = SI_USER; info.si_code = SI_USER;
info.si_pid = current->p_pptr->pid; info.si_pid = current->parent->pid;
info.si_uid = current->p_pptr->uid; info.si_uid = current->parent->uid;
} }
/* If the (new) signal is now blocked, requeue it. */ /* If the (new) signal is now blocked, requeue it. */
...@@ -701,7 +701,7 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw, ...@@ -701,7 +701,7 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw,
case SIGSTOP: case SIGSTOP:
current->state = TASK_STOPPED; current->state = TASK_STOPPED;
current->exit_code = signr; current->exit_code = signr;
if (!(current->p_pptr->sig->action[SIGCHLD-1] if (!(current->parent->sig->action[SIGCHLD-1]
.sa.sa_flags & SA_NOCLDSTOP)) .sa.sa_flags & SA_NOCLDSTOP))
notify_parent(current, SIGCHLD); notify_parent(current, SIGCHLD);
schedule(); schedule();
......
...@@ -283,7 +283,7 @@ paging_init(void) ...@@ -283,7 +283,7 @@ paging_init(void)
unsigned long dma_pfn, high_pfn; unsigned long dma_pfn, high_pfn;
dma_pfn = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; dma_pfn = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
high_pfn = max_low_pfn; high_pfn = max_pfn = max_low_pfn;
if (dma_pfn >= high_pfn) if (dma_pfn >= high_pfn)
zones_size[ZONE_DMA] = high_pfn; zones_size[ZONE_DMA] = high_pfn;
......
...@@ -836,3 +836,153 @@ CONFIG_DEBUG_BUGVERBOSE ...@@ -836,3 +836,153 @@ CONFIG_DEBUG_BUGVERBOSE
of the BUG call as well as the EIP and oops trace. This aids of the BUG call as well as the EIP and oops trace. This aids
debugging but costs about 70-100K of memory. debugging but costs about 70-100K of memory.
CONFIG_ZBOOT_ROM
Say Y here if you intend to execute your compressed kernel image (zImage)
directly from ROM or flash. If unsure, say N.
CONFIG_ZBOOT_ROM_TEXT
The base address for zImage. Unless you have special requirements, you
should not change this value.
CONFIG_ZBOOT_ROM_BSS
The base address of 64KiB of read/write memory, which must be available
while the decompressor is running. Unless you have special requirements,
you should not change this value.
CONFIG_CPU_FREQ
CPU clock scaling allows you to change the clock speed of the
running CPU on the fly. This is a nice method to save battery power,
because the lower the clock speed, the less power the CPU
consumes. Note that this driver doesn't automatically change the CPU
clock speed, you need some userland tools (which still have to be
written) to implement the policy. If you don't understand what this
is all about, it's safe to say 'N'.
CONFIG_ARCH_EDB7211
Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
evaluation board.
CONFIG_SA1100_H3100
Say Y here if you intend to run this kernel on the Compaq iPAQ
H3100 handheld computer. Information about this machine and the
Linux port to this machine can be found at:
<http://www.handhelds.org/Compaq/index.html#iPAQ_H3100>
<http://www.compaq.com/products/handhelds/pocketpc/>
CONFIG_SA1100_H3800
Say Y here if you intend to run this kernel on the Compaq iPAQ H3800
series handheld computer. Information about this machine and the
Linux port to this machine can be found at:
<http://www.handhelds.org/Compaq/index.html#iPAQ_H3800>
<http://www.compaq.com/products/handhelds/pocketpc/>
CONFIG_H3600_SLEEVE
Choose this option to enable support for extension packs (sleeves)
for the Compaq iPAQ H3XXX series of handheld computers. This option
is required for the CF, PCMCIA, Bluetooth and GSM/GPRS extension
packs.
CONFIG_SA1100_GRAPHICSMASTER
Say Y here if you are using an Applied Data Systems Intel(R)
StrongARM(R) SA-1100 based Graphics Master SBC with SA-1111
StrongARM companion chip. See
<http://www.applieddata.net/products_masterSpec.asp> for information
on this system.
CONFIG_SA1100_ADSBITSY
Say Y here if you are using Applied Data Systems Intel(R)
StrongARM(R) 1110 based Bitsy, 3 x 5 inches in size, Compaq - IPAQ -
like platform. See
<http://www.applieddata.net/products_bitsySpec.asp> for more
information.
CONFIG_SA1100_ITSY
Say Y here if you are using the Compaq Itsy experimental pocket
computer. See <http://research.compaq.com/wrl/projects/itsy/> for
more information.
CONFIG_SA1100_HUW_WEBPANEL
Say Y here to support the HuW Webpanel produced by Hoeft & Wessel
AG. English-language website is at
<http://www.hoeft-wessel.de/en.htm>; credits and build instructions
at Documentation/arm/SA1100/HUW_WEBPANEL.
CONFIG_SA1100_PLEB
Say Y here if you are using a Portable Linux Embedded Board
(also known as PLEB). See <http://www.cse.unsw.edu.au/~pleb/>
for more information.
CONFIG_SA1100_SHERMAN
Say Y here to support the Blazie Engineering `Sherman' StrongARM
1110-based SBC, used primarily in assistance products for the
visually impaired. The company is now Freedom Scientific, with
a website at <http://www.freedomscientific.com/index.html>. The
Sherman product, however, appears to have been discontinued.
CONFIG_SA1100_YOPY
Say Y here to support the Yopy PDA. Product information at
<http://www.yopy.com/>. See Documentation/arm/SA110/Yopy
for more.
CONFIG_SA1100_CERF_CPLD
Say Y here to support the Linux CerfPDA development kit from
Intrinsyc. This is a StrongARM-1110-based reference platform for
designing custom PDAs. Product info is at
<http://www.intrinsyc.com/products/referencedesigns/cerfpda.asp>.
CONFIG_SA1100_FREEBIRD
Support the FreeBird board used in Coventive embedded products. See
Documentation/arm/SA1100/Freebird for more.
CONFIG_SA1100_PT_SYSTEM3
Say Y here if you intend to build a kernel suitable to run on
a Pruftechnik Digital Board. For more information see
<http://www.pruftechnik.com>
CONFIG_CPU_ARM926T
This is a variant of the ARM920. It has slightly different
instruction sequences for cache and TLB operations. Curiously,
there is no documentation on it at the ARM corporate website.
Say Y if you want support for the ARM926T processor.
Otherwise, say N.
CONFIG_SA1100_JORNADA720
Say Y here if you want to build a kernel for the HP Jornada 720
handheld computer. See <http://www.hp.com/jornada/products/720>
for details.
CONFIG_SA1100_OMNIMETER
Say Y here if you are using the inhand electronics OmniMeter. See
<http://www.inhandelectronics.com/html/omni1.html> for details.
CONFIG_SA1100_SIMPAD
The SIEMENS webpad SIMpad is based on the StrongARM 1110. There
are two different versions CL4 and SL4. CL4 has 32MB RAM and 16MB
FLASH. The SL4 version got 64 MB RAM and 32 MB FLASH and a
PCMCIA-Slot. The version for the Germany Telecom (DTAG) is the same
like CL4 in additional it has a PCMCIA-Slot. For more information
visit <http://www.my-siemens.com or www.siemens.ch>.
CONFIG_ARCH_CDB89712
This is an evaluation board from Cirrus for the CS89712 processor.
The board includes 2 serial ports, Ethernet, IRDA, and expansion
headers. It comes with 16 MB SDRAM and 8 MB flash ROM.
CONFIG_ARCH_AUTCPU12
Say Y if you intend to run the kernel on the autronix autcpu12
board. This board is based on a Cirrus Logic CS89712.
CONFIG_EP72XX_ROM_BOOT
If you say Y here, your CLPS711x-based kernel will use the bootstrap
mode memory map instead of the normal memory map.
Processors derived from the Cirrus CLPS-711X core support two boot
modes. Normal mode boots from the external memory device at CS0.
Bootstrap mode rearranges parts of the memory map, placing an
internal 128 byte bootstrap ROM at CS0. This option performs the
address map changes required to support booting in this mode.
You almost surely want to say N here.
...@@ -5,31 +5,31 @@ ...@@ -5,31 +5,31 @@
# License. See the file "COPYING" in the main directory of this archive # License. See the file "COPYING" in the main directory of this archive
# for more details. # for more details.
# #
# Copyright (C) 1995-2000 Russell King # Copyright (C) 1995-2002 Russell King
# #
SYSTEM =$(TOPDIR)/vmlinux SYSTEM =$(TOPDIR)/vmlinux
ifeq ($(CONFIG_CPU_26),y) ifeq ($(CONFIG_CPU_26),y)
ZTEXTADDR = 0x02080000 ZRELADDR = 0x02080000
PARAMS_PHYS = 0x0207c000 PARAMS_PHYS = 0x0207c000
INITRD_PHYS = 0x02180000 INITRD_PHYS = 0x02180000
INITRD_VIRT = 0x02180000 INITRD_VIRT = 0x02180000
endif endif
ifeq ($(CONFIG_ARCH_RPC),y) ifeq ($(CONFIG_ARCH_RPC),y)
ZTEXTADDR = 0x10008000 ZRELADDR = 0x10008000
PARAMS_PHYS = 0x10000100 PARAMS_PHYS = 0x10000100
INITRD_PHYS = 0x18000000 INITRD_PHYS = 0x18000000
INITRD_VIRT = 0xc8000000 INITRD_VIRT = 0xc8000000
endif endif
ifeq ($(CONFIG_ARCH_CLPS7500),y) ifeq ($(CONFIG_ARCH_CLPS7500),y)
ZTEXTADDR = 0x10008000 ZRELADDR = 0x10008000
endif endif
ifeq ($(CONFIG_ARCH_EBSA110),y) ifeq ($(CONFIG_ARCH_EBSA110),y)
ZTEXTADDR = 0x00008000 ZRELADDR = 0x00008000
PARAMS_PHYS = 0x00000400 PARAMS_PHYS = 0x00000400
INITRD_PHYS = 0x00800000 INITRD_PHYS = 0x00800000
INITRD_VIRT = 0xc0800000 INITRD_VIRT = 0xc0800000
...@@ -41,41 +41,34 @@ ZRELADDR = 0x08008000 ...@@ -41,41 +41,34 @@ ZRELADDR = 0x08008000
endif endif
ifeq ($(CONFIG_FOOTBRIDGE),y) ifeq ($(CONFIG_FOOTBRIDGE),y)
ZTEXTADDR = 0x00008000 ZRELADDR = 0x00008000
PARAMS_PHYS = 0x00000100 PARAMS_PHYS = 0x00000100
INITRD_PHYS = 0x00800000 INITRD_PHYS = 0x00800000
INITRD_VIRT = 0xc0800000 INITRD_VIRT = 0xc0800000
endif endif
ifeq ($(CONFIG_ARCH_INTEGRATOR),y) ifeq ($(CONFIG_ARCH_INTEGRATOR),y)
ZTEXTADDR = 0x00008000 ZRELADDR = 0x00008000
PARAMS_PHYS = 0x00000100 PARAMS_PHYS = 0x00000100
INITRD_PHYS = 0x00800000 INITRD_PHYS = 0x00800000
INITRD_VIRT = 0xc0800000 INITRD_VIRT = 0xc0800000
endif endif
ifeq ($(CONFIG_ARCH_CAMELOT),y) ifeq ($(CONFIG_ARCH_CAMELOT),y)
ZTEXTADDR = 0x00008000 ZRELADDR = 0x00008000
endif endif
ifeq ($(CONFIG_ARCH_NEXUSPCI),y) ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
ZTEXTADDR = 0x40008000 ZRELADDR = 0x40008000
endif endif
ifeq ($(CONFIG_ARCH_L7200),y) ifeq ($(CONFIG_ARCH_L7200),y)
# RAM based kernel
#ZTEXTADDR = 0xf0400000
#ZRELADDR = 0xf0008000
# FLASH based kernel
ZTEXTADDR = 0x00010000
ZRELADDR = 0xf0008000 ZRELADDR = 0xf0008000
ZBSSADDR = 0xf03e0000
endif endif
# The standard locations for stuff on CLPS711x type processors # The standard locations for stuff on CLPS711x type processors
ifeq ($(CONFIG_ARCH_CLPS711X),y) ifeq ($(CONFIG_ARCH_CLPS711X),y)
ZTEXTADDR = 0xc0028000 ZRELADDR = 0xc0028000
PARAMS_PHYS = 0xc0000100 PARAMS_PHYS = 0xc0000100
endif endif
...@@ -90,60 +83,40 @@ INITRD_VIRT = 0xc0300000 ...@@ -90,60 +83,40 @@ INITRD_VIRT = 0xc0300000
endif endif
ifeq ($(CONFIG_ARCH_SA1100),y) ifeq ($(CONFIG_ARCH_SA1100),y)
ZTEXTADDR = 0xc0008000
ZRELADDR = 0xc0008000 ZRELADDR = 0xc0008000
ifeq ($(CONFIG_SA1100_VICTOR),y) # No defconfig file to move this into...
ZTEXTADDR = 0x00002000 #ifeq ($(CONFIG_SA1100_YOPY),y)
ZBSSADDR = 0xc0200000 # ZTEXTADDR = 0x00080000
endif # ZBSSADDR = 0xc0200000
ifeq ($(CONFIG_SA1100_SHERMAN),y) #endif
ZTEXTADDR = 0x00050000
ZBSSADDR = 0xc0200000
endif
ifeq ($(CONFIG_SA1100_GRAPHICSCLIENT),y)
ZTEXTADDR = 0xC0200000
endif
ifeq ($(CONFIG_SA1100_GRAPHICSMASTER),y)
ZTEXTADDR = 0xC0400000
endif
ifeq ($(CONFIG_SA1100_ADSBITSY),y)
ZTEXTADDR = 0xC0400000
endif
ifeq ($(CONFIG_SA1100_YOPY),y)
ZTEXTADDR = 0x00080000
ZBSSADDR = 0xc0200000
endif
ifeq ($(CONFIG_SA1111),y) ifeq ($(CONFIG_SA1111),y)
ZRELADDR = 0xc0208000 ZRELADDR = 0xc0208000
endif endif
endif endif
ifeq ($(CONFIG_ARCH_ANAKIN),y) ifeq ($(CONFIG_ARCH_ANAKIN),y)
ZTEXTADDR = 0x20008000 ZRELADDR = 0x20008000
endif endif
ifeq ($(CONFIG_ARCH_IQ80310),y) ifeq ($(CONFIG_ARCH_IQ80310),y)
ZRELADDR = 0xa0008000 ZRELADDR = 0xa0008000
# for serial upload
ZTEXTADDR = 0xa1008000
# for direct flash execution
# ZTEXTADDR = 0x00060000
# ZBSSADDR = 0xa1008000
endif endif
ifeq ($(CONFIG_ARCH_ADIFCC),y) ifeq ($(CONFIG_ARCH_ADIFCC),y)
ZRELADDR = 0xc0008000 ZRELADDR = 0xc0008000
ZTEXTADDR = 0xc1000000
endif endif
# #
# If you don't define ZRELADDR above, # We now have a PIC decompressor implementation. Decompressors running
# then it defaults to ZTEXTADDR # from RAM should not define ZTEXTADDR. Decompressors running directly
# from ROM or Flash must define ZTEXTADDR (preferably via the config)
# #
ifeq ($(ZRELADDR),) ifeq ($(CONFIG_ZBOOT_ROM),y)
ZRELADDR = $(ZTEXTADDR) ZTEXTADDR =0x$(CONFIG_ZBOOT_ROM_TEXT)
ZBSSADDR =0x$(CONFIG_ZBOOT_ROM_BSS)
else
ZTEXTADDR =0
ZBSSADDR =ALIGN(4)
endif endif
export SYSTEM ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS INITRD_VIRT PARAMS_PHYS export SYSTEM ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS INITRD_VIRT PARAMS_PHYS
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
HEAD = head.o HEAD = head.o
OBJS = misc.o OBJS = misc.o
CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_BOOT) CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_BOOT) -fpic
FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c
ZLDFLAGS = -p -X -T vmlinux.lds ZLDFLAGS = -p -X -T vmlinux.lds
...@@ -65,13 +65,7 @@ ifeq ($(CONFIG_CPU_XSCALE),y) ...@@ -65,13 +65,7 @@ ifeq ($(CONFIG_CPU_XSCALE),y)
OBJS += head-xscale.o OBJS += head-xscale.o
endif endif
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/; SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/
ifneq ($(ZBSSADDR),)
SEDFLAGS += s/BSS_START/$(ZBSSADDR)/
else
SEDFLAGS += s/BSS_START/ALIGN(4)/
endif
LIBGCC := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name) LIBGCC := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
/* This branch is taken if the CPU memory width matches the /* This branch is taken if the CPU memory width matches the
actual device in use. The default at power on is 16 bits actual device in use. The default at power on is 16 bits
so we must be prepared for a mismatch. */ so we must be prepared for a mismatch. */
.section ".start", #alloc, #execinstr .section ".start", "ax"
2: 2:
b 1f b 1f
.word 0xffff .word 0xffff
......
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/arch/excalibur.h> #include <asm/arch/excalibur.h>
.section ".start", #alloc, #execinstr .section ".start", "ax"
mov r7, #MACH_TYPE_CAMELOT mov r7, #MACH_TYPE_CAMELOT
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
.section ".start", #alloc, #execinstr .section ".start", "ax"
ftv_start: ftv_start:
mcr p15, 0, r0, c7, c5, 0 @ flush I cache mcr p15, 0, r0, c7, c5, 0 @ flush I cache
mrc p15, 0, r0, c1, c0 mrc p15, 0, r0, c1, c0
......
#include <asm/mach-types.h> #include <asm/mach-types.h>
.section ".start", #alloc, #execinstr .section ".start", "ax"
mov r7, #MACH_TYPE_INTEGRATOR mov r7, #MACH_TYPE_INTEGRATOR
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#error What am I doing here... #error What am I doing here...
#endif #endif
.section ".start", #alloc, #execinstr .section ".start", "ax"
__L7200_start: __L7200_start:
mov r0, #0x00100000 @ FLASH address of initrd mov r0, #0x00100000 @ FLASH address of initrd
......
/* /*
* linux/arch/arm/boot/compressed/head-netwinder.S * linux/arch/arm/boot/compressed/head-netwinder.S
* *
* Copyright (C) 2000 Russell King * Copyright (C) 2000-2002 Russell King
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#define K(a,b,c) ((a) << 24 | (b) << 12 | (c)) .section ".start", "ax"
.section ".start", #alloc, #execinstr mov r7, #5
mov r8, #0
/*
* check to see if we are running from the correct address.
* If not, we move ourselves in a two stage process. Firstly,
* we copy the start of the kernel (which includes this code)
* to 0x8000, and then jump to this code to continue with the
* rest (since this code will get overwritten).
*/
adr r2, 1f
ldmdb r2, {r9, r10}
and r3, r2, #0xc000
teq r3, #0x8000 @ correctly located?
beq 2f @ skip this code
bic r3, r2, #0xc000
orr r3, r3, #0x8000
mov r0, r3 @ new address if '1'
mov r4, #64 @ number of bytes to copy
sub r5, r10, r9 @ total number of bytes to copy
b 1f
.word _start
.word __bss_start
1:
.rept 4
ldmia r2!, {r6, r9, r10, r11}
stmia r3!, {r6, r9, r10, r11}
.endr
subs r4, r4, #64
bcs 1b
movs r4, r5 @ remaining length
mov r5, #0 @ no more to copy
movne pc, r0 @ jump back to 1 (in the newly copied
@ code)
mov r7, #5 @ only here to fix NeTTroms which dont
mov r8, #2 << 24 @ scheduled for removal in 2.5.xx
orr r8, r8, #5 << 12
2:
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
.section ".start", #alloc, #execinstr .section ".start", "ax"
__SA1100_start: __SA1100_start:
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include <asm/assembler.h> #include <asm/assembler.h>
.section ".start", #alloc, #execinstr .section ".start", "ax"
b __beginning b __beginning
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
.section ".start", #alloc, #execinstr .section ".start", "ax"
__XScale_start: __XScale_start:
......
...@@ -132,10 +132,28 @@ not_angel: ...@@ -132,10 +132,28 @@ not_angel:
*/ */
.text .text
1: adr r2, LC0 adr r0, LC0
ldmia r2, {r2, r3, r4, r5, sp} ldmia r0, {r1, r2, r3, r4, r5, r6, ip, sp}
subs r0, r0, r1 @ calculate the delta offset
teq r0, #0 @ if delta is zero, we're
beq not_relocated @ running at the address we
@ were linked at.
add r2, r2, r0 @ different address, so we
add r3, r3, r0 @ need to fix up various
add r5, r5, r0 @ pointers.
add r6, r6, r0
add ip, ip, r0
add sp, sp, r0
1: ldr r1, [r6, #0] @ relocate entries in the GOT
add r1, r1, r0 @ table. This fixes up the
str r1, [r6], #4 @ C references.
cmp r6, ip
blt 1b
mov r0, #0 not_relocated: mov r0, #0
1: str r0, [r2], #4 @ clear bss 1: str r0, [r2], #4 @ clear bss
str r0, [r2], #4 str r0, [r2], #4
str r0, [r2], #4 str r0, [r2], #4
...@@ -149,17 +167,26 @@ not_angel: ...@@ -149,17 +167,26 @@ not_angel:
mov r1, sp @ malloc space above stack mov r1, sp @ malloc space above stack
add r2, sp, #0x10000 @ 64k max add r2, sp, #0x10000 @ 64k max
teq r4, r5 @ will we overwrite ourselves? /*
moveq r5, r2 @ decompress after image * Check to see if we will overwrite ourselves.
movne r5, r4 @ decompress to final location * r4 = final kernel address
* r5 = start of this image
* r2 = end of malloc space (and therefore this image)
* We basically want:
* r4 >= r2 -> OK
* r4 + image length <= r5 -> OK
*/
cmp r4, r2
bhs wont_overwrite
add r0, r4, #4096*1024 @ 4MB largest kernel size
cmp r0, r5
bls wont_overwrite
mov r5, r2 @ decompress after malloc space
mov r0, r5 mov r0, r5
mov r3, r7 mov r3, r7
bl SYMBOL_NAME(decompress_kernel) bl SYMBOL_NAME(decompress_kernel)
teq r4, r5 @ do we need to relocate
beq call_kernel @ the kernel?
add r0, r0, #127 add r0, r0, #127
bic r0, r0, #127 @ align the kernel length bic r0, r0, #127 @ align the kernel length
/* /*
...@@ -184,12 +211,26 @@ not_angel: ...@@ -184,12 +211,26 @@ not_angel:
bl cache_clean_flush bl cache_clean_flush
add pc, r5, r0 @ call relocation code add pc, r5, r0 @ call relocation code
/*
* We're not in danger of overwriting ourselves. Do this the simple way.
*
* r4 = kernel execution address
* r7 = architecture ID
*/
wont_overwrite: mov r0, r4
mov r3, r7
bl SYMBOL_NAME(decompress_kernel)
b call_kernel
.type LC0, #object .type LC0, #object
LC0: .word __bss_start LC0: .word LC0 @ r1
.word _end .word __bss_start @ r2
.word _load_addr .word _end @ r3
.word _start .word _load_addr @ r4
.word user_stack+4096 .word _start @ r5
.word _got_start @ r6
.word _got_end @ r7
.word user_stack+4096 @ r8
.size LC0, . - LC0 .size LC0, . - LC0
/* /*
...@@ -518,5 +559,5 @@ memdump: mov r12, r0 ...@@ -518,5 +559,5 @@ memdump: mov r12, r0
reloc_end: reloc_end:
.align .align
.section ".stack" .section ".stack", "aw"
user_stack: .space 4096 user_stack: .space 4096
...@@ -35,22 +35,19 @@ SECTIONS ...@@ -35,22 +35,19 @@ SECTIONS
_etext = .; _etext = .;
.data : { _got_start = .;
*(.data) .got : { *(.got) }
} _got_end = .;
.got.plt : { *(.got.plt) }
.data : { *(.data) }
_edata = .; _edata = .;
. = BSS_START; . = BSS_START;
__bss_start = .; __bss_start = .;
.bss : { .bss : { *(.bss) }
*(.bss)
}
_end = .; _end = .;
.stack : { .stack (NOLOAD) : { *(.stack) }
*(.stack)
}
.stab 0 : { *(.stab) } .stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stabstr 0 : { *(.stabstr) }
......
...@@ -433,6 +433,12 @@ else ...@@ -433,6 +433,12 @@ else
define_bool CONFIG_FIQ n define_bool CONFIG_FIQ n
fi fi
# Compressed boot loader in ROM. Yes, we really want to ask about
# TEXT and BSS so we preserve their values in the config files.
bool 'Compressed boot loader in ROM/flash' CONFIG_ZBOOT_ROM
hex 'Compressed ROM boot loader base address' CONFIG_ZBOOT_ROM_TEXT 0
hex 'Compressed ROM boot loader BSS address' CONFIG_ZBOOT_ROM_BSS 0
if [ "$CONFIG_ARCH_SA1100" = "y" -o \ if [ "$CONFIG_ARCH_SA1100" = "y" -o \
"$CONFIG_ARCH_INTEGRATOR" = "y" ]; then "$CONFIG_ARCH_INTEGRATOR" = "y" ]; then
dep_bool 'Support CPU clock change (EXPERIMENTAL)' CONFIG_CPU_FREQ $CONFIG_EXPERIMENTAL dep_bool 'Support CPU clock change (EXPERIMENTAL)' CONFIG_CPU_FREQ $CONFIG_EXPERIMENTAL
...@@ -573,14 +579,7 @@ source drivers/ieee1394/Config.in ...@@ -573,14 +579,7 @@ source drivers/ieee1394/Config.in
source drivers/message/i2o/Config.in source drivers/message/i2o/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
# #
# input before char - char/joystick depends on it. As does USB. # input before char - char/joystick depends on it. As does USB.
......
...@@ -139,6 +139,9 @@ CONFIG_ARM_THUMB=y ...@@ -139,6 +139,9 @@ CONFIG_ARM_THUMB=y
# #
# General setup # General setup
# #
CONFIG_ZBOOT_ROM=y
CONFIG_ZBOOT_ROM_TEXT=0x00060000
CONFIG_ZBOOT_ROM_BSS=0xa1008000
CONFIG_PCI=y CONFIG_PCI=y
# CONFIG_ISA is not set # CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set # CONFIG_ISA_DMA is not set
......
...@@ -23,6 +23,9 @@ CONFIG_CPU_32=y ...@@ -23,6 +23,9 @@ CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set # CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y CONFIG_CPU_32v4=y
CONFIG_CPU_ARM720=y CONFIG_CPU_ARM720=y
CONFIG_ZBOOT_ROM=y
CONFIG_ZBOOT_ROM_TEXT=0x00010000
CONFIG_ZBOOT_ROM_BSS=0xf03e0000
# CONFIG_PCI is not set # CONFIG_PCI is not set
# CONFIG_ISA is not set # CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set # CONFIG_ISA_DMA is not set
......
...@@ -47,6 +47,9 @@ CONFIG_MODULES=y ...@@ -47,6 +47,9 @@ CONFIG_MODULES=y
# #
# General setup # General setup
# #
CONFIG_ZBOOT_ROM=y
CONFIG_ZBOOT_ROM_TEXT=0x00050000
CONFIG_ZBOOT_ROM_BSS=0xc0200000
# CONFIG_NET is not set # CONFIG_NET is not set
# CONFIG_SYSVIPC is not set # CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
......
...@@ -46,6 +46,9 @@ CONFIG_MODULES=y ...@@ -46,6 +46,9 @@ CONFIG_MODULES=y
# #
# General setup # General setup
# #
CONFIG_ZBOOT_ROM=y
CONFIG_ZBOOT_ROM_TEXT=0x00002000
CONFIG_ZBOOT_ROM_BSS=0xc0200000
# CONFIG_NET is not set # CONFIG_NET is not set
# CONFIG_SYSVIPC is not set # CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/mman.h> #include <linux/mman.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/errno.h>
#include <asm/dma.h> #include <asm/dma.h>
......
...@@ -756,7 +756,6 @@ __irq_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -756,7 +756,6 @@ __irq_svc: sub sp, sp, #S_FRAME_SIZE
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
ldr r0, [r8, #TI_FLAGS] @ get flags ldr r0, [r8, #TI_FLAGS] @ get flags
tst r0, #_TIF_NEED_RESCHED tst r0, #_TIF_NEED_RESCHED
ldrne r6, .LCirq_stat
blne svc_preempt blne svc_preempt
preempt_return: preempt_return:
ldr r0, [r8, #TI_PREEMPT] @ read preempt value ldr r0, [r8, #TI_PREEMPT] @ read preempt value
...@@ -770,20 +769,20 @@ preempt_return: ...@@ -770,20 +769,20 @@ preempt_return:
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
svc_preempt: teq r9, #0 @ was preempt count = 0 svc_preempt: teq r9, #0 @ was preempt count = 0
ldreq r6, .LCirq_stat
movne pc, lr @ no movne pc, lr @ no
ldr r0, [r6, #4] @ local_irq_count ldr r0, [r6, #4] @ local_irq_count
ldr r1, [r6, #8] @ local_bh_count ldr r1, [r6, #8] @ local_bh_count
adds r0, r0, r1 adds r0, r0, r1
movne pc, lr movne pc, lr
ldr r1, [r8, #TI_TASK] mov r7, #PREEMPT_ACTIVE
set_cpsr_c r2, #MODE_SVC @ enable IRQs str r7, [r8, #TI_PREEMPT] @ set PREEMPT_ACTIVE
str r0, [r1, #0] @ current->state = TASK_RUNNING 1: set_cpsr_c r2, #MODE_SVC @ enable IRQs
1: bl SYMBOL_NAME(schedule) bl SYMBOL_NAME(schedule)
set_cpsr_c r0, #PSR_I_BIT | MODE_SVC @ disable IRQs set_cpsr_c r0, #PSR_I_BIT | MODE_SVC @ disable IRQs
ldr r0, [r8, #TI_FLAGS] ldr r0, [r8, #TI_FLAGS] @ get new tasks TI_FLAGS
tst r0, #_TIF_NEED_RESCHED tst r0, #_TIF_NEED_RESCHED
beq preempt_return beq preempt_return @ go again
set_cpsr_c r0, #MODE_SVC @ enable IRQs
b 1b b 1b
#endif #endif
......
...@@ -76,6 +76,9 @@ __do_notify_resume: ...@@ -76,6 +76,9 @@ __do_notify_resume:
* This is how we return from a fork. * This is how we return from a fork.
*/ */
ENTRY(ret_from_fork) ENTRY(ret_from_fork)
#ifdef CONFIG_PREEMPT
bl schedule_tail
#endif
get_thread_info tsk get_thread_info tsk
ldr ip, [tsk, #TI_FLAGS] @ check for syscall tracing ldr ip, [tsk, #TI_FLAGS] @ check for syscall tracing
mov why, #1 mov why, #1
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/errno.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/system.h> #include <asm/system.h>
......
...@@ -73,7 +73,7 @@ void (*pm_power_off)(void); ...@@ -73,7 +73,7 @@ void (*pm_power_off)(void);
* This is our default idle handler. We need to disable * This is our default idle handler. We need to disable
* interrupts here to ensure we don't miss a wakeup call. * interrupts here to ensure we don't miss a wakeup call.
*/ */
static void default_idle(void) void default_idle(void)
{ {
__cli(); __cli();
if (!need_resched() && !hlt_counter) if (!need_resched() && !hlt_counter)
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
*/ */
#include <linux/config.h> #include <linux/config.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/errno.h>
#include <asm/semaphore.h> #include <asm/semaphore.h>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <asm/procinfo.h> #include <asm/procinfo.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/tlbflush.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
...@@ -255,7 +256,7 @@ static void __init setup_processor(void) ...@@ -255,7 +256,7 @@ static void __init setup_processor(void)
cpu_user = *list->user; cpu_user = *list->user;
#endif #endif
printk("Processor: %s %s revision %d\n", printk("CPU: %s %s revision %d\n",
proc_info.manufacturer, proc_info.cpu_name, proc_info.manufacturer, proc_info.cpu_name,
(int)processor_id & 15); (int)processor_id & 15);
......
...@@ -628,14 +628,12 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall) ...@@ -628,14 +628,12 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
case SIGSTOP: { case SIGSTOP: {
struct signal_struct *sig; struct signal_struct *sig;
current->state = TASK_STOPPED;
current->exit_code = signr; current->exit_code = signr;
sig = current->parent->sig; sig = current->parent->sig;
preempt_disable();
current->state = TASK_STOPPED;
if (sig && !(sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP)) if (sig && !(sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP))
notify_parent(current, SIGCHLD); notify_parent(current, SIGCHLD);
schedule(); schedule();
preempt_enable();
continue; continue;
} }
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/timex.h> #include <linux/timex.h>
#include <linux/errno.h>
#include <asm/hardware.h> #include <asm/hardware.h>
#include <asm/io.h> #include <asm/io.h>
......
...@@ -26,11 +26,10 @@ ...@@ -26,11 +26,10 @@
#include <asm/hardware.h> #include <asm/hardware.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/sizes.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#define MB1 1048576 /* one megabyte == size of an MMU section */
extern void clps711x_map_io(void); extern void clps711x_map_io(void);
/* /*
...@@ -56,12 +55,12 @@ static struct map_desc edb7211_io_desc[] __initdata = { ...@@ -56,12 +55,12 @@ static struct map_desc edb7211_io_desc[] __initdata = {
/* virtual, physical, length, domain, r, w, c, b */ /* virtual, physical, length, domain, r, w, c, b */
/* memory-mapped extra keyboard row and CS8900A Ethernet chip */ /* memory-mapped extra keyboard row and CS8900A Ethernet chip */
{ EP7211_VIRT_EXTKBD, EP7211_PHYS_EXTKBD, MB1, DOMAIN_IO, 0, 1, 0, 0 }, { EP7211_VIRT_EXTKBD, EP7211_PHYS_EXTKBD, SZ_1M, DOMAIN_IO, 0, 1, 0, 0 },
{ EP7211_VIRT_CS8900A, EP7211_PHYS_CS8900A, MB1, DOMAIN_IO, 0, 1, 0, 0 }, { EP7211_VIRT_CS8900A, EP7211_PHYS_CS8900A, SZ_1M, DOMAIN_IO, 0, 1, 0, 0 },
/* flash banks */ /* flash banks */
{ EP7211_VIRT_FLASH1, EP7211_PHYS_FLASH1, MB1 * 8, DOMAIN_KERNEL, 0, 1, 0, 0 }, { EP7211_VIRT_FLASH1, EP7211_PHYS_FLASH1, SZ_8M, DOMAIN_KERNEL, 0, 1, 0, 0 },
{ EP7211_VIRT_FLASH2, EP7211_PHYS_FLASH2, MB1 * 8, DOMAIN_KERNEL, 0, 1, 0, 0 }, { EP7211_VIRT_FLASH2, EP7211_PHYS_FLASH2, SZ_8M, DOMAIN_KERNEL, 0, 1, 0, 0 },
LAST_DESC LAST_DESC
}; };
......
...@@ -44,7 +44,7 @@ static pte_t *minicache_pte; ...@@ -44,7 +44,7 @@ static pte_t *minicache_pte;
unsigned long map_page_minicache(unsigned long virt) unsigned long map_page_minicache(unsigned long virt)
{ {
set_pte(minicache_pte, mk_pte_phys(__pa(virt), minicache_pgprot)); set_pte(minicache_pte, mk_pte_phys(__pa(virt), minicache_pgprot));
flush_kern_tlb_page(minicache_address); flush_tlb_kernel_page(minicache_address);
return minicache_address; return minicache_address;
} }
......
...@@ -723,7 +723,6 @@ ENTRY(xscale_processor_functions) ...@@ -723,7 +723,6 @@ ENTRY(xscale_processor_functions)
.word cpu_xscale_set_pgd .word cpu_xscale_set_pgd
.word cpu_xscale_set_pmd .word cpu_xscale_set_pmd
.word cpu_xscale_set_pte .word cpu_xscale_set_pte
.size xscale_processor_functions, . - xscale_processor_functions .size xscale_processor_functions, . - xscale_processor_functions
.type cpu_80200_info, #object .type cpu_80200_info, #object
...@@ -779,6 +778,5 @@ __pxa250_proc_info: ...@@ -779,6 +778,5 @@ __pxa250_proc_info:
.long xscale_processor_functions .long xscale_processor_functions
.long v4wbi_tlb_fns .long v4wbi_tlb_fns
.long v5te_mc_user_fns .long v5te_mc_user_fns
.size __cotulla_proc_info, . - __cotulla_proc_info
.size __pxa250_proc_info, . - __pxa250_proc_info .size __pxa250_proc_info, . - __pxa250_proc_info
...@@ -53,6 +53,7 @@ ENTRY(v3_flush_user_tlb_range) ...@@ -53,6 +53,7 @@ ENTRY(v3_flush_user_tlb_range)
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
teq r2, r3 @ == mm ? teq r2, r3 @ == mm ?
movne pc, lr @ no, we dont do anything movne pc, lr @ no, we dont do anything
ENTRY(v3_flush_kern_tlb_range)
bic r0, r0, #0x0ff bic r0, r0, #0x0ff
bic r0, r0, #0xf00 bic r0, r0, #0xf00
1: mcr p15, 0, r0, c6, c0, 0 @ invalidate TLB entry 1: mcr p15, 0, r0, c6, c0, 0 @ invalidate TLB entry
...@@ -87,5 +88,6 @@ ENTRY(v3_tlb_fns) ...@@ -87,5 +88,6 @@ ENTRY(v3_tlb_fns)
.long v3_flush_user_tlb_mm .long v3_flush_user_tlb_mm
.long v3_flush_user_tlb_range .long v3_flush_user_tlb_range
.long v3_flush_user_tlb_page .long v3_flush_user_tlb_page
.long v3_flush_kern_tlb_range
.long v3_flush_kern_tlb_page .long v3_flush_kern_tlb_page
.size v3_tlb_fns, . - v3_tlb_fns .size v3_tlb_fns, . - v3_tlb_fns
...@@ -42,7 +42,7 @@ ENTRY(v4_flush_kern_tlb_all) ...@@ -42,7 +42,7 @@ ENTRY(v4_flush_kern_tlb_all)
/* /*
* v4_flush_user_tlb_range(start, end, mm) * v4_flush_user_tlb_range(start, end, mm)
* *
* Invalidate a range of TLB entries in the specified address space. * Invalidate a range of TLB entries in the specified user address space.
* *
* - start - range start address * - start - range start address
* - end - range end address * - end - range end address
...@@ -85,6 +85,27 @@ ENTRY(v4_flush_user_tlb_page) ...@@ -85,6 +85,27 @@ ENTRY(v4_flush_user_tlb_page)
mcrne p15, 0, r3, c8, c5, 0 @ invalidate I TLB mcrne p15, 0, r3, c8, c5, 0 @ invalidate I TLB
mov pc, lr mov pc, lr
/*
* v4_flush_kerm_tlb_range(start, end)
*
* Invalidate a range of TLB entries in the specified kernel
* address range.
*
* - start - virtual address (may not be aligned)
* - end - virtual address (may not be aligned)
*/
.align 5
ENTRY(v4_flush_kern_tlb_range)
bic r0, r0, #0x0ff
bic r0, r0, #0xf00
1: mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
add r0, r0, #PAGE_SZ
cmp r0, r1
blo 1b
mcr p15, 0, r3, c8, c5, 0 @ invalidate I TLB
mov pc, lr
/* /*
* v4_flush_kern_tlb_page(kaddr) * v4_flush_kern_tlb_page(kaddr)
* *
...@@ -106,5 +127,6 @@ ENTRY(v4_tlb_fns) ...@@ -106,5 +127,6 @@ ENTRY(v4_tlb_fns)
.long v4_flush_user_tlb_mm .long v4_flush_user_tlb_mm
.long v4_flush_user_tlb_range .long v4_flush_user_tlb_range
.long v4_flush_user_tlb_page .long v4_flush_user_tlb_page
.long v4_flush_kern_tlb_range
.long v4_flush_kern_tlb_page .long v4_flush_kern_tlb_page
.size v4_tlb_fns, . - v4_tlb_fns .size v4_tlb_fns, . - v4_tlb_fns
...@@ -88,7 +88,41 @@ ENTRY(v4wb_flush_user_tlb_page) ...@@ -88,7 +88,41 @@ ENTRY(v4wb_flush_user_tlb_page)
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, r3, c8, c5, 0 @ invalidate I TLB mcrne p15, 0, r3, c8, c5, 0 @ invalidate I TLB
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
mov pc, lr
/*
* v4_flush_kerm_tlb_range(start, end)
*
* Invalidate a range of TLB entries in the specified kernel
* address range.
*
* - start - virtual address (may not be aligned)
* - end - virtual address (may not be aligned)
*/
ENTRY(v4wb_flush_kern_tlb_range)
mov r3, #0
mcr p15, 0, r3, c7, c10, 4 @ drain WB
bic r0, r0, #0x0ff
bic r0, r0, #0xf00
mcr p15, 0, r3, c8, c5, 0 @ invalidate I TLB
1: mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
add r0, r0, #PAGE_SZ
cmp r0, r1
blo 1b
mov pc, lr
/*
* v4_flush_kern_tlb_page(kaddr)
*
* Invalidate the TLB entry for the specified page. The address
* will be in the kernels virtual memory space. Current uses
* only require the D-TLB to be invalidated.
*
* - kaddr - Kernel virtual memory address
*/
ENTRY(v4wb_flush_kern_tlb_page) ENTRY(v4wb_flush_kern_tlb_page)
mcr p15, 0, r3, c8, c5, 0 @ invalidate I TLB
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
mov pc, lr mov pc, lr
...@@ -107,14 +141,17 @@ ENTRY(v4wb_flush_kern_tlb_page) ...@@ -107,14 +141,17 @@ ENTRY(v4wb_flush_kern_tlb_page)
*/ */
.align 5 .align 5
ENTRY(v4wbi_flush_user_tlb_range) ENTRY(v4wbi_flush_user_tlb_range)
vma_vm_mm ip, r2
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
teq r2, r3 @ == mm ? eors r3, ip, r3 @ == mm ?
movne pc, lr @ no, we dont do anything movne pc, lr @ no, we dont do anything
mov r3, #0 mov r3, #0
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
vma_vm_flags r2, r2
bic r0, r0, #0x0ff bic r0, r0, #0x0ff
bic r0, r0, #0xf00 bic r0, r0, #0xf00
1: mcr p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry 1: tst r2, #VM_EXEC
mcrne p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
...@@ -140,7 +177,23 @@ ENTRY(v4wbi_flush_user_tlb_page) ...@@ -140,7 +177,23 @@ ENTRY(v4wbi_flush_user_tlb_page)
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry mcrne p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
mov pc, lr
ENTRY(v4wbi_flush_kern_tlb_range)
mov r3, #0
mcr p15, 0, r3, c7, c10, 4 @ drain WB
bic r0, r0, #0x0ff
bic r0, r0, #0xf00
1: mcr p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
add r0, r0, #PAGE_SZ
cmp r0, r1
blo 1b
mov pc, lr
ENTRY(v4wbi_flush_kern_tlb_page) ENTRY(v4wbi_flush_kern_tlb_page)
mcr p15, 0, r0, c8, c5, 1 @ invalidate I TLB entry
mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry mcr p15, 0, r0, c8, c6, 1 @ invalidate D TLB entry
mov pc, lr mov pc, lr
...@@ -152,6 +205,7 @@ ENTRY(v4wb_tlb_fns) ...@@ -152,6 +205,7 @@ ENTRY(v4wb_tlb_fns)
.long v4wb_flush_user_tlb_mm .long v4wb_flush_user_tlb_mm
.long v4wb_flush_user_tlb_range .long v4wb_flush_user_tlb_range
.long v4wb_flush_user_tlb_page .long v4wb_flush_user_tlb_page
.long v4wb_flush_kern_tlb_range
.long v4wb_flush_kern_tlb_page .long v4wb_flush_kern_tlb_page
.size v4wb_tlb_fns, . - v4wb_tlb_fns .size v4wb_tlb_fns, . - v4wb_tlb_fns
...@@ -161,5 +215,6 @@ ENTRY(v4wbi_tlb_fns) ...@@ -161,5 +215,6 @@ ENTRY(v4wbi_tlb_fns)
.long v4wbi_flush_user_tlb_mm .long v4wbi_flush_user_tlb_mm
.long v4wbi_flush_user_tlb_range .long v4wbi_flush_user_tlb_range
.long v4wbi_flush_user_tlb_page .long v4wbi_flush_user_tlb_page
.long v4wbi_flush_kern_tlb_range
.long v4wbi_flush_kern_tlb_page .long v4wbi_flush_kern_tlb_page
.size v4wbi_tlb_fns, . - v4wbi_tlb_fns .size v4wbi_tlb_fns, . - v4wbi_tlb_fns
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/config.h> #include <linux/config.h>
/* XXX */ /* XXX */
#include <linux/errno.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/signal.h> #include <linux/signal.h>
......
...@@ -185,15 +185,7 @@ source net/ax25/Config.in ...@@ -185,15 +185,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
if [ "$CONFIG_NET" != "n" ]; then
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -88,7 +88,6 @@ if [ "$CONFIG_M686" = "y" ]; then ...@@ -88,7 +88,6 @@ if [ "$CONFIG_M686" = "y" ]; then
define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_int CONFIG_X86_L1_CACHE_SHIFT 5
define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_TSC y
define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_GOOD_APIC y
define_bool CONFIG_X86_PGE y
define_bool CONFIG_X86_USE_PPRO_CHECKSUM y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
define_bool CONFIG_X86_PPRO_FENCE y define_bool CONFIG_X86_PPRO_FENCE y
fi fi
...@@ -96,14 +95,12 @@ if [ "$CONFIG_MPENTIUMIII" = "y" ]; then ...@@ -96,14 +95,12 @@ if [ "$CONFIG_MPENTIUMIII" = "y" ]; then
define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_int CONFIG_X86_L1_CACHE_SHIFT 5
define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_TSC y
define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_GOOD_APIC y
define_bool CONFIG_X86_PGE y
define_bool CONFIG_X86_USE_PPRO_CHECKSUM y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
fi fi
if [ "$CONFIG_MPENTIUM4" = "y" ]; then if [ "$CONFIG_MPENTIUM4" = "y" ]; then
define_int CONFIG_X86_L1_CACHE_SHIFT 7 define_int CONFIG_X86_L1_CACHE_SHIFT 7
define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_TSC y
define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_GOOD_APIC y
define_bool CONFIG_X86_PGE y
define_bool CONFIG_X86_USE_PPRO_CHECKSUM y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
fi fi
if [ "$CONFIG_MK6" = "y" ]; then if [ "$CONFIG_MK6" = "y" ]; then
...@@ -117,7 +114,6 @@ if [ "$CONFIG_MK7" = "y" ]; then ...@@ -117,7 +114,6 @@ if [ "$CONFIG_MK7" = "y" ]; then
define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_TSC y
define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_GOOD_APIC y
define_bool CONFIG_X86_USE_3DNOW y define_bool CONFIG_X86_USE_3DNOW y
define_bool CONFIG_X86_PGE y
define_bool CONFIG_X86_USE_PPRO_CHECKSUM y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
fi fi
if [ "$CONFIG_MELAN" = "y" ]; then if [ "$CONFIG_MELAN" = "y" ]; then
...@@ -348,15 +344,7 @@ source net/ax25/Config.in ...@@ -348,15 +344,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
if [ "$CONFIG_NET" != "n" ]; then
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -56,7 +56,6 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y ...@@ -56,7 +56,6 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y CONFIG_X86_GOOD_APIC=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_MCE=y CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set # CONFIG_X86_MCE_NONFATAL is not set
...@@ -529,7 +528,7 @@ CONFIG_PCMCIA_RAYCS=y ...@@ -529,7 +528,7 @@ CONFIG_PCMCIA_RAYCS=y
# #
# ISDN subsystem # ISDN subsystem
# #
# CONFIG_ISDN is not set # CONFIG_ISDN_BOOL is not set
# #
# Old CD-ROM drivers (not SCSI, not IDE) # Old CD-ROM drivers (not SCSI, not IDE)
...@@ -693,6 +692,7 @@ CONFIG_NFSD=y ...@@ -693,6 +692,7 @@ CONFIG_NFSD=y
# CONFIG_NFSD_TCP is not set # CONFIG_NFSD_TCP is not set
CONFIG_SUNRPC=y CONFIG_SUNRPC=y
CONFIG_LOCKD=y CONFIG_LOCKD=y
CONFIG_EXPORTFS=y
# CONFIG_SMB_FS is not set # CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set # CONFIG_NCPFS_PACKET_SIGNING is not set
...@@ -864,7 +864,6 @@ CONFIG_USB_STORAGE=y ...@@ -864,7 +864,6 @@ CONFIG_USB_STORAGE=y
# #
# USB Imaging devices # USB Imaging devices
# #
# CONFIG_USB_DC2XX is not set
# CONFIG_USB_MDC800 is not set # CONFIG_USB_MDC800 is not set
# CONFIG_USB_SCANNER is not set # CONFIG_USB_SCANNER is not set
# CONFIG_USB_MICROTEK is not set # CONFIG_USB_MICROTEK is not set
......
...@@ -1091,8 +1091,9 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) ...@@ -1091,8 +1091,9 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d)
*/ */
int pxb, reg; int pxb, reg;
u8 busno, suba, subb; u8 busno, suba, subb;
#ifdef CONFIG_MULTIQUAD
int quad = BUS2QUAD(d->bus->number); int quad = BUS2QUAD(d->bus->number);
#endif
printk("PCI: Searching for i450NX host bridges on %s\n", d->slot_name); printk("PCI: Searching for i450NX host bridges on %s\n", d->slot_name);
reg = 0xd0; reg = 0xd0;
for(pxb=0; pxb<2; pxb++) { for(pxb=0; pxb<2; pxb++) {
......
...@@ -2153,6 +2153,11 @@ static void __init init_intel(struct cpuinfo_x86 *c) ...@@ -2153,6 +2153,11 @@ static void __init init_intel(struct cpuinfo_x86 *c)
strcpy(c->x86_model_id, p); strcpy(c->x86_model_id, p);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* PGE CPUID bug: Pentium4 supports PGE, but seems to have SMP bugs.. */
if ( c->x86 == 15 )
clear_bit(X86_FEATURE_PGE, c->x86_capability);
if (test_bit(X86_FEATURE_HT, c->x86_capability)) { if (test_bit(X86_FEATURE_HT, c->x86_capability)) {
extern int phys_proc_id[NR_CPUS]; extern int phys_proc_id[NR_CPUS];
......
...@@ -174,14 +174,7 @@ fi ...@@ -174,14 +174,7 @@ fi
source net/ax25/Config.in source net/ax25/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'CD-ROM drivers (not for SCSI or IDE/ATAPI drives)' comment 'CD-ROM drivers (not for SCSI or IDE/ATAPI drives)'
......
...@@ -388,15 +388,7 @@ source net/ax25/Config.in ...@@ -388,15 +388,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
if [ "$CONFIG_NET" != "n" ]; then
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -181,16 +181,7 @@ source net/ax25/Config.in ...@@ -181,16 +181,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
if [ "$CONFIG_NET" != "n" ]; then
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -457,14 +457,7 @@ source net/ax25/Config.in ...@@ -457,14 +457,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -124,14 +124,7 @@ source net/ax25/Config.in ...@@ -124,14 +124,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -118,14 +118,7 @@ else ...@@ -118,14 +118,7 @@ else
define_bool CONFIG_BLK_DEV_HD n define_bool CONFIG_BLK_DEV_HD n
fi fi
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'SCSI support' comment 'SCSI support'
......
...@@ -151,15 +151,7 @@ source net/ax25/Config.in ...@@ -151,15 +151,7 @@ source net/ax25/Config.in
source net/irda/Config.in source net/irda/Config.in
mainmenu_option next_comment source drivers/isdn/Config.in
comment 'ISDN subsystem'
if [ "$CONFIG_NET" != "n" ]; then
tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in
fi
fi
endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
......
...@@ -2915,13 +2915,18 @@ int acornscsi_detect(Scsi_Host_Template * tpnt) ...@@ -2915,13 +2915,18 @@ int acornscsi_detect(Scsi_Host_Template * tpnt)
ecs[count]->irqaddr = (char *)ioaddr(host->card.io_intr); ecs[count]->irqaddr = (char *)ioaddr(host->card.io_intr);
ecs[count]->irqmask = 0x0a; ecs[count]->irqmask = 0x0a;
request_region(instance->io_port + 0x800, 2, "acornscsi(sbic)"); if (!request_region(instance->io_port + 0x800, 2, "acornscsi(sbic)"))
request_region(host->card.io_intr, 1, "acornscsi(intr)"); goto err_1;
request_region(host->card.io_page, 1, "acornscsi(page)"); if (!request_region(host->card.io_intr, 1, "acornscsi(intr)"))
goto err_2;
if (!request_region(host->card.io_page, 1, "acornscsi(page)"))
goto err_3;
#ifdef USE_DMAC #ifdef USE_DMAC
request_region(host->dma.io_port, 256, "acornscsi(dmac)"); if (!request_region(host->dma.io_port, 256, "acornscsi(dmac)"))
goto err_4;
#endif #endif
request_region(instance->io_port, 2048, "acornscsi(ram)"); if (!request_region(instance->io_port, 2048, "acornscsi(ram)"))
goto err_5;
if (request_irq(host->scsi.irq, acornscsi_intr, SA_INTERRUPT, "acornscsi", host)) { if (request_irq(host->scsi.irq, acornscsi_intr, SA_INTERRUPT, "acornscsi", host)) {
printk(KERN_CRIT "scsi%d: IRQ%d not free, interrupts disabled\n", printk(KERN_CRIT "scsi%d: IRQ%d not free, interrupts disabled\n",
...@@ -2934,6 +2939,20 @@ int acornscsi_detect(Scsi_Host_Template * tpnt) ...@@ -2934,6 +2939,20 @@ int acornscsi_detect(Scsi_Host_Template * tpnt)
++count; ++count;
} }
return count; return count;
err_5:
#ifdef USE_DMAC
release_region(host->dma.io_port, 256);
#endif
err_4:
release_region(host->card.io_page, 1);
err_3:
release_region(host->card.io_intr, 1);
err_2:
release_region(instance->io_port + 0x800, 2);
err_1:
scsi_unregister(instance);
return 0;
} }
/* /*
......
...@@ -128,25 +128,28 @@ static struct busmouse busmouse = { ...@@ -128,25 +128,28 @@ static struct busmouse busmouse = {
static int __init logi_busmouse_init(void) static int __init logi_busmouse_init(void)
{ {
if (check_region(LOGIBM_BASE, LOGIBM_EXTENT)) if (!request_region(LOGIBM_BASE, LOGIBM_EXTENT, "busmouse"))
return -EIO; return -EIO;
outb(MSE_CONFIG_BYTE, MSE_CONFIG_PORT); outb(MSE_CONFIG_BYTE, MSE_CONFIG_PORT);
outb(MSE_SIGNATURE_BYTE, MSE_SIGNATURE_PORT); outb(MSE_SIGNATURE_BYTE, MSE_SIGNATURE_PORT);
udelay(100L); /* wait for reply from mouse */ udelay(100L); /* wait for reply from mouse */
if (inb(MSE_SIGNATURE_PORT) != MSE_SIGNATURE_BYTE) if (inb(MSE_SIGNATURE_PORT) != MSE_SIGNATURE_BYTE) {
release_region(LOGIBM_BASE, LOGIBM_EXTENT);
return -EIO; return -EIO;
}
outb(MSE_DEFAULT_MODE, MSE_CONFIG_PORT); outb(MSE_DEFAULT_MODE, MSE_CONFIG_PORT);
MSE_INT_OFF(); MSE_INT_OFF();
request_region(LOGIBM_BASE, LOGIBM_EXTENT, "busmouse");
msedev = register_busmouse(&busmouse); msedev = register_busmouse(&busmouse);
if (msedev < 0) if (msedev < 0) {
release_region(LOGIBM_BASE, LOGIBM_EXTENT);
printk(KERN_WARNING "Unable to register busmouse driver.\n"); printk(KERN_WARNING "Unable to register busmouse driver.\n");
}
else else
printk(KERN_INFO "Logitech busmouse installed.\n"); printk(KERN_INFO "Logitech busmouse installed.\n");
return msedev < 0 ? msedev : 0; return msedev < 0 ? msedev : 0;
} }
......
...@@ -149,11 +149,15 @@ static int __init ms_bus_mouse_init(void) ...@@ -149,11 +149,15 @@ static int __init ms_bus_mouse_init(void)
} }
if (present == 0) if (present == 0)
return -EIO; return -EIO;
if (!request_region(MS_MSE_CONTROL_PORT, 0x04, "MS Busmouse"))
return -EIO;
MS_MSE_INT_OFF(); MS_MSE_INT_OFF();
request_region(MS_MSE_CONTROL_PORT, 0x04, "MS Busmouse");
msedev = register_busmouse(&msbusmouse); msedev = register_busmouse(&msbusmouse);
if (msedev < 0) if (msedev < 0) {
printk(KERN_WARNING "Unable to register msbusmouse driver.\n"); printk(KERN_WARNING "Unable to register msbusmouse driver.\n");
release_region(MS_MSE_CONTROL_PORT, 0x04);
}
else else
printk(KERN_INFO "Microsoft BusMouse detected and installed.\n"); printk(KERN_INFO "Microsoft BusMouse detected and installed.\n");
return msedev < 0 ? msedev : 0; return msedev < 0 ? msedev : 0;
......
...@@ -325,7 +325,7 @@ static int nvram_ioctl( struct inode *inode, struct file *file, ...@@ -325,7 +325,7 @@ static int nvram_ioctl( struct inode *inode, struct file *file,
return( 0 ); return( 0 );
default: default:
return( -EINVAL ); return( -ENOTTY );
} }
} }
......
...@@ -544,7 +544,7 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel) ...@@ -544,7 +544,7 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
return 0; return 0;
} }
default: default:
return -EINVAL; return -ENOTTY;
} }
return copy_to_user((void *)arg, &wtime, sizeof wtime) ? -EFAULT : 0; return copy_to_user((void *)arg, &wtime, sizeof wtime) ? -EFAULT : 0;
} }
......
...@@ -122,11 +122,6 @@ static char *serial_revdate = "2001-07-08"; ...@@ -122,11 +122,6 @@ static char *serial_revdate = "2001-07-08";
#define ENABLE_SERIAL_ACPI #define ENABLE_SERIAL_ACPI
#endif #endif
#ifdef __ISAPNP__
#ifndef ENABLE_SERIAL_PNP
#define ENABLE_SERIAL_PNP
#endif
#endif
/* Set of debugging defines */ /* Set of debugging defines */
...@@ -211,9 +206,14 @@ static char *serial_revdate = "2001-07-08"; ...@@ -211,9 +206,14 @@ static char *serial_revdate = "2001-07-08";
#ifdef ENABLE_SERIAL_PCI #ifdef ENABLE_SERIAL_PCI
#include <linux/pci.h> #include <linux/pci.h>
#endif #endif
#ifdef ENABLE_SERIAL_PNP
#include <linux/isapnp.h> #include <linux/isapnp.h>
#ifdef __ISAPNP__
#ifndef ENABLE_SERIAL_PNP
#define ENABLE_SERIAL_PNP
#endif
#endif #endif
#ifdef CONFIG_MAGIC_SYSRQ #ifdef CONFIG_MAGIC_SYSRQ
#include <linux/sysrq.h> #include <linux/sysrq.h>
#endif #endif
......
...@@ -1835,6 +1835,9 @@ static void __do_SAK(void *arg) ...@@ -1835,6 +1835,9 @@ static void __do_SAK(void *arg)
for_each_task(p) { for_each_task(p) {
if ((p->tty == tty) || if ((p->tty == tty) ||
((session > 0) && (p->session == session))) { ((session > 0) && (p->session == session))) {
printk(KERN_NOTICE "SAK: killed process %d"
" (%s): p->session==tty->session\n",
p->pid, p->comm);
send_sig(SIGKILL, p, 1); send_sig(SIGKILL, p, 1);
continue; continue;
} }
...@@ -1845,6 +1848,9 @@ static void __do_SAK(void *arg) ...@@ -1845,6 +1848,9 @@ static void __do_SAK(void *arg)
filp = fcheck_files(p->files, i); filp = fcheck_files(p->files, i);
if (filp && (filp->f_op == &tty_fops) && if (filp && (filp->f_op == &tty_fops) &&
(filp->private_data == tty)) { (filp->private_data == tty)) {
printk(KERN_NOTICE "SAK: killed process %d"
" (%s): fd#%d opened to the tty\n",
p->pid, p->comm, i);
send_sig(SIGKILL, p, 1); send_sig(SIGKILL, p, 1);
break; break;
} }
......
...@@ -535,9 +535,9 @@ static void cdrom_queue_request_sense(ide_drive_t *drive, ...@@ -535,9 +535,9 @@ static void cdrom_queue_request_sense(ide_drive_t *drive,
/* stuff the sense request in front of our current request */ /* stuff the sense request in front of our current request */
rq = &info->request_sense_request; rq = &info->request_sense_request;
ide_init_drive_cmd(rq);
rq->cmd[0] = GPCMD_REQUEST_SENSE; rq->cmd[0] = GPCMD_REQUEST_SENSE;
rq->cmd[4] = pc->buflen; rq->cmd[4] = pc->buflen;
ide_init_drive_cmd(rq);
rq->flags = REQ_SENSE; rq->flags = REQ_SENSE;
/* FIXME --mdcki */ /* FIXME --mdcki */
...@@ -558,8 +558,10 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate) ...@@ -558,8 +558,10 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate)
if ((rq->flags & REQ_CMD) && !rq->current_nr_sectors) if ((rq->flags & REQ_CMD) && !rq->current_nr_sectors)
uptodate = 1; uptodate = 1;
#if 0
/* FIXME --mdcki */ /* FIXME --mdcki */
HWGROUP(drive)->rq->special = NULL; HWGROUP(drive)->rq->special = NULL;
#endif
ide_end_request(drive, uptodate); ide_end_request(drive, uptodate);
} }
...@@ -1215,13 +1217,22 @@ static void restore_request (struct request *rq) ...@@ -1215,13 +1217,22 @@ static void restore_request (struct request *rq)
/* /*
* Start a read request from the CD-ROM. * Start a read request from the CD-ROM.
*/ */
static ide_startstop_t cdrom_start_read (ide_drive_t *drive, unsigned int block) static ide_startstop_t cdrom_start_read(struct ata_device *drive, struct ata_request *ar, unsigned int block)
{ {
struct cdrom_info *info = drive->driver_data; struct cdrom_info *info = drive->driver_data;
struct request *rq = HWGROUP(drive)->rq; struct request *rq = ar->ar_rq;
if (ar->ar_flags & ATA_AR_QUEUED) {
// spin_lock_irqsave(DRIVE_LOCK(drive), flags);
blkdev_dequeue_request(rq);
// spin_unlock_irqrestore(DRIVE_LOCK(drive), flags);
}
restore_request(rq); restore_request(rq);
rq->special = ar;
/* Satisfy whatever we can of this request from our cached sector. */ /* Satisfy whatever we can of this request from our cached sector. */
if (cdrom_read_from_buffer(drive)) if (cdrom_read_from_buffer(drive))
return ide_stopped; return ide_stopped;
...@@ -1404,10 +1415,10 @@ int cdrom_queue_packet_command(ide_drive_t *drive, unsigned char *cmd, ...@@ -1404,10 +1415,10 @@ int cdrom_queue_packet_command(ide_drive_t *drive, unsigned char *cmd,
struct request rq; struct request rq;
int retries = 10; int retries = 10;
memcpy(rq.cmd, cmd, CDROM_PACKET_SIZE);
/* Start of retry loop. */ /* Start of retry loop. */
do { do {
ide_init_drive_cmd(&rq); ide_init_drive_cmd(&rq);
memcpy(rq.cmd, cmd, CDROM_PACKET_SIZE);
rq.flags = REQ_PC; rq.flags = REQ_PC;
...@@ -1630,12 +1641,14 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq) ...@@ -1630,12 +1641,14 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq)
* cdrom driver request routine. * cdrom driver request routine.
*/ */
static ide_startstop_t static ide_startstop_t
ide_do_rw_cdrom(ide_drive_t *drive, struct request *rq, unsigned long block) ide_cdrom_do_request(struct ata_device *drive, struct request *rq, sector_t block)
{ {
ide_startstop_t action; ide_startstop_t action;
struct cdrom_info *info = drive->driver_data; struct cdrom_info *info = drive->driver_data;
if (rq->flags & REQ_CMD) { if (rq->flags & REQ_CMD) {
if (CDROM_CONFIG_FLAGS(drive)->seeking) { if (CDROM_CONFIG_FLAGS(drive)->seeking) {
unsigned long elpased = jiffies - info->start_seek; unsigned long elpased = jiffies - info->start_seek;
int stat = GET_STAT(); int stat = GET_STAT();
...@@ -1652,8 +1665,30 @@ ide_do_rw_cdrom(ide_drive_t *drive, struct request *rq, unsigned long block) ...@@ -1652,8 +1665,30 @@ ide_do_rw_cdrom(ide_drive_t *drive, struct request *rq, unsigned long block)
if (IDE_LARGE_SEEK(info->last_block, block, IDECD_SEEK_THRESHOLD) && drive->dsc_overlap) if (IDE_LARGE_SEEK(info->last_block, block, IDECD_SEEK_THRESHOLD) && drive->dsc_overlap)
action = cdrom_start_seek (drive, block); action = cdrom_start_seek (drive, block);
else { else {
unsigned long flags;
struct ata_request *ar;
/*
* get a new command (push ar further down to avoid grabbing lock here
*/
spin_lock_irqsave(DRIVE_LOCK(drive), flags);
ar = ata_ar_get(drive);
/*
* we've reached maximum queue depth, bail
*/
if (!ar) {
spin_unlock_irqrestore(DRIVE_LOCK(drive), flags);
return ide_started;
}
ar->ar_rq = rq;
spin_unlock_irqrestore(DRIVE_LOCK(drive), flags);
if (rq_data_dir(rq) == READ) if (rq_data_dir(rq) == READ)
action = cdrom_start_read(drive, block); action = cdrom_start_read(drive, ar, block);
else else
action = cdrom_start_write(drive, rq); action = cdrom_start_write(drive, rq);
} }
...@@ -2297,7 +2332,7 @@ int ide_cdrom_reset (struct cdrom_device_info *cdi) ...@@ -2297,7 +2332,7 @@ int ide_cdrom_reset (struct cdrom_device_info *cdi)
struct request req; struct request req;
int ret; int ret;
ide_init_drive_cmd (&req); ide_init_drive_cmd(&req);
req.flags = REQ_SPECIAL; req.flags = REQ_SPECIAL;
ret = ide_do_drive_cmd(drive, &req, ide_wait); ret = ide_do_drive_cmd(drive, &req, ide_wait);
...@@ -2927,7 +2962,7 @@ static struct ata_operations ide_cdrom_driver = { ...@@ -2927,7 +2962,7 @@ static struct ata_operations ide_cdrom_driver = {
owner: THIS_MODULE, owner: THIS_MODULE,
cleanup: ide_cdrom_cleanup, cleanup: ide_cdrom_cleanup,
standby: NULL, standby: NULL,
do_request: ide_do_rw_cdrom, do_request: ide_cdrom_do_request,
end_request: NULL, end_request: NULL,
ioctl: ide_cdrom_ioctl, ioctl: ide_cdrom_ioctl,
open: ide_cdrom_open, open: ide_cdrom_open,
......
...@@ -549,8 +549,11 @@ int ide_start_dma(struct ata_channel *hwif, ide_drive_t *drive, ide_dma_action_t ...@@ -549,8 +549,11 @@ int ide_start_dma(struct ata_channel *hwif, ide_drive_t *drive, ide_dma_action_t
/* This can happen with drivers abusing the special request field. /* This can happen with drivers abusing the special request field.
*/ */
if (!ar) if (!ar) {
printk(KERN_ERR "DMA without ATA request\n");
return 1; return 1;
}
if (rq_data_dir(ar->ar_rq) == READ) if (rq_data_dir(ar->ar_rq) == READ)
reading = 1 << 3; reading = 1 << 3;
......
...@@ -168,6 +168,9 @@ static inline void do_identify (ide_drive_t *drive, byte cmd) ...@@ -168,6 +168,9 @@ static inline void do_identify (ide_drive_t *drive, byte cmd)
} }
printk (" drive\n"); printk (" drive\n");
drive->type = type; drive->type = type;
goto init_queue;
return; return;
} }
...@@ -198,6 +201,7 @@ static inline void do_identify (ide_drive_t *drive, byte cmd) ...@@ -198,6 +201,7 @@ static inline void do_identify (ide_drive_t *drive, byte cmd)
if (drive->channel->quirkproc) if (drive->channel->quirkproc)
drive->quirk_list = drive->channel->quirkproc(drive); drive->quirk_list = drive->channel->quirkproc(drive);
init_queue:
/* /*
* it's an ata drive, build command list * it's an ata drive, build command list
*/ */
......
This diff is collapsed.
...@@ -2,153 +2,21 @@ ...@@ -2,153 +2,21 @@
# ISDN device configuration # ISDN device configuration
# #
# only included if CONFIG_ISDN != n
if [ "$CONFIG_INET" != "n" ]; then
bool ' Support synchronous PPP' CONFIG_ISDN_PPP
if [ "$CONFIG_ISDN_PPP" != "n" ]; then
bool ' Use VJ-compression with synchronous PPP' CONFIG_ISDN_PPP_VJ
bool ' Support generic MP (RFC 1717)' CONFIG_ISDN_MPP
dep_tristate ' Support BSD compression' CONFIG_ISDN_PPP_BSDCOMP $CONFIG_ISDN
fi
fi
bool ' Support audio via ISDN' CONFIG_ISDN_AUDIO
if [ "$CONFIG_ISDN_AUDIO" != "n" ]; then
bool ' Support AT-Fax Class 1 and 2 commands' CONFIG_ISDN_TTY_FAX
fi
if [ "$CONFIG_X25" != "n" ]; then
bool ' X.25 PLP on top of ISDN' CONFIG_ISDN_X25
fi
mainmenu_option next_comment mainmenu_option next_comment
comment 'ISDN feature submodules' comment 'ISDN subsystem'
dep_tristate 'isdnloop support' CONFIG_ISDN_DRV_LOOP $CONFIG_ISDN if [ "$CONFIG_NET" != "n" ]; then
dep_tristate 'Support isdn diversion services' CONFIG_ISDN_DIVERSION $CONFIG_ISDN bool 'ISDN support' CONFIG_ISDN_BOOL
endmenu
comment 'low-level hardware drivers' if [ "$CONFIG_ISDN_BOOL" == "y" ]; then
mainmenu_option next_comment
comment 'Old ISDN4Linux'
mainmenu_option next_comment tristate 'Old ISDN4Linux (obsolete)' CONFIG_ISDN
comment 'Passive ISDN cards' if [ "$CONFIG_ISDN" != "n" ]; then
dep_tristate 'HiSax SiemensChipSet driver support' CONFIG_ISDN_DRV_HISAX $CONFIG_ISDN source drivers/isdn/i4l/Config.in
if [ "$CONFIG_ISDN_DRV_HISAX" != "n" ]; then
comment ' D-channel protocol features'
bool ' HiSax Support for EURO/DSS1' CONFIG_HISAX_EURO
if [ "$CONFIG_HISAX_EURO" != "n" ]; then
bool ' Support for german chargeinfo' CONFIG_DE_AOC
bool ' Disable sending complete' CONFIG_HISAX_NO_SENDCOMPLETE
bool ' Disable sending low layer compatibility' CONFIG_HISAX_NO_LLC
bool ' Disable keypad protocol option' CONFIG_HISAX_NO_KEYPAD
fi fi
bool ' HiSax Support for german 1TR6' CONFIG_HISAX_1TR6 endmenu
bool ' HiSax Support for US NI1' CONFIG_HISAX_NI1
int ' Maximum number of cards supported by HiSax' CONFIG_HISAX_MAX_CARDS 8
comment ' HiSax supported cards'
bool ' Teles 16.0/8.0' CONFIG_HISAX_16_0
bool ' Teles 16.3 or PNP or PCMCIA' CONFIG_HISAX_16_3
bool ' Teles PCI' CONFIG_HISAX_TELESPCI
bool ' Teles S0Box' CONFIG_HISAX_S0BOX
bool ' AVM A1 (Fritz)' CONFIG_HISAX_AVM_A1
bool ' AVM PnP/PCI (Fritz!PnP/PCI)' CONFIG_HISAX_FRITZPCI
bool ' AVM A1 PCMCIA (Fritz)' CONFIG_HISAX_AVM_A1_PCMCIA
bool ' Elsa cards' CONFIG_HISAX_ELSA
bool ' ITK ix1-micro Revision 2' CONFIG_HISAX_IX1MICROR2
bool ' Eicon.Diehl Diva cards' CONFIG_HISAX_DIEHLDIVA
bool ' ASUSCOM ISA cards' CONFIG_HISAX_ASUSCOM
bool ' TELEINT cards' CONFIG_HISAX_TELEINT
bool ' HFC-S based cards' CONFIG_HISAX_HFCS
bool ' Sedlbauer cards' CONFIG_HISAX_SEDLBAUER
bool ' USR Sportster internal TA' CONFIG_HISAX_SPORTSTER
bool ' MIC card' CONFIG_HISAX_MIC
bool ' NETjet card' CONFIG_HISAX_NETJET
bool ' NETspider U card' CONFIG_HISAX_NETJET_U
bool ' Niccy PnP/PCI card' CONFIG_HISAX_NICCY
bool ' Siemens I-Surf card' CONFIG_HISAX_ISURF
bool ' HST Saphir card' CONFIG_HISAX_HSTSAPHIR
bool ' Telekom A4T card' CONFIG_HISAX_BKM_A4T
bool ' Scitel Quadro card' CONFIG_HISAX_SCT_QUADRO
bool ' Gazel cards' CONFIG_HISAX_GAZEL
bool ' HFC PCI-Bus cards' CONFIG_HISAX_HFC_PCI
bool ' Winbond W6692 based cards' CONFIG_HISAX_W6692
bool ' HFC-S+, HFC-SP, HFC-PCMCIA cards' CONFIG_HISAX_HFC_SX
if [ "$CONFIG_EXPERIMENTAL" != "n" ]; then
# bool ' TESTEMULATOR (EXPERIMENTAL)' CONFIG_HISAX_TESTEMU
if [ "$ARCH" = "sparc" -o "$ARCH" = "sparc64" ]; then
bool ' Am7930' CONFIG_HISAX_AMD7930
fi fi
fi
bool ' HiSax debugging' CONFIG_HISAX_DEBUG
dep_tristate 'Sedlbauer PCMCIA cards' CONFIG_HISAX_SEDLBAUER_CS $CONFIG_PCMCIA
dep_tristate 'ELSA PCMCIA MicroLink cards' CONFIG_HISAX_ELSA_CS $CONFIG_PCMCIA
dep_tristate 'ST5481 USB ISDN modem (EXPERIMENTAL)' CONFIG_HISAX_ST5481 $CONFIG_HISAX $CONFIG_USB $CONFIG_EXPERIMENTAL
dep_tristate 'AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)' CONFIG_HISAX_FRITZ_PCIPNP $CONFIG_HISAX $CONFIG_EXPERIMENTAL
dep_tristate 'AVM Fritz!Card classic support (EXPERIMENTAL)' CONFIG_HISAX_FRITZ_CLASSIC $CONFIG_HISAX $CONFIG_EXPERIMENTAL
dep_tristate 'HFC PCI support (EXPERIMENTAL)' CONFIG_HISAX_HFCPCI $CONFIG_HISAX $CONFIG_EXPERIMENTAL
fi fi
endmenu endmenu
### Active ISDN cards
mainmenu_option next_comment
comment 'Active ISDN cards'
dep_tristate 'ICN 2B and 4B support' CONFIG_ISDN_DRV_ICN $CONFIG_ISDN
dep_tristate 'PCBIT-D support' CONFIG_ISDN_DRV_PCBIT $CONFIG_ISDN
dep_tristate 'Spellcaster support' CONFIG_ISDN_DRV_SC $CONFIG_ISDN
dep_tristate 'IBM Active 2000 support' CONFIG_ISDN_DRV_ACT2000 $CONFIG_ISDN
bool 'Eicon active card support' CONFIG_ISDN_DRV_EICON
if [ "$CONFIG_ISDN_DRV_EICON" != "n" ]; then
if [ "$CONFIG_ISDN_DRV_EICON_OLD" != "y" ]; then
dep_tristate ' Build Eicon driver type standalone' CONFIG_ISDN_DRV_EICON_DIVAS $CONFIG_ISDN $CONFIG_PCI
fi
if [ "$CONFIG_ISDN_DRV_EICON_DIVAS" != "y" ]; then
dep_tristate ' Legacy Eicon driver' CONFIG_ISDN_DRV_EICON_OLD $CONFIG_ISDN
if [ "$CONFIG_ISDN_DRV_EICON_OLD" != "n" ]; then
dep_bool ' Eicon PCI DIVA Server BRI/PRI/4BRI support' CONFIG_ISDN_DRV_EICON_PCI $CONFIG_PCI
bool ' Eicon S,SX,SCOM,Quadro,S2M support' CONFIG_ISDN_DRV_EICON_ISA
fi
fi
fi
if [ "$CONFIG_EXPERIMENTAL" != "n" ]; then
dep_tristate 'Auvertech TurboPAM support' CONFIG_ISDN_DRV_TPAM $CONFIG_ISDN $CONFIG_PCI
fi
# CAPI subsystem
tristate 'CAPI2.0 support' CONFIG_ISDN_CAPI
if [ "$CONFIG_ISDN_CAPI" != "n" ]; then
bool ' Verbose reason code reporting (kernel size +=7K)' CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON
dep_bool ' CAPI2.0 Middleware support (EXPERIMENTAL)' CONFIG_ISDN_CAPI_MIDDLEWARE $CONFIG_EXPERIMENTAL
dep_tristate ' CAPI2.0 /dev/capi support' CONFIG_ISDN_CAPI_CAPI20 $CONFIG_ISDN_CAPI
if [ "$CONFIG_ISDN_CAPI_MIDDLEWARE" = "y" ]; then
dep_mbool ' CAPI2.0 filesystem support' CONFIG_ISDN_CAPI_CAPIFS_BOOL $CONFIG_ISDN_CAPI_CAPI20
if [ "$CONFIG_ISDN_CAPI_CAPIFS_BOOL" = "y" ]; then
define_tristate CONFIG_ISDN_CAPI_CAPIFS $CONFIG_ISDN_CAPI_CAPI20
else
define_tristate CONFIG_ISDN_CAPI_CAPIFS n
fi
fi
dep_tristate ' CAPI2.0 capidrv interface support' CONFIG_ISDN_CAPI_CAPIDRV $CONFIG_ISDN_CAPI $CONFIG_ISDN
fi
# CAPI drivers
if [ "$CONFIG_ISDN_CAPI" != "n" ]; then
dep_tristate ' AVM B1 ISA support' CONFIG_ISDN_DRV_AVMB1_B1ISA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1 PCI support' CONFIG_ISDN_DRV_AVMB1_B1PCI $CONFIG_ISDN_CAPI $CONFIG_PCI
dep_mbool ' AVM B1 PCI V4 support' CONFIG_ISDN_DRV_AVMB1_B1PCIV4 $CONFIG_ISDN_DRV_AVMB1_B1PCI
dep_tristate ' AVM T1/T1-B ISA support' CONFIG_ISDN_DRV_AVMB1_T1ISA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1/M1/M2 PCMCIA support' CONFIG_ISDN_DRV_AVMB1_B1PCMCIA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1/M1/M2 PCMCIA cs module' CONFIG_ISDN_DRV_AVMB1_AVM_CS $CONFIG_ISDN_DRV_AVMB1_B1PCMCIA $CONFIG_PCMCIA
dep_tristate ' AVM T1/T1-B PCI support' CONFIG_ISDN_DRV_AVMB1_T1PCI $CONFIG_ISDN_CAPI $CONFIG_PCI
dep_tristate ' AVM C4/C2 support' CONFIG_ISDN_DRV_AVMB1_C4 $CONFIG_ISDN_CAPI $CONFIG_PCI
fi
# HYSDN
dep_tristate ' Hypercope HYSDN cards (Champ, Ergo, Metro) support (module only)' CONFIG_HYSDN m $CONFIG_PROC_FS
dep_mbool ' HYSDN CAPI 2.0 support' CONFIG_HYSDN_CAPI $CONFIG_HYSDN $CONFIG_ISDN_CAPI
endmenu
...@@ -4,34 +4,10 @@ ...@@ -4,34 +4,10 @@
O_TARGET := vmlinux-obj.o O_TARGET := vmlinux-obj.o
# Objects that export symbols.
export-objs := isdn_common.o
# Multipart objects.
isdn-objs := isdn_net.o isdn_tty.o isdn_v110.o isdn_common.o
# Optional parts of multipart objects.
isdn-objs-$(CONFIG_ISDN_PPP) += isdn_ppp.o
isdn-objs-$(CONFIG_ISDN_X25) += isdn_concap.o isdn_x25iface.o
isdn-objs-$(CONFIG_ISDN_AUDIO) += isdn_audio.o
isdn-objs-$(CONFIG_ISDN_TTY_FAX) += isdn_ttyfax.o
isdn-objs-$(CONFIG_ISDN_WITH_ABC) += isdn_dwabc.o
isdn-objs += $(isdn-objs-y)
# Ordering constraints: isdn.o first, rest doesn't matter
# Each configuration option enables a list of files.
obj-$(CONFIG_ISDN) += isdn.o
obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
# Object files in subdirectories # Object files in subdirectories
mod-subdirs := avmb1 eicon mod-subdirs := i4l hisax avmb1 eicon
subdir-$(CONFIG_ISDN) += i4l
subdir-$(CONFIG_ISDN_DIVERSION) += divert subdir-$(CONFIG_ISDN_DIVERSION) += divert
subdir-$(CONFIG_ISDN_DRV_HISAX) += hisax subdir-$(CONFIG_ISDN_DRV_HISAX) += hisax
subdir-$(CONFIG_ISDN_DRV_ICN) += icn subdir-$(CONFIG_ISDN_DRV_ICN) += icn
......
CONFIG_ISDN_DRV_ACT2000
Say Y here if you have an IBM Active 2000 ISDN card. In order to use
this card, additional firmware is necessary, which has to be loaded
into the card using a utility which is part of the latest
isdn4k-utils package. Please read the file
<file:Documentation/isdn/README.act2000> for more information.
#
# Config.in for IBM Active 2000 ISDN driver
#
dep_tristate 'IBM Active 2000 support' CONFIG_ISDN_DRV_ACT2000 $CONFIG_ISDN
CONFIG_ISDN_CAPI
This provides the CAPI (Common ISDN Application Programming
Interface, a standard making it easy for programs to access ISDN
hardware, see <http://www.capi.org/>. This is needed for AVM's set
of active ISDN controllers like B1, T1, M1.
CONFIG_ISDN_CAPI_CAPI20
This option will provide the CAPI 2.0 interface to userspace
applications via /dev/capi20. Applications should use the
standardized libcapi20 to access this functionality. You should say
Y/M here.
CONFIG_ISDN_CAPI_MIDDLEWARE
This option will enhance the capabilities of the /dev/capi20
interface. It will provide a means of moving a data connection,
established via the usual /dev/capi20 interface to a special tty
device. If you want to use pppd with pppdcapiplugin to dial up to
your ISP, say Y here.
CONFIG_ISDN_CAPI_CAPIFS
This option provides a special file system, similar to /dev/pts with
device nodes for the special ttys established by using the
middleware extension above. If you want to use pppd with
pppdcapiplugin to dial up to your ISP, say Y here.
CONFIG_ISDN_CAPI_CAPIDRV
This option provides the glue code to hook up CAPI driven cards to
the legacy isdn4linux link layer. If you have a card which is
supported by a CAPI driver, but still want to use old features like
ippp interfaces or ttyI emulation, say Y/M here.
CONFIG_ISDN_DRV_AVMB1_B1ISA
Enable support for the ISA version of the AVM B1 card.
CONFIG_ISDN_DRV_AVMB1_B1PCI
Enable support for the PCI version of the AVM B1 card.
CONFIG_ISDN_DRV_AVMB1_B1PCIV4
Enable support for the V4 version of AVM B1 PCI card.
CONFIG_ISDN_DRV_AVMB1_T1ISA
Enable support for the AVM T1 T1B card.
Note: This is a PRI card and handle 30 B-channels.
CONFIG_ISDN_DRV_AVMB1_B1PCMCIA
Enable support for the PCMCIA version of the AVM B1 card.
CONFIG_ISDN_DRV_AVMB1_AVM_CS
Enable the PCMCIA client driver for the AVM B1/M1/M2
PCMCIA cards.
CONFIG_ISDN_DRV_AVMB1_T1PCI
Enable support for the AVM T1 T1B card.
Note: This is a PRI card and handle 30 B-channels.
CONFIG_ISDN_DRV_AVMB1_C4
Enable support for the AVM C4/C2 PCI cards.
These cards handle 4/2 BRI ISDN lines (8/4 channels).
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON
If you say Y here, the AVM B1 driver will give verbose reasons for
disconnecting. This will increase the size of the kernel by 7 KB. If
unsure, say Y.
#
# Config.in for the CAPI subsystem
#
tristate 'CAPI2.0 support' CONFIG_ISDN_CAPI
if [ "$CONFIG_ISDN_CAPI" != "n" ]; then
bool ' Verbose reason code reporting (kernel size +=7K)' CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON
dep_bool ' CAPI2.0 Middleware support (EXPERIMENTAL)' CONFIG_ISDN_CAPI_MIDDLEWARE $CONFIG_EXPERIMENTAL
dep_tristate ' CAPI2.0 /dev/capi support' CONFIG_ISDN_CAPI_CAPI20 $CONFIG_ISDN_CAPI
if [ "$CONFIG_ISDN_CAPI_MIDDLEWARE" = "y" ]; then
dep_mbool ' CAPI2.0 filesystem support' CONFIG_ISDN_CAPI_CAPIFS_BOOL $CONFIG_ISDN_CAPI_CAPI20
if [ "$CONFIG_ISDN_CAPI_CAPIFS_BOOL" = "y" ]; then
define_tristate CONFIG_ISDN_CAPI_CAPIFS $CONFIG_ISDN_CAPI_CAPI20
else
define_tristate CONFIG_ISDN_CAPI_CAPIFS n
fi
fi
dep_tristate ' CAPI2.0 capidrv interface support' CONFIG_ISDN_CAPI_CAPIDRV $CONFIG_ISDN_CAPI $CONFIG_ISDN
fi
# CAPI drivers
if [ "$CONFIG_ISDN_CAPI" != "n" ]; then
dep_tristate ' AVM B1 ISA support' CONFIG_ISDN_DRV_AVMB1_B1ISA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1 PCI support' CONFIG_ISDN_DRV_AVMB1_B1PCI $CONFIG_ISDN_CAPI $CONFIG_PCI
dep_mbool ' AVM B1 PCI V4 support' CONFIG_ISDN_DRV_AVMB1_B1PCIV4 $CONFIG_ISDN_DRV_AVMB1_B1PCI
dep_tristate ' AVM T1/T1-B ISA support' CONFIG_ISDN_DRV_AVMB1_T1ISA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1/M1/M2 PCMCIA support' CONFIG_ISDN_DRV_AVMB1_B1PCMCIA $CONFIG_ISDN_CAPI
dep_tristate ' AVM B1/M1/M2 PCMCIA cs module' CONFIG_ISDN_DRV_AVMB1_AVM_CS $CONFIG_ISDN_DRV_AVMB1_B1PCMCIA $CONFIG_PCMCIA
dep_tristate ' AVM T1/T1-B PCI support' CONFIG_ISDN_DRV_AVMB1_T1PCI $CONFIG_ISDN_CAPI $CONFIG_PCI
dep_tristate ' AVM C4/C2 support' CONFIG_ISDN_DRV_AVMB1_C4 $CONFIG_ISDN_CAPI $CONFIG_PCI
fi
CONFIG_ISDN_DRV_EICON
Say Y here if you have an Eicon active ISDN card. In order to use
this card, additional firmware is necessary, which has to be loaded
into the card using the eiconctrl utility which is part of the
latest isdn4k-utils package. Please read the file
<file:Documentation/isdn/README.eicon> for more information.
CONFIG_ISDN_DRV_EICON_OLD
Say Y here to use your Eicon active ISDN card with ISDN4Linux
isdn module.
CONFIG_ISDN_DRV_EICON_PCI
Say Y here if you have an Eicon Diva Server (BRI/PRI/4BRI) ISDN
card. Please read <file:Documentation/isdn/README.eicon> for more
information.
CONFIG_ISDN_DRV_EICON_ISA
Say Y here if you have an old-type Eicon active ISDN card. In order
to use this card, additional firmware is necessary, which has to be
loaded into the card using the eiconctrl utility which is part of
the latest isdn4k-utils package. Please read the file
<file:Documentation/isdn/README.eicon> for more information.
CONFIG_ISDN_DRV_EICON_DIVAS
Enable this option if you want the eicon driver as standalone
version with no interface to the ISDN4Linux isdn module. If you
say Y here, the eicon module only supports the Diva Server PCI
cards and will provide its own IDI interface. You should say N
here.
#
# Config.in for Eicon active ISDN support
#
bool 'Eicon active card support' CONFIG_ISDN_DRV_EICON
if [ "$CONFIG_ISDN_DRV_EICON" != "n" ]; then
if [ "$CONFIG_ISDN_DRV_EICON_OLD" != "y" ]; then
dep_tristate ' Build Eicon driver type standalone' CONFIG_ISDN_DRV_EICON_DIVAS $CONFIG_ISDN $CONFIG_PCI
fi
if [ "$CONFIG_ISDN_DRV_EICON_DIVAS" != "y" ]; then
dep_tristate ' Legacy Eicon driver' CONFIG_ISDN_DRV_EICON_OLD $CONFIG_ISDN
if [ "$CONFIG_ISDN_DRV_EICON_OLD" != "n" ]; then
dep_bool ' Eicon PCI DIVA Server BRI/PRI/4BRI support' CONFIG_ISDN_DRV_EICON_PCI $CONFIG_PCI
bool ' Eicon S,SX,SCOM,Quadro,S2M support' CONFIG_ISDN_DRV_EICON_ISA
fi
fi
fi
CONFIG_ISDN_DRV_HISAX
This is a driver supporting the Siemens chipset on various
ISDN-cards (like AVM A1, Elsa ISDN cards, Teles S0-16.0, Teles
S0-16.3, Teles S0-8, Teles/Creatix PnP, ITK micro ix1 and many
compatibles).
HiSax is just the name of this driver, not the name of any hardware.
If you have a card with such a chipset, you should say Y here and
also to the configuration option of the driver for your particular
card, below.
CONFIG_HISAX_EURO
Say Y or N according to the D-channel protocol which your local
telephone service company provides.
The call control protocol E-DSS1 is used in most European countries.
If unsure, say Y.
CONFIG_DE_AOC
If you want that the HiSax hardware driver sends messages to the
upper level of the isdn code on each AOCD (Advice Of Charge, During
the call -- transmission of the fee information during a call) and
on each AOCE (Advice Of Charge, at the End of the call --
transmission of fee information at the end of the call), say Y here.
This works only in Germany.
CONFIG_HISAX_NO_SENDCOMPLETE
If you have trouble with some ugly exchanges or you live in
Australia select this option.
CONFIG_HISAX_NO_LLC
If you have trouble with some ugly exchanges try to select this
option.
CONFIG_HISAX_NO_KEYPAD
If you like to send special dial strings including * or # without
using the keypad protocol, select this option.
CONFIG_HISAX_1TR6
Say Y or N according to the D-channel protocol which your local
telephone service company provides.
1TR6 is an old call control protocol which was used in Germany
before E-DSS1 was established. Nowadays, all new lines in Germany
use E-DSS1.
CONFIG_HISAX_NI1
Enable this if you like to use ISDN in US on a NI1 basic rate
interface.
CONFIG_HISAX_MAX_CARDS
This option allows you to specify the maximum number of cards which
the HiSax driver will be able to handle.
CONFIG_HISAX_16_0
This enables HiSax support for the Teles ISDN-cards S0-16.0, S0-8
and many compatibles.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port/shmem settings.
CONFIG_HISAX_16_3
This enables HiSax support for the Teles ISDN-cards S0-16.3 the
Teles/Creatix PnP and the Teles PCMCIA.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_TELESPCI
This enables HiSax support for the Teles PCI.
See <file:Documentation/isdn/README.HiSax> on how to configure it.
CONFIG_HISAX_S0BOX
This enables HiSax support for the Teles/Creatix parallel port
S0BOX. See <file:Documentation/isdn/README.HiSax> on how to
configure it.
CONFIG_HISAX_AVM_A1
This enables HiSax support for the AVM A1 (aka "Fritz").
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_FRITZPCI
This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI".
See <file:Documentation/isdn/README.HiSax> on how to configure it.
CONFIG_HISAX_AVM_A1_PCMCIA
This enables HiSax support for the AVM A1 "Fritz!PCMCIA").
See <file:Documentation/isdn/README.HiSax> on how to configure it.
CONFIG_HISAX_ELSA
This enables HiSax support for the Elsa Mircolink ISA cards, for the
Elsa Quickstep series cards and Elsa PCMCIA.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_IX1MICROR2
This enables HiSax support for the ITK ix1-micro Revision 2 card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_DIEHLDIVA
This enables HiSax support for the Eicon.Diehl Diva none PRO
versions passive ISDN cards.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_ASUSCOM
This enables HiSax support for the AsusCom and their OEM versions
passive ISDN ISA cards.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_TELEINT
This enables HiSax support for the TELEINT SA1 semiactiv ISDN card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_HFCS
This enables HiSax support for the HFC-S 2BDS0 based cards, like
teles 16.3c.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_SEDLBAUER
This enables HiSax support for the Sedlbauer passive ISDN cards.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using the different cards, a different D-channel protocol, or
non-standard IRQ/port settings.
CONFIG_HISAX_SPORTSTER
This enables HiSax support for the USR Sportster internal TA card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_MIC
This enables HiSax support for the ITH MIC card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_NETJET
This enables HiSax support for the NetJet from Traverse
Technologies.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_NETJET_U
This enables HiSax support for the Netspider U interface ISDN card
from Traverse Technologies.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_NICCY
This enables HiSax support for the Dr. Neuhaus Niccy PnP or PCI.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_ISURF
This enables HiSax support for the Siemens I-Talk/I-Surf card with
ISAR chip.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_HSTSAPHIR
This enables HiSax support for the HST Saphir card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_BKM_A4T
This enables HiSax support for the Telekom A4T card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_SCT_QUADRO
This enables HiSax support for the Scitel Quadro card.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_GAZEL
This enables HiSax support for the Gazel cards.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_HFC_PCI
This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
For more informations see under
<file:Documentation/isdn/README.hfc-pci>.
CONFIG_HISAX_W6692
This enables HiSax support for Winbond W6692 based PCI ISDN cards.
See <file:Documentation/isdn/README.HiSax> on how to configure it
using a different D-channel protocol, or non-standard IRQ/port
settings.
CONFIG_HISAX_HFC_SX
This enables HiSax support for the HFC-S+, HFC-SP and HFC-PCMCIA
cards. This code is not finished yet.
CONFIG_HISAX_AMD7930
This enables HiSax support for the AMD7930 chips on some SPARCs.
This code is not finished yet.
CONFIG_HISAX_DEBUG
This enables debugging code in the new-style HiSax drivers, i.e.
the ST5481 USB driver currently.
If in doubt, say yes.
CONFIG_HISAX_ELSA_CS
This enables the PCMCIA client driver for the Elsa PCMCIA MicroLink
card.
CONFIG_HISAX_SEDLBAUER_CS
This enables the PCMCIA client driver for the Sedlbauer Speed Star
and Speed Star II cards.
CONFIG_HISAX_ST5481
This enables the driver for ST5481 based USB ISDN adapters,
e.g. the BeWan Gazel 128 USB
CONFIG_HISAX_FRITZ_PCIPNP
This enables the driver for the AVM Fritz!Card PCI, Fritz!Card PCI v2
and Fritz!Card PnP.
(the latter also needs you to select "ISA Plug and Play support"
from the menu "Plug and Play configuration")
CONFIG_HISAX_FRITZ_CLASSIC
This enables the driver for the AVM Fritz!Card classic, formerly
known as AVM A1.
mainmenu_option next_comment
comment 'Passive ISDN cards'
dep_tristate 'HiSax SiemensChipSet driver support' CONFIG_ISDN_DRV_HISAX $CONFIG_ISDN
if [ "$CONFIG_ISDN_DRV_HISAX" != "n" ]; then
comment ' D-channel protocol features'
bool ' HiSax Support for EURO/DSS1' CONFIG_HISAX_EURO
if [ "$CONFIG_HISAX_EURO" != "n" ]; then
bool ' Support for german chargeinfo' CONFIG_DE_AOC
bool ' Disable sending complete' CONFIG_HISAX_NO_SENDCOMPLETE
bool ' Disable sending low layer compatibility' CONFIG_HISAX_NO_LLC
bool ' Disable keypad protocol option' CONFIG_HISAX_NO_KEYPAD
fi
bool ' HiSax Support for german 1TR6' CONFIG_HISAX_1TR6
bool ' HiSax Support for US NI1' CONFIG_HISAX_NI1
int ' Maximum number of cards supported by HiSax' CONFIG_HISAX_MAX_CARDS 8
comment ' HiSax supported cards'
bool ' Teles 16.0/8.0' CONFIG_HISAX_16_0
bool ' Teles 16.3 or PNP or PCMCIA' CONFIG_HISAX_16_3
bool ' Teles PCI' CONFIG_HISAX_TELESPCI
bool ' Teles S0Box' CONFIG_HISAX_S0BOX
bool ' AVM A1 (Fritz)' CONFIG_HISAX_AVM_A1
bool ' AVM PnP/PCI (Fritz!PnP/PCI)' CONFIG_HISAX_FRITZPCI
bool ' AVM A1 PCMCIA (Fritz)' CONFIG_HISAX_AVM_A1_PCMCIA
bool ' Elsa cards' CONFIG_HISAX_ELSA
bool ' ITK ix1-micro Revision 2' CONFIG_HISAX_IX1MICROR2
bool ' Eicon.Diehl Diva cards' CONFIG_HISAX_DIEHLDIVA
bool ' ASUSCOM ISA cards' CONFIG_HISAX_ASUSCOM
bool ' TELEINT cards' CONFIG_HISAX_TELEINT
bool ' HFC-S based cards' CONFIG_HISAX_HFCS
bool ' Sedlbauer cards' CONFIG_HISAX_SEDLBAUER
bool ' USR Sportster internal TA' CONFIG_HISAX_SPORTSTER
bool ' MIC card' CONFIG_HISAX_MIC
bool ' NETjet card' CONFIG_HISAX_NETJET
bool ' NETspider U card' CONFIG_HISAX_NETJET_U
bool ' Niccy PnP/PCI card' CONFIG_HISAX_NICCY
bool ' Siemens I-Surf card' CONFIG_HISAX_ISURF
bool ' HST Saphir card' CONFIG_HISAX_HSTSAPHIR
bool ' Telekom A4T card' CONFIG_HISAX_BKM_A4T
bool ' Scitel Quadro card' CONFIG_HISAX_SCT_QUADRO
bool ' Gazel cards' CONFIG_HISAX_GAZEL
bool ' HFC PCI-Bus cards' CONFIG_HISAX_HFC_PCI
bool ' Winbond W6692 based cards' CONFIG_HISAX_W6692
bool ' HFC-S+, HFC-SP, HFC-PCMCIA cards' CONFIG_HISAX_HFC_SX
if [ "$CONFIG_EXPERIMENTAL" != "n" ]; then
# bool ' TESTEMULATOR (EXPERIMENTAL)' CONFIG_HISAX_TESTEMU
if [ "$ARCH" = "sparc" -o "$ARCH" = "sparc64" ]; then
bool ' Am7930' CONFIG_HISAX_AMD7930
fi
fi
bool ' HiSax debugging' CONFIG_HISAX_DEBUG
dep_tristate 'Sedlbauer PCMCIA cards' CONFIG_HISAX_SEDLBAUER_CS $CONFIG_DRV_ISDN_HISAX $CONFIG_PCMCIA
dep_tristate 'ELSA PCMCIA MicroLink cards' CONFIG_HISAX_ELSA_CS $CONFIG_DRV_ISDN_HISAX $CONFIG_PCMCIA
dep_tristate 'ST5481 USB ISDN modem (EXPERIMENTAL)' CONFIG_HISAX_ST5481 $CONFIG_DRV_ISDN_HISAX $CONFIG_USB $CONFIG_EXPERIMENTAL
dep_tristate 'AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)' CONFIG_HISAX_FRITZ_PCIPNP $CONFIG_DRV_ISDN_HISAX $CONFIG_EXPERIMENTAL
dep_tristate 'AVM Fritz!Card classic support (EXPERIMENTAL)' CONFIG_HISAX_FRITZ_CLASSIC $CONFIG_DRV_ISDN_HISAX $CONFIG_EXPERIMENTAL
dep_tristate 'HFC PCI support (EXPERIMENTAL)' CONFIG_HISAX_HFCPCI $CONFIG_DRV_ISDN_HISAX $CONFIG_EXPERIMENTAL
fi
endmenu
CONFIG_HYSDN
Say Y here if you have one of Hypercope's active PCI ISDN cards
Champ, Ergo and Metro. You will then get a module called hysdn.o.
Please read the file <file:Documentation/isdn/README.hysdn> for more
information.
CONFIG_HYSDN_CAPI
Say Y here if you like to use Hypercope's CAPI 2.0 interface.
#
# Config.in for HYSDN ISDN driver
#
dep_tristate ' Hypercope HYSDN cards (Champ, Ergo, Metro) support (module only)' CONFIG_HYSDN m $CONFIG_PROC_FS
dep_mbool ' HYSDN CAPI 2.0 support' CONFIG_HYSDN_CAPI $CONFIG_HYSDN $CONFIG_ISDN_CAPI
CONFIG_ISDN
This driver allows you to use an ISDN-card for networking
connections and as dialin/out device. The isdn-tty's have a built
in AT-compatible modem emulator. Network devices support autodial,
channel-bundling, callback and caller-authentication without having
a daemon running. A reduced T.70 protocol is supported with tty's
suitable for German BTX. On D-Channel, the protocols EDSS1
(Euro-ISDN) and 1TR6 (German style) are supported. See
<file:Documentation/isdn/README> for more information.
ISDN support in the linux kernel is moving towards a new API,
called CAPI (Common ISDN Application Programming Interface).
Therefore the old ISDN4Linux layer is becoming obsolete. It is
still usable, though, if you select this option.
CONFIG_ISDN_PPP
Over digital connections such as ISDN, there is no need to
synchronize sender and recipient's clocks with start and stop bits
as is done over analog telephone lines. Instead, one can use
"synchronous PPP". Saying Y here will include this protocol. This
protocol is used by Cisco and Sun for example. So you want to say Y
here if the other end of your ISDN connection supports it. You will
need a special version of pppd (called ipppd) for using this
feature. See <file:Documentation/isdn/README.syncppp> and
<file:Documentation/isdn/syncPPP.FAQ> for more information.
CONFIG_ISDN_MPP
With synchronous PPP enabled, it is possible to increase throughput
by bundling several ISDN-connections, using this protocol. See
<file:Documentation/isdn/README.syncppp> for more information.
CONFIG_ISDN_PPP_VJ
This enables Van Jacobson header compression for synchronous PPP.
Say Y if the other end of the connection supports it.
CONFIG_ISDN_PPP_BSDCOMP
Support for the BSD-Compress compression method for PPP, which uses
the LZW compression method to compress each PPP packet before it is
sent over the wire. The machine at the other end of the PPP link
(usually your ISP) has to support the BSD-Compress compression
method as well for this to be useful. Even if they don't support it,
it is safe to say Y here.
CONFIG_ISDN_AUDIO
If you say Y here, the modem-emulator will support a subset of the
EIA Class 8 Voice commands. Using a getty with voice-support
(mgetty+sendfax by gert@greenie.muc.de with an extension, available
with the ISDN utility package for example), you will be able to use
your Linux box as an ISDN-answering machine. Of course, this must be
supported by the lowlevel driver also. Currently, the HiSax driver
is the only voice-supporting driver. See
<file:Documentation/isdn/README.audio> for more information.
CONFIG_ISDN_X25
This feature provides the X.25 protocol over ISDN connections.
See <file:Documentation/isdn/README.x25> for more information
if you are thinking about using this.
CONFIG_ISDN_DIVERSION
This option allows you to use some supplementary diversion
services in conjunction with the HiSax driver on an EURO/DSS1
line.
Supported options are CD (call deflection), CFU (Call forward
unconditional), CFB (Call forward when busy) and CFNR (call forward
not reachable). Additionally the actual CFU, CFB and CFNR state may
be interrogated.
The use of CFU, CFB, CFNR and interrogation may be limited to some
countries. The keypad protocol is still not implemented. CD should
work in all countries if the service has been subscribed to.
Please read the file <file:Documentation/isdn/README.diversion>.
CONFIG_ISDN_TTY_FAX
If you say Y here, the modem-emulator will support a subset of the
Fax Class 1 and 2 commands. Using a getty with fax-support
(mgetty+sendfax, hylafax), you will be able to use your Linux box as
an ISDN-fax-machine. This must be supported by the lowlevel driver
also. See <file:Documentation/isdn/README.fax> for more information.
CONFIG_ISDN_DRV_LOOP
This driver provides a virtual ISDN card. Its primary purpose is
testing of linklevel features or configuration without getting
charged by your service-provider for lots of phone calls.
You need will need the loopctrl utility from the latest isdn4k-utils
package to set up this driver.
#
# Old ISDN4Linux config
#
if [ "$CONFIG_INET" != "n" ]; then
bool ' Support synchronous PPP' CONFIG_ISDN_PPP
if [ "$CONFIG_ISDN_PPP" != "n" ]; then
bool ' Use VJ-compression with synchronous PPP' CONFIG_ISDN_PPP_VJ
bool ' Support generic MP (RFC 1717)' CONFIG_ISDN_MPP
dep_tristate ' Support BSD compression' CONFIG_ISDN_PPP_BSDCOMP $CONFIG_ISDN
fi
fi
bool ' Support audio via ISDN' CONFIG_ISDN_AUDIO
if [ "$CONFIG_ISDN_AUDIO" != "n" ]; then
bool ' Support AT-Fax Class 1 and 2 commands' CONFIG_ISDN_TTY_FAX
fi
if [ "$CONFIG_X25" != "n" ]; then
bool ' X.25 PLP on top of ISDN' CONFIG_ISDN_X25
fi
mainmenu_option next_comment
comment 'ISDN feature submodules'
dep_tristate 'isdnloop support' CONFIG_ISDN_DRV_LOOP $CONFIG_ISDN
dep_tristate 'Support isdn diversion services' CONFIG_ISDN_DIVERSION $CONFIG_ISDN
endmenu
comment 'low-level hardware drivers'
source drivers/isdn/hisax/Config.in
### Active ISDN cards
mainmenu_option next_comment
comment 'Active ISDN cards'
source drivers/isdn/icn/Config.in
source drivers/isdn/pcbit/Config.in
source drivers/isdn/sc/Config.in
source drivers/isdn/act2000/Config.in
source drivers/isdn/eicon/Config.in
source drivers/isdn/tpam/Config.in
source drivers/isdn/avmb1/Config.in
source drivers/isdn/hysdn/Config.in
endmenu
# Makefile for the kernel ISDN subsystem and device drivers.
# The target object and module list name.
O_TARGET := vmlinux-obj.o
# Objects that export symbols.
export-objs := isdn_common.o
# Multipart objects.
isdn-objs := isdn_net.o isdn_tty.o isdn_v110.o isdn_common.o
# Optional parts of multipart objects.
isdn-objs-$(CONFIG_ISDN_PPP) += isdn_ppp.o
isdn-objs-$(CONFIG_ISDN_X25) += isdn_concap.o isdn_x25iface.o
isdn-objs-$(CONFIG_ISDN_AUDIO) += isdn_audio.o
isdn-objs-$(CONFIG_ISDN_TTY_FAX) += isdn_ttyfax.o
isdn-objs-$(CONFIG_ISDN_WITH_ABC) += isdn_dwabc.o
isdn-objs += $(isdn-objs-y)
# Ordering constraints: isdn.o first, rest doesn't matter
# Each configuration option enables a list of files.
obj-$(CONFIG_ISDN) += isdn.o
obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
# The global Rules.make.
include $(TOPDIR)/Rules.make
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment