Commit d038090e authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/net-2.6

into ppc970.osdl.org:/home/torvalds/v2.5/linux
parents 72ab6a0f f50d5e03
This is a brief list of all the files in ./linux/Documentation and what
they contain. If you add a documentation file, please list it here in
alphabetical order as well, or risk being hunted down like a rabid dog.
they contain. If you add a documentation file, please list it here in
alphabetical order as well, or risk being hunted down like a rabid dog.
Please try and keep the descriptions small enough to fit on one line.
Thanks -- Paul G.
......@@ -26,10 +26,14 @@ DocBook/
- directory with DocBook templates etc. for kernel documentation.
IO-mapping.txt
- how to access I/O mapped memory from within device drivers.
IPMI.txt
- info on Linux Intelligent Platform Management Interface (IPMI) Driver.
IRQ-affinity.txt
- how to select which CPU(s) handle which interrupt events on SMP.
MSI-HOWTO.txt
- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
README.DAC960
- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux
- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
README.moxa
- release notes for Moxa mutiport serial card.
SAK.txt
......@@ -42,6 +46,10 @@ VGA-softcursor.txt
- how to change your VGA cursor from a blinking underscore.
arm/
- directory with info about Linux on the ARM architecture.
as-iosched.txt
- info on anticipatory IO scheduler.
basic_profiling.txt
- basic instructions for those who wants to profile Linux kernel.
binfmt_misc.txt
- info on the kernel support for extra binary formats.
block/
......@@ -53,25 +61,31 @@ cciss.txt
cdrom/
- directory with information on the CD-ROM drivers that Linux has.
computone.txt
- info on Computone Intelliport II/Plus Multiport Serial Driver
- info on Computone Intelliport II/Plus Multiport Serial Driver.
cpqarray.txt
- info on using Compaq's SMART2 Intelligent Disk Array Controllers.
cpufreq/
- info on CPU frequency and voltage scaling
- info on CPU frequency and voltage scaling.
cris/
- directory with info about Linux on CRIS architecture.
debugging-modules.txt
- some notes on debugging modules after Linux 2.6.3.
devices.txt
- plain ASCII listing of all the nodes in /dev/ with major minor #'s
- plain ASCII listing of all the nodes in /dev/ with major minor #'s.
digiboard.txt
- info on the Digiboard PC/X{i,e,eve} multiport boards.
digiepca.txt
- info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
dnotify.txt
- info about directory notification in Linux.
driver-model.txt
- info about Linux driver model.
driver-model/
- directory with info about Linux driver model.
dvb/
- info on Linux Digital Video Broadcast (DVB) subsystem.
early-userspace/
- info about initramfs, klibc, and userspace early during boot.
eisa.txt
- info on EISA bus support.
exception.txt
- how Linux v2.2 handles exceptions without verify_area etc.
fb/
......@@ -81,47 +95,51 @@ filesystems/
floppy.txt
- notes and driver options for the floppy disk driver.
ftape.txt
- notes about the floppy tape device driver
- notes about the floppy tape device driver.
hayes-esp.txt
- info on using the Hayes ESP serial driver.
highuid.txt
- notes on the change from 16 bit to 32 bit user/group IDs.
hw_random.txt
- info on Linux support for random number generator in i8xx chipsets.
i2c/
- directory with info about the I2C bus/protocol (2 wire, kHz speed)
- directory with info about the I2C bus/protocol (2 wire, kHz speed).
i386/
- directory with info about Linux on intel 32 bit architecture.
i810_rng.txt
- info on Linux support for random number generator in i8xx chipsets.
- directory with info about Linux on Intel 32 bit architecture.
ia64/
- directory with info about Linux on intel 64 bit architecture.
- directory with info about Linux on Intel 64 bit architecture.
ide.txt
- important info for users of ATA devices (IDE/EIDE disks and CD-ROMS)
- important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
initrd.txt
- how to use the RAM disk as an initial/temporary root filesystem.
input/
- info on Linux input device support.
ioctl-number.txt
- how to implement and register device/driver ioctl calls.
iostats.txt
- info on I/O statistics Linux kernel provides.
isapnp.txt
- info on Linux ISA Plug & Play support
- info on Linux ISA Plug & Play support.
isdn/
- directory with info on the Linux ISDN support, and supported cards.
java.txt
- info on the in-kernel binary support for Java(tm)
- info on the in-kernel binary support for Java(tm).
kbuild/
- directory with info about the kernel build process
- directory with info about the kernel build process.
kernel-doc-nano-HOWTO.txt
- mini HowTo on generation and location of kernel documentation files.
kernel-docs.txt
- listing of various WWW + books that document kernel internals.
kernel-parameters.txt
- summary listing of command line / boot prompt args for the kernel.
kobject.txt
- info of the kobject infrastructure of the Linux kernel.
ldm.txt
- a brief description of LDM (Windows Dynamic Disks).
locks.txt
- info on file locking implementations, flock() vs. fcntl(), etc.
logo.gif
- Full colour GIF image of Linux logo (penguin)
- Full colour GIF image of Linux logo (penguin).
logo.txt
- Info on creator of above logo & site to get additional images from.
m68k/
......@@ -133,27 +151,27 @@ mandatory.txt
mca.txt
- info on supporting Micro Channel Architecture (e.g. PS/2) systems.
md.txt
- info on boot arguments for the multiple devices driver
- info on boot arguments for the multiple devices driver.
memory.txt
- info on typical Linux memory problems.
mips/
- directory with info about Linux on MIPS architecture.
mkdev.cciss
- script to make /dev entries for SMART controllers (see cciss.txt)
- script to make /dev entries for SMART controllers (see cciss.txt).
mkdev.ida
- script to make /dev entries for Intelligent Disk Array Controllers.
moxa-smartio
- info on installing/using Moxa multiport serial driver.
mtrr.txt
- how to use PPro Memory Type Range Registers to increase performance
- how to use PPro Memory Type Range Registers to increase performance.
nbd.txt
- info on a TCP implementation of a network block device.
networking/
- directory with info on various aspects of networking with Linux.
nfsroot.txt
- short guide on setting up a diskless box with NFS root filesystem
- short guide on setting up a diskless box with NFS root filesystem.
nmi_watchdog.txt
- info on NMI watchdog for SMP systems
- info on NMI watchdog for SMP systems.
oops-tracing.txt
- how to decode those nasty internal kernel error dump messages.
paride.txt
......@@ -165,11 +183,11 @@ parport.txt
parport-lowlevel.txt
- description and usage of the low level parallel port functions.
pci.txt
- info on the PCI subsystem for device driver authors
pcwd-watchdog.txt
- info and sample code for using with the PC Watchdog reset card.
- info on the PCI subsystem for device driver authors.
pm.txt
- info on Linux power management support.
pnp.txt
- Linux Plug and Play documentation.
power/
- directory with info on Linux PCI power management.
powerpc/
......@@ -181,29 +199,31 @@ ramdisk.txt
riscom8.txt
- notes on using the RISCom/8 multi-port serial driver.
rocket.txt
- info on installing/using the Comtrol RocketPort multiport serial driver
- info on installing/using the Comtrol RocketPort multiport serial driver.
rpc-cache.txt
- introduction to the caching mechanisms in the sunrpc layer.
rtc.txt
- notes on how to use the Real Time Clock (aka CMOS clock) driver.
s390/
- directory with info on using Linux on the IBM S390.
sh/
- directory with info on porting Linux to a new architecture.
sched-design.txt
- goals, design and implementation of the Linux O(1) scheduler.
scsi/
- directory with info on Linux scsi support.
serial-console.txt
- how to set up Linux with a serial line console as the default.
sgi-visws.txt
- short blurb on the SGI Visual Workstations.
sh/
- directory with info on porting Linux to a new architecture.
smart-config.txt
- description of the Smart Config makefile feature.
smp.tex
- LaTeX document describing implementation of Multiprocessor Linux
smp.txt
- a few more notes on symmetric multi-processing
- a few notes on symmetric multi-processing.
sonypi.txt
- info on Linux Sony Programmable I/O Device support.
sound/
- directory with info on sound card support
- directory with info on sound card support.
sparc/
- directory with info on using Linux on Sparc architecture.
specialix.txt
......@@ -217,9 +237,9 @@ svga.txt
sx.txt
- info on the Specialix SX/SI multiport serial driver.
sysctl/
- directory with info on the /proc/sys/* files
- directory with info on the /proc/sys/* files.
sysrq.txt
- info on the magic SysRq key
- info on the magic SysRq key.
telephony/
- directory with info on telephony (e.g. voice over IP) support.
unicode.txt
......@@ -230,7 +250,7 @@ video4linux/
- directory with info regarding video/TV/radio cards and linux.
vm/
- directory with info on the Linux vm code.
watchdog.txt
watchdog/
- how to auto-reboot Linux if it has "fallen and can't get up". ;-)
x86_64/
- directory with info on Linux support for AMD x86-64 (Hammer) machines.
......@@ -238,4 +258,3 @@ xterm-linux.xpm
- XPM image of penguin logo (see logo.txt) sitting on an xterm.
zorro.txt
- info on writing drivers for Zorro bus devices found on Amigas.
......@@ -186,7 +186,6 @@ loadable module. You can also say 'y' to "Generic ARCnet support" and 'm'
to the chipset support if you wish.
make config
make dep
make clean
make zImage
make modules
......
......@@ -14,15 +14,6 @@ Command line parameters
Default is off.
* cio_notoper_msg = yes | no
Determines whether messages of the type "Device 0.0.4711 became 'not
operational'" should be shown during startup; after startup, they will always
be shown.
Default is on.
* cio_ignore = {all} |
{<device> | <range of devices>} |
{!<device> | !<range of devices>}
......
......@@ -31,6 +31,9 @@ cutype: The control unit type / model.
devtype: The device type / model, if applicable.
availability: Can be 'good' or 'boxed'; 'no path' or 'no device' for
disconnected devices.
online: An interface to set the device online and offline.
In the special case of the device being disconnected (see the
notify function under 1.2), piping 0 to online will focibly delete
......
......@@ -2395,7 +2395,7 @@ S: Maintained
ZR36067 VIDEO FOR LINUX DRIVER
P: Ronald Bultje
M: R.S.Bultje@pharm.uu.nl
M: rbultje@ronald.bitfreak.net
L: mjpeg-users@lists.sourceforge.net
W: http://mjpeg.sourceforge.net/driver-zoran/
S: Maintained
......
......@@ -172,24 +172,15 @@ COMPILING the kernel:
Please note that you can still run a.out user programs with this kernel.
- Do a "make bzImage" to create a compressed kernel image. If you want
to make a boot disk (without root filesystem or LILO), insert a floppy
in your A: drive, and do a "make bzdisk". It is also possible to do
"make install" if you have lilo installed to suit the kernel makefiles,
but you may want to check your particular lilo setup first.
- Do a "make" to create a compressed kernel image. It is also
possible to do "make install" if you have lilo installed to suit the
kernel makefiles, but you may want to check your particular lilo setup first.
To do the actual install you have to be root, but none of the normal
build should require that. Don't take the name of root in vain.
- In the unlikely event that your system cannot boot bzImage kernels you
can still compile your kernel as zImage. However, since zImage support
will be removed at some point in the future in favor of bzImage we
encourage people having problems with booting bzImage kernels to report
these, with detailed hardware configuration information, to the
linux-kernel mailing list and to H. Peter Anvin <hpa+linux@zytor.com>.
- If you configured any of the parts of the kernel as `modules', you
will have to do "make modules" followed by "make modules_install".
will also have to do "make modules_install".
- Keep a backup kernel handy in case something goes wrong. This is
especially true for the development releases, since each new release
......@@ -200,11 +191,11 @@ COMPILING the kernel:
do a "make modules_install".
- In order to boot your new kernel, you'll need to copy the kernel
image (found in .../linux/arch/i386/boot/bzImage after compilation)
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
to the place where your regular bootable kernel is found.
For some, this is on a floppy disk, in which case you can copy the
kernel bzImage file to /dev/fd0 to make a bootable floppy.
- Booting a kernel directly from a floppy without the assistance of a
bootloader such as LILO, is no longer supported.
If you boot Linux from the hard drive, chances are you use LILO which
uses the kernel image as specified in the file /etc/lilo.conf. The
......@@ -262,8 +253,9 @@ IF SOMETHING GOES WRONG:
the above example it's due to a bad kernel pointer). More information
on making sense of the dump is in Documentation/oops-tracing.txt
- You can use the "ksymoops" program to make sense of the dump. This
utility can be downloaded from
- If you compiled the kernel with CONFIG_KALLSYMS you can send the dump
as is, otherwise you will have to use the "ksymoops" program to make
sense of the dump. This utility can be downloaded from
ftp://ftp.<country>.kernel.org/pub/linux/utils/kernel/ksymoops.
Alternately you can do the dump lookup by hand:
......
......@@ -29,7 +29,7 @@ obj-$(CONFIG_DEBUG_LL) += debug.o
extra-y := $(head-y) init_task.o vmlinux.lds.s
# Spell out some dependencies that `make dep' doesn't spot
# Spell out some dependencies that aren't automatically figured out
$(obj)/entry-armv.o: $(obj)/entry-header.S include/asm-arm/constants.h
$(obj)/entry-common.o: $(obj)/entry-header.S include/asm-arm/constants.h \
$(obj)/calls.S
#
# Makefile for the linux arm26-specific parts of the memory manager.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
# Object file lists.
obj-y := init.o extable.o proc-funcs.o mm-memc.o fault.o
#
# Makefile for the linux m68k-specific parts of the memory manager.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
obj-y := init.o fault.o memory.o kmap.o
......@@ -6,10 +6,6 @@
#VPATH := $(VPATH):$(BOARD)
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
.S.o:
$(CC) -D__ASSEMBLY__ $(AFLAGS) -I. -c $< -o $*.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
extra-y := crt0_ram.o
obj-y := timer.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := timer.o
extra-y = crt0_$(MODEL).o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
extra-y := crt0_ram.o
obj-y := timer.o
......
......@@ -6,10 +6,6 @@
#VPATH := $(VPATH):$(BOARD)
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
.S.o:
$(CC) -D__ASSEMBLY__ $(AFLAGS) -I. -c $< -o $*.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
extra-y := crt0_ram.o
obj-y := timer.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
extra-y = crt0_$(MODEL).o
obj-y := timer.o
......
......@@ -8,6 +8,8 @@
*
* Based on the powernow-k7.c module written by Dave Jones.
* (C) 2003 Dave Jones <davej@codemonkey.ork.uk> on behalf of SuSE Labs
* (C) 2004 Dominik Brodowski <linux@brodo.de>
* (C) 2004 Pavel Machek <pavel@suse.cz>
* Licensed under the terms of the GNU GPL License version 2.
* Based upon datasheets & sample CPUs kindly provided by AMD.
*
......@@ -34,10 +36,6 @@
#define VERSION "version 1.00.08a"
#include "powernow-k8.h"
#ifdef CONFIG_PREEMPT
#warning this driver has not been tested on a preempt system
#endif
static u32 vstable; /* voltage stabalization time, from PSB, units 20 us */
static u32 plllock; /* pll lock time, from PSB, units 1 us */
static u32 numps; /* number of p-states, from PSB */
......@@ -636,13 +634,22 @@ find_psb_table(void)
return -ENOMEM;
}
for (j = 0; j < numps; j++) {
printk(KERN_INFO PFX " %d : fid 0x%x (%d MHz), vid 0x%x\n", j,
pst[j].fid, find_freq_from_fid(pst[j].fid), pst[j].vid);
for (j = 0; j < psb->numpstates; j++) {
powernow_table[j].index = pst[j].fid; /* lower 8 bits */
powernow_table[j].index |= (pst[j].vid << 8); /* upper 8 bits */
powernow_table[j].frequency = find_freq_from_fid(pst[j].fid);
}
/* If you want to override your frequency tables, this
is right place. */
for (j = 0; j < numps; j++) {
powernow_table[j].frequency = find_freq_from_fid(powernow_table[j].index & 0xff)*1000;
printk(KERN_INFO PFX " %d : fid 0x%x (%d MHz), vid 0x%x\n", j,
powernow_table[j].index & 0xff,
powernow_table[j].frequency/1000,
powernow_table[j].index >> 8);
}
powernow_table[numps].frequency = CPUFREQ_TABLE_END;
powernow_table[numps].index = 0;
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_CFLAGS += -I../kernel
obj-y := setup.o voyager_basic.o voyager_thread.o
......
......@@ -88,7 +88,7 @@ static int nmi_callback(struct pt_regs * regs, int cpu)
}
static void nmi_save_registers(struct op_msrs * msrs)
static void nmi_cpu_save_registers(struct op_msrs * msrs)
{
unsigned int const nr_ctrs = model->num_counters;
unsigned int const nr_ctrls = model->num_controls;
......@@ -110,6 +110,15 @@ static void nmi_save_registers(struct op_msrs * msrs)
}
static void nmi_save_registers(void * dummy)
{
int cpu = smp_processor_id();
struct op_msrs * msrs = &cpu_msrs[cpu];
model->fill_in_addresses(msrs);
nmi_cpu_save_registers(msrs);
}
static void free_msrs(void)
{
int i;
......@@ -156,8 +165,6 @@ static void nmi_cpu_setup(void * dummy)
{
int cpu = smp_processor_id();
struct op_msrs * msrs = &cpu_msrs[cpu];
model->fill_in_addresses(msrs);
nmi_save_registers(msrs);
spin_lock(&oprofilefs_lock);
model->setup_ctrs(msrs);
spin_unlock(&oprofilefs_lock);
......@@ -177,6 +184,10 @@ static int nmi_setup(void)
* break the core code horrifically.
*/
disable_lapic_nmi_watchdog();
/* We need to serialize save and setup for HT because the subset
* of msrs are distinct for save and setup operations
*/
on_each_cpu(nmi_save_registers, NULL, 0, 1);
on_each_cpu(nmi_cpu_setup, NULL, 0, 1);
set_nmi_callback(nmi_callback);
nmi_enabled = 1;
......
......@@ -49,7 +49,6 @@
#include <asm/amigahw.h>
#include <asm/amigaints.h>
#include <asm/amipcmcia.h>
#include <asm/unistd.h>
extern int cia_request_irq(struct ciabase *base,int irq,
irqreturn_t (*handler)(int, void *, struct pt_regs *),
......
......@@ -20,7 +20,6 @@
#include <asm/system.h>
#include <asm/irq.h>
#include <asm/traps.h>
#include <asm/unistd.h>
static irqreturn_t bvme6000_defhand (int irq, void *dev_id, struct pt_regs *fp);
......
......@@ -17,7 +17,6 @@
#include <asm/io.h>
#include <asm/system.h>
#include <asm/traps.h>
#include <asm/unistd.h>
#include "ints.h"
/* Clock hardware definitions */
......
......@@ -118,7 +118,6 @@
#include <asm/macints.h>
#include <asm/mac_iop.h>
#include <asm/mac_oss.h>
#include <asm/unistd.h>
/*#define DEBUG_IOP*/
......
......@@ -133,7 +133,6 @@
#include <asm/hwtest.h>
#include <asm/errno.h>
#include <asm/macints.h>
#include <asm/unistd.h>
#define DEBUG_SPURIOUS
#define SHUTUP_SONIC
......
......@@ -26,7 +26,6 @@
#include <asm/macints.h>
#include <asm/mac_via.h>
#include <asm/mac_oss.h>
#include <asm/unistd.h>
int oss_present;
volatile struct mac_oss *oss;
......
......@@ -24,7 +24,6 @@
#include <asm/macintosh.h>
#include <asm/macints.h>
#include <asm/mac_psc.h>
#include <asm/unistd.h>
#define DEBUG_PSC
......
......@@ -32,7 +32,6 @@
#include <asm/machw.h>
#include <asm/mac_via.h>
#include <asm/mac_psc.h>
#include <asm/unistd.h>
volatile __u8 *via1, *via2;
#if 0
......
......@@ -26,7 +26,6 @@
#include <asm/irq.h>
#include <asm/hardirq.h>
#include <asm/traps.h>
#include <asm/unistd.h>
#include <asm/q40_master.h>
#include <asm/q40ints.h>
......
......@@ -15,7 +15,6 @@
#include <asm/intersil.h>
#include <asm/oplib.h>
#include <asm/sun3ints.h>
#include <asm/unistd.h>
#include <linux/seq_file.h>
extern void sun3_leds (unsigned char);
......
......@@ -4,10 +4,6 @@
#
# Makefile for the Cogent CSB250 Au1500 board. Copied from Pb1500.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
USE_STANDARD_AS_RULE := true
......
......@@ -5,10 +5,6 @@
#
# Makefile for the Alchemy Semiconductor PB1000 board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
.S.s:
$(CPP) $(CFLAGS) $< -o $*.s
......
......@@ -6,9 +6,5 @@
#
# Makefile for 4G Systems MTX-1 board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
lib-y := init.o board_setup.o irqmap.o
......@@ -5,10 +5,6 @@
#
# Makefile for the Alchemy Semiconductor PB1000 board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
.S.s:
$(CPP) $(CFLAGS) $< -o $*.s
......
......@@ -5,9 +5,5 @@
#
# Makefile for MyCable XXS1500 board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
lib-y := init.o board_setup.o irqmap.o
......@@ -95,7 +95,7 @@
* Example:
* $ cd ~/linux
* $ make menuconfig <go to "Kernel Hacking" and turn on remote debugging>
* $ make dep; make vmlinux
* $ make
*
* Step 3:
* Download the kernel to the remote target and start
......
#
# Makefile for Momentum Computer's Jaguar-ATX board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y += mv-irq.o int-handler.o irq.o pci-irq.o prom.o reset.o setup.o
obj-$(CONFIG_PCI) += pci.o
......
#
# Makefile for common code for Toshiba TX4927 based systems
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := tx4927_prom.o
obj-y += tx4927_setup.o
......
......@@ -26,6 +26,7 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -56,15 +57,16 @@ CONFIG_PPC64=y
CONFIG_PPC_OF=y
CONFIG_ALTIVEC=y
CONFIG_PPC_PMAC=y
# CONFIG_PMAC_DART is not set
CONFIG_PPC_PMAC64=y
CONFIG_BOOTX_TEXT=y
CONFIG_POWER4_ONLY=y
# CONFIG_IOMMU_VMERGE is not set
CONFIG_SMP=y
CONFIG_IRQ_ALL_CPUS=y
CONFIG_NR_CPUS=2
# CONFIG_HMT is not set
CONFIG_DISCONTIGMEM=y
# CONFIG_NUMA is not set
# CONFIG_DISCONTIGMEM is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_LPARCFG is not set
......@@ -77,7 +79,6 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_HOTPLUG=y
#
# PCMCIA/CardBus support
......@@ -128,6 +129,7 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
# CONFIG_DCSSBLK is not set
#
# ATA/ATAPI/MFM/RLL support
......@@ -277,6 +279,7 @@ CONFIG_MD_RAID5=y
# CONFIG_MD_MULTIPATH is not set
CONFIG_BLK_DEV_DM=y
CONFIG_DM_IOCTL_V4=y
# CONFIG_DM_CRYPT is not set
#
# Fusion MPT device support
......@@ -284,7 +287,7 @@ CONFIG_DM_IOCTL_V4=y
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=y
......@@ -318,11 +321,11 @@ CONFIG_IEEE1394_RAWIO=y
#
# Macintosh device drivers
#
CONFIG_ADB=y
CONFIG_ADB_PMU=y
# CONFIG_PMAC_PBOOK is not set
# CONFIG_PMAC_BACKLIGHT is not set
# CONFIG_MAC_SERIAL is not set
CONFIG_ADB=y
# CONFIG_INPUT_ADBHID is not set
CONFIG_THERM_PM72=y
......@@ -439,6 +442,7 @@ CONFIG_TIGON3=m
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_IBMVETH is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
......@@ -488,7 +492,7 @@ CONFIG_IBMOL=y
#
# ISDN subsystem
#
# CONFIG_ISDN_BOOL is not set
# CONFIG_ISDN is not set
#
# Telephony Support
......@@ -556,7 +560,8 @@ CONFIG_HW_CONSOLE=y
#
# CONFIG_SERIAL_PMACZILOG is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_HVC_CONSOLE=y
#
......@@ -676,6 +681,7 @@ CONFIG_FB_RIVA=y
# CONFIG_FB_RADEON_OLD is not set
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
......@@ -919,7 +925,6 @@ CONFIG_VFAT_FS=y
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
CONFIG_DEVPTS_FS_XATTR=y
# CONFIG_DEVPTS_FS_SECURITY is not set
CONFIG_TMPFS=y
......@@ -933,6 +938,7 @@ CONFIG_RAMFS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
......@@ -964,7 +970,6 @@ CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_CIFS=m
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
......@@ -1037,9 +1042,11 @@ CONFIG_OPROFILE=y
# Kernel hacking
#
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_XMON is not set
# CONFIG_DEBUGGER is not set
# CONFIG_PPCDBG is not set
# CONFIG_DEBUG_INFO is not set
......
......@@ -103,7 +103,7 @@ long pSeries_hpte_insert(unsigned long hpte_group, unsigned long va,
__asm__ __volatile__ ("ptesync" : : : "memory");
return i;
return i | (secondary << 3);
}
static long pSeries_hpte_remove(unsigned long hpte_group)
......
......@@ -379,7 +379,10 @@ long pSeries_lpar_hpte_insert(unsigned long hpte_group,
if (lpar_rc != H_Success)
return -2;
return slot;
/* Because of iSeries, we have to pass down the secondary
* bucket bit here as well
*/
return (slot & 7) | (secondary << 3);
}
static spinlock_t pSeries_lpar_tlbie_lock = SPIN_LOCK_UNLOCKED;
......
......@@ -176,7 +176,6 @@ _GLOBAL(htab_call_hpte_insert1)
beq- htab_pte_insert_failure
/* Now try secondary slot */
ori r30,r30,_PAGE_SECONDARY
/* page number in r5 */
rldicl r5,r31,64-PTE_SHIFT,PTE_SHIFT
......@@ -215,8 +214,8 @@ _GLOBAL(htab_call_hpte_remove)
b htab_insert_pte
htab_pte_insert_ok:
/* Insert slot number in PTE */
rldimi r30,r3,12,63-14
/* Insert slot number & secondary bit in PTE */
rldimi r30,r3,12,63-15
/* Write out the PTE with a normal write
* (maybe add eieio may be good still ?)
......
......@@ -33,7 +33,10 @@ bootmem_data_t plat_node_bdata[MAX_NUMNODES];
static unsigned long node0_io_hole_size;
EXPORT_SYMBOL(node_data);
EXPORT_SYMBOL(numa_cpu_lookup_table);
EXPORT_SYMBOL(numa_memory_lookup_table);
EXPORT_SYMBOL(numa_cpumask_lookup_table);
EXPORT_SYMBOL(nr_cpus_in_node);
static inline void map_cpu_to_node(int cpu, int node)
{
......
......@@ -49,7 +49,16 @@ COMPATIBLE_IOCTL(BIODASDRSRV)
COMPATIBLE_IOCTL(BIODASDRLSE)
COMPATIBLE_IOCTL(BIODASDSLCK)
COMPATIBLE_IOCTL(BIODASDINFO)
COMPATIBLE_IOCTL(BIODASDINFO2)
COMPATIBLE_IOCTL(BIODASDFMT)
COMPATIBLE_IOCTL(BIODASDPRRST)
COMPATIBLE_IOCTL(BIODASDQUIESCE)
COMPATIBLE_IOCTL(BIODASDRESUME)
COMPATIBLE_IOCTL(BIODASDPRRD)
COMPATIBLE_IOCTL(BIODASDPSRD)
COMPATIBLE_IOCTL(BIODASDGATTR)
COMPATIBLE_IOCTL(BIODASDSATTR)
#endif
#if defined(CONFIG_S390_TAPE) || defined(CONFIG_S390_TAPE_MODULE)
......
......@@ -1161,8 +1161,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i
put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen);
((char *) dirent) += reclen;
buf->current_dir = dirent;
buf->current_dir = ((void *)dirent) + reclen;
buf->count -= reclen;
return 0;
}
......
......@@ -3,23 +3,20 @@
#include "compat_linux.h" /* needed for _psw_t32 */
typedef struct
{
typedef struct {
__u32 cr[3];
} per_cr_words32 __attribute__((packed));
} per_cr_words32;
typedef struct
{
typedef struct {
__u16 perc_atmid; /* 0x096 */
__u32 address; /* 0x098 */
__u8 access_id; /* 0x0a1 */
} per_lowcore_words32 __attribute__((packed));
} per_lowcore_words32;
typedef struct
{
typedef struct {
union {
per_cr_words32 words;
} control_regs __attribute__((packed));
} control_regs;
/*
* Use these flags instead of setting em_instruction_fetch
* directly they are used so that single stepping can be
......@@ -37,7 +34,7 @@ typedef struct
union {
per_lowcore_words32 words;
} lowcore;
} per_struct32 __attribute__((packed));
} per_struct32;
struct user_regs_struct32
{
......
......@@ -29,6 +29,7 @@
EXPORT_SYMBOL_NOVERS(_oi_bitmap);
EXPORT_SYMBOL_NOVERS(_ni_bitmap);
EXPORT_SYMBOL_NOVERS(_zb_findmap);
EXPORT_SYMBOL_NOVERS(_sb_findmap);
EXPORT_SYMBOL_NOVERS(__copy_from_user_asm);
EXPORT_SYMBOL_NOVERS(__copy_to_user_asm);
EXPORT_SYMBOL_NOVERS(__clear_user_asm);
......@@ -92,5 +93,4 @@ EXPORT_SYMBOL(console_device);
EXPORT_SYMBOL_NOVERS(do_call_softirq);
EXPORT_SYMBOL(sys_wait4);
EXPORT_SYMBOL(cpcmd);
EXPORT_SYMBOL(smp_call_function_on);
EXPORT_SYMBOL(sys_ioctl);
......@@ -203,10 +203,11 @@ int smp_call_function_on(void (*func) (void *info), void *info,
put_cpu();
return 0;
}
EXPORT_SYMBOL(smp_call_function_on);
static inline void do_send_stop(void)
{
u32 dummy;
unsigned long dummy;
int i, rc;
/* stop all processors */
......@@ -222,7 +223,7 @@ static inline void do_send_stop(void)
static inline void do_store_status(void)
{
unsigned long low_core_addr;
u32 dummy;
unsigned long dummy;
int i, rc;
/* store status of all processors in their lowcores (real 0) */
......@@ -619,7 +620,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
if (lowcore_ptr[i] == NULL || async_stack == 0ULL)
panic("smp_boot_cpus failed to allocate memory\n");
memcpy(lowcore_ptr[i], &S390_lowcore, sizeof(struct _lowcore));
*(lowcore_ptr[i]) = S390_lowcore;
lowcore_ptr[i]->async_stack = async_stack + (ASYNC_SIZE);
}
set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]);
......
......@@ -616,8 +616,6 @@ void __init trap_init(void)
pgm_check_table[9] = &divide_exception;
pgm_check_table[0x10] = &do_segment_exception;
pgm_check_table[0x11] = &do_page_exception;
pgm_check_table[0x10] = &do_segment_exception;
pgm_check_table[0x11] = &do_page_exception;
pgm_check_table[0x12] = &translation_exception;
pgm_check_table[0x13] = &special_op_exception;
#ifndef CONFIG_ARCH_S390X
......
......@@ -87,8 +87,7 @@ cmm_alloc_pages(long pages, long *counter, struct cmm_page_array **list)
pa->index = 0;
*list = pa;
}
if (page < 0x80000000UL)
diag10(page);
diag10(page);
pa->pages[pa->index++] = page;
(*counter)++;
pages--;
......
......@@ -42,9 +42,9 @@ char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));
void diag10(unsigned long addr)
{
#ifdef __s390x__
if (addr >= 0x80000000)
if (addr >= 0x7ff00000)
return;
#ifdef __s390x__
asm volatile ("sam31\n\t"
"diag %0,%0,0x10\n\t"
"sam64" : : "a" (addr) );
......
#
# Makefile for ADX boards
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o irq.o irq_maskreq.o
#
# Makefile for the BigSur specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o irq.o led.o
#
# Makefile for the CAT-68701 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o irq.o
#
# Makefile for the CqREEK specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o irq.o
......@@ -2,10 +2,6 @@
# Makefile for the DataMyte Industrial Digital Assistant(tm) specific parts
# of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o
#
# Makefile for the Sega Dreamcast specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o irq.o rtc.o
#
# Makefile for the EC3104 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o irq.o
#
# Makefile for STMicroelectronics board specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := irq.o setup.o mach.o led.o
......
#
# Makefile for the HP620 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o
#
# Makefile for the HP680 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o setup.o
#
# Makefile for the HP690 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o
#
# Makefile for the Interface (CTP/PCI/MPC-SH02) specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o rtc.o led.o
......
#
# Makefile for the STMicroelectronics Overdrive specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o setup.o io.o irq.o led.o time.o
......
#
# Makefile for the Sega Saturn specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o irq.o
......
#
# Makefile for the 770x SolutionEngine specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o setup.o io.o irq.o led.o
#
# Makefile for the 7751 SolutionEngine specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o setup.o io.o irq.o led.o
......
#
# Makefile for the SH2000 specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o
#
# Makefile for the SnapGear specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o rtc.o
#
# Makefile for the SystemH specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o irq.o io.o
......
#
# Makefile for unknown SH boards
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := mach.o io.o setup.o
#
# Makefile for the HD64461
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o
#
# Makefile for the HD64465
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y := setup.o io.o gpio.o
......@@ -450,28 +450,6 @@ config DISPLAY7SEG
another UltraSPARC-IIi-cEngine boardset with a 7-segment display,
you should say N to this option.
config WATCHDOG_CP1XXX
tristate "CP1XXX Hardware Watchdog support"
depends on PCI
---help---
This is the driver for the hardware watchdog timers present on
Sun Microsystems CompactPCI models CP1400 and CP1500.
To compile this driver as a module, choose M here: the
module will be called cpwatchdog.
If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with hardware watchdog,
you should say N to this option.
config WATCHDOG_RIO
tristate "RIO Hardware Watchdog support"
depends on PCI
help
Say Y here to support the hardware watchdog capability on Sun RIO
machines. The watchdog timeout period is normally one minute but
can be changed with a boot-time parameter.
config CMDLINE_BOOL
bool "Default bootloader kernel arguments"
......
......@@ -38,7 +38,7 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S
LDFLAGS_vmlinux := -e stext
cflags-$(CONFIG_MK8) += $(call check_gcc,-march=k8,)
cflags-$(CONFIG_MPSC) += $(call check_gcc,-march=pentium4,)
cflags-$(CONFIG_MPSC) += $(call check_gcc,-march=prescott,)
CFLAGS += $(cflags-y)
CFLAGS += -mno-red-zone
......
......@@ -27,6 +27,7 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_HOTPLUG is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
......@@ -106,6 +107,7 @@ CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_ACPI_RELAXED_AML is not set
# CONFIG_X86_PM_TIMER is not set
#
# CPU Frequency scaling
......@@ -119,7 +121,6 @@ CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
# CONFIG_PCI_LEGACY_PROC is not set
# CONFIG_PCI_NAMES is not set
# CONFIG_HOTPLUG is not set
#
# Executable file formats / Emulations
......@@ -168,6 +169,7 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_LBD=y
# CONFIG_DCSSBLK is not set
#
# ATA/ATAPI/MFM/RLL support
......@@ -306,7 +308,7 @@ CONFIG_FUSION_MAX_SGE=40
# CONFIG_FUSION_CTL is not set
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set
......@@ -489,7 +491,7 @@ CONFIG_TIGON3=y
#
# ISDN subsystem
#
# CONFIG_ISDN_BOOL is not set
# CONFIG_ISDN is not set
#
# Telephony Support
......@@ -562,7 +564,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# Mice
......@@ -718,7 +721,6 @@ CONFIG_ISO9660_FS=y
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
......@@ -731,6 +733,7 @@ CONFIG_RAMFS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
......@@ -761,7 +764,6 @@ CONFIG_SUNRPC=y
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
......
......@@ -423,7 +423,7 @@ static struct sysdev_class timer_sysclass = {
static struct sys_device device_timer = {
.id = 0,
.cls &timer_sysclass,
.cls = &timer_sysclass,
};
static int __init init_timer_sysfs(void)
......
......@@ -73,7 +73,9 @@ static void print_mce(struct mce *m)
printk("CPU %d: Machine Check Exception: %16Lx Bank %d: %016Lx\n",
m->cpu, m->mcgstatus, m->bank, m->status);
if (m->rip) {
printk("RIP %02x:<%016Lx> ", m->cs, m->rip);
printk("RIP%s %02x:<%016Lx> ",
!(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
m->cs, m->rip);
if (m->cs == __KERNEL_CS)
print_symbol("{%s}", m->rip);
printk("\n");
......@@ -133,7 +135,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
return;
if (!(m.mcgstatus & MCG_STATUS_RIPV))
kill_it = 1;
if (regs && (m.mcgstatus & MCG_STATUS_EIPV)) {
if (regs) {
m.rip = regs->rip;
m.cs = regs->cs;
}
......
......@@ -610,8 +610,7 @@ static void __init detect_ht(void)
* At this point we only support two siblings per
* processor package.
*/
#define NR_SIBLINGS 2
if (smp_num_siblings != NR_SIBLINGS) {
if (smp_num_siblings > NR_CPUS) {
printk(KERN_WARNING "CPU: Unsupported number of the siblings %d", smp_num_siblings);
smp_num_siblings = 1;
return;
......
......@@ -26,6 +26,7 @@
#include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/bcd.h>
#include <linux/kallsyms.h>
#include <asm/pgtable.h>
#include <asm/vsyscall.h>
#include <asm/timex.h>
......@@ -353,11 +354,11 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
}
if (lost) {
if (report_lost_ticks)
if (report_lost_ticks) {
printk(KERN_WARNING "time.c: Lost %ld timer "
"tick(s)! (rip %016lx)\n",
(offset - vxtime.last) / hpet_tick - 1,
regs->rip);
"tick(s)! ", lost);
print_symbol("rip %s)\n", regs->rip);
}
jiffies += lost;
}
......@@ -399,8 +400,19 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
return IRQ_HANDLED;
}
/* RED-PEN: calculation is done in 32bits with multiply for performance
and could overflow, it may be better (but slower)to use an 64bit division. */
static unsigned int cyc2ns_scale;
#define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */
static inline void set_cyc2ns_scale(unsigned long cpu_mhz)
{
cyc2ns_scale = (1000 << CYC2NS_SCALE_FACTOR)/cpu_mhz;
}
static inline unsigned long long cycles_2_ns(unsigned long long cyc)
{
return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR;
}
unsigned long long sched_clock(void)
{
unsigned long a = 0;
......@@ -420,7 +432,7 @@ unsigned long long sched_clock(void)
purposes. */
rdtscll(a);
return (a * vxtime.tsc_quot) >> 32;
return cycles_2_ns(a);
}
unsigned long get_cmos_time(void)
......@@ -527,6 +539,8 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
vxtime.tsc_quot = (1000L << 32) / cpu_khz;
}
set_cyc2ns_scale(cpu_khz_ref / 1000);
return 0;
}
......@@ -725,6 +739,8 @@ void __init time_init(void)
rdtscll_sync(&vxtime.last_tsc);
setup_irq(0, &irq0);
set_cyc2ns_scale(cpu_khz / 1000);
#ifdef CONFIG_CPU_FREQ
cpufreq_register_notifier(&time_cpufreq_notifier_block,
CPUFREQ_TRANSITION_NOTIFIER);
......
......@@ -351,9 +351,24 @@ void oops_end(void)
void __die(const char * str, struct pt_regs * regs, long err)
{
int nl = 0;
static int die_counter;
printk(KERN_EMERG "%s: %04lx [%u]\n", str, err & 0xffff,++die_counter);
notify_die(DIE_OOPS, (char *)str, regs, err, 255, SIGSEGV);
#ifdef CONFIG_PREEMPT
printk("PREEMPT ");
nl = 1;
#endif
#ifdef CONFIG_SMP
printk("SMP ");
nl = 1;
#endif
#ifdef CONFIG_DEBUG_PAGEALLOC
printk("DEBUG_PAGEALLOC");
nl = 1;
#endif
if (nl)
printk("\n");
show_registers(regs);
/* Executive summary in case the oops scrolled away */
printk("RIP ");
......
......@@ -4,7 +4,7 @@
proc-crypto-$(CONFIG_PROC_FS) = proc.o
obj-$(CONFIG_CRYPTO) += api.o cipher.o digest.o compress.o \
obj-$(CONFIG_CRYPTO) += api.o scatterwalk.o cipher.o digest.o compress.o \
$(proc-crypto-y)
obj-$(CONFIG_CRYPTO_HMAC) += hmac.o
......
......@@ -4,7 +4,6 @@
* Cipher operations.
*
* Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
* Generic scatterwalk code by Adam J. Richter <adam@yggdrasil.com>.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
......@@ -17,30 +16,13 @@
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
#include <asm/scatterlist.h>
#include "internal.h"
#include "scatterwalk.h"
typedef void (cryptfn_t)(void *, u8 *, const u8 *);
typedef void (procfn_t)(struct crypto_tfm *, u8 *,
u8*, cryptfn_t, int enc, void *);
struct scatter_walk {
struct scatterlist *sg;
struct page *page;
void *data;
unsigned int len_this_page;
unsigned int len_this_segment;
unsigned int offset;
};
enum km_type crypto_km_types[] = {
KM_USER0,
KM_USER1,
KM_SOFTIRQ0,
KM_SOFTIRQ1,
};
u8*, cryptfn_t, int enc, void *, int);
static inline void xor_64(u8 *a, const u8 *b)
{
......@@ -57,108 +39,6 @@ static inline void xor_128(u8 *a, const u8 *b)
}
/* Define sg_next is an inline routine now in case we want to change
scatterlist to a linked list later. */
static inline struct scatterlist *sg_next(struct scatterlist *sg)
{
return sg + 1;
}
void *which_buf(struct scatter_walk *walk, unsigned int nbytes, void *scratch)
{
if (nbytes <= walk->len_this_page &&
(((unsigned long)walk->data) & (PAGE_CACHE_SIZE - 1)) + nbytes <=
PAGE_CACHE_SIZE)
return walk->data;
else
return scratch;
}
static void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out)
{
if (out)
memcpy(sgdata, buf, nbytes);
else
memcpy(buf, sgdata, nbytes);
}
static void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg)
{
unsigned int rest_of_page;
walk->sg = sg;
walk->page = sg->page;
walk->len_this_segment = sg->length;
rest_of_page = PAGE_CACHE_SIZE - (sg->offset & (PAGE_CACHE_SIZE - 1));
walk->len_this_page = min(sg->length, rest_of_page);
walk->offset = sg->offset;
}
static void scatterwalk_map(struct scatter_walk *walk, int out)
{
walk->data = crypto_kmap(walk->page, out) + walk->offset;
}
static void scatter_page_done(struct scatter_walk *walk, int out,
unsigned int more)
{
/* walk->data may be pointing the first byte of the next page;
however, we know we transfered at least one byte. So,
walk->data - 1 will be a virutual address in the mapped page. */
if (out)
flush_dcache_page(walk->page);
if (more) {
walk->len_this_segment -= walk->len_this_page;
if (walk->len_this_segment) {
walk->page++;
walk->len_this_page = min(walk->len_this_segment,
(unsigned)PAGE_CACHE_SIZE);
walk->offset = 0;
}
else
scatterwalk_start(walk, sg_next(walk->sg));
}
}
static void scatter_done(struct scatter_walk *walk, int out, int more)
{
crypto_kunmap(walk->data, out);
if (walk->len_this_page == 0 || !more)
scatter_page_done(walk, out, more);
}
/*
* Do not call this unless the total length of all of the fragments
* has been verified as multiple of the block size.
*/
static int copy_chunks(void *buf, struct scatter_walk *walk,
size_t nbytes, int out)
{
if (buf != walk->data) {
while (nbytes > walk->len_this_page) {
memcpy_dir(buf, walk->data, walk->len_this_page, out);
buf += walk->len_this_page;
nbytes -= walk->len_this_page;
crypto_kunmap(walk->data, out);
scatter_page_done(walk, out, 1);
scatterwalk_map(walk, out);
}
memcpy_dir(buf, walk->data, nbytes, out);
}
walk->offset += nbytes;
walk->len_this_page -= nbytes;
walk->len_this_segment -= nbytes;
return 0;
}
/*
* Generic encrypt/decrypt wrapper for ciphers, handles operations across
* multiple page boundaries by using temporary blocks. In user context,
......@@ -191,19 +71,21 @@ static int crypt(struct crypto_tfm *tfm,
scatterwalk_map(&walk_in, 0);
scatterwalk_map(&walk_out, 1);
src_p = which_buf(&walk_in, bsize, tmp_src);
dst_p = which_buf(&walk_out, bsize, tmp_dst);
src_p = scatterwalk_whichbuf(&walk_in, bsize, tmp_src);
dst_p = scatterwalk_whichbuf(&walk_out, bsize, tmp_dst);
nbytes -= bsize;
copy_chunks(src_p, &walk_in, bsize, 0);
scatterwalk_copychunks(src_p, &walk_in, bsize, 0);
prfn(tfm, dst_p, src_p, crfn, enc, info);
prfn(tfm, dst_p, src_p, crfn, enc, info,
scatterwalk_samebuf(&walk_in, &walk_out,
src_p, dst_p));
scatter_done(&walk_in, 0, nbytes);
scatterwalk_done(&walk_in, 0, nbytes);
copy_chunks(dst_p, &walk_out, bsize, 1);
scatter_done(&walk_out, 1, nbytes);
scatterwalk_copychunks(dst_p, &walk_out, bsize, 1);
scatterwalk_done(&walk_out, 1, nbytes);
if (!nbytes)
return 0;
......@@ -212,8 +94,8 @@ static int crypt(struct crypto_tfm *tfm,
}
}
static void cbc_process(struct crypto_tfm *tfm,
u8 *dst, u8 *src, cryptfn_t fn, int enc, void *info)
static void cbc_process(struct crypto_tfm *tfm, u8 *dst, u8 *src,
cryptfn_t fn, int enc, void *info, int in_place)
{
u8 *iv = info;
......@@ -226,10 +108,9 @@ static void cbc_process(struct crypto_tfm *tfm,
fn(crypto_tfm_ctx(tfm), dst, iv);
memcpy(iv, dst, crypto_tfm_alg_blocksize(tfm));
} else {
const int need_stack = (src == dst);
u8 stack[need_stack ? crypto_tfm_alg_blocksize(tfm) : 0];
u8 *buf = need_stack ? stack : dst;
u8 stack[in_place ? crypto_tfm_alg_blocksize(tfm) : 0];
u8 *buf = in_place ? stack : dst;
fn(crypto_tfm_ctx(tfm), buf, src);
tfm->crt_u.cipher.cit_xor_block(buf, iv);
memcpy(iv, src, crypto_tfm_alg_blocksize(tfm));
......@@ -239,7 +120,7 @@ static void cbc_process(struct crypto_tfm *tfm,
}
static void ecb_process(struct crypto_tfm *tfm, u8 *dst, u8 *src,
cryptfn_t fn, int enc, void *info)
cryptfn_t fn, int enc, void *info, int in_place)
{
fn(crypto_tfm_ctx(tfm), dst, src);
}
......
......@@ -11,6 +11,7 @@
*/
#ifndef _CRYPTO_INTERNAL_H
#define _CRYPTO_INTERNAL_H
#include <linux/crypto.h>
#include <linux/mm.h>
#include <linux/highmem.h>
#include <linux/interrupt.h>
......
/*
* Cryptographic API.
*
* Cipher operations.
*
* Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
* 2002 Adam J. Richter <adam@yggdrasil.com>
* 2004 Jean-Luc Cooke <jlcooke@certainkey.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
*/
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
#include <asm/scatterlist.h>
#include "internal.h"
#include "scatterwalk.h"
enum km_type crypto_km_types[] = {
KM_USER0,
KM_USER1,
KM_SOFTIRQ0,
KM_SOFTIRQ1,
};
void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch)
{
if (nbytes <= walk->len_this_page &&
(((unsigned long)walk->data) & (PAGE_CACHE_SIZE - 1)) + nbytes <=
PAGE_CACHE_SIZE)
return walk->data;
else
return scratch;
}
static void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out)
{
if (out)
memcpy(sgdata, buf, nbytes);
else
memcpy(buf, sgdata, nbytes);
}
void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg)
{
unsigned int rest_of_page;
walk->sg = sg;
walk->page = sg->page;
walk->len_this_segment = sg->length;
rest_of_page = PAGE_CACHE_SIZE - (sg->offset & (PAGE_CACHE_SIZE - 1));
walk->len_this_page = min(sg->length, rest_of_page);
walk->offset = sg->offset;
}
void scatterwalk_map(struct scatter_walk *walk, int out)
{
walk->data = crypto_kmap(walk->page, out) + walk->offset;
}
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
unsigned int more)
{
/* walk->data may be pointing the first byte of the next page;
however, we know we transfered at least one byte. So,
walk->data - 1 will be a virutual address in the mapped page. */
if (out)
flush_dcache_page(walk->page);
if (more) {
walk->len_this_segment -= walk->len_this_page;
if (walk->len_this_segment) {
walk->page++;
walk->len_this_page = min(walk->len_this_segment,
(unsigned)PAGE_CACHE_SIZE);
walk->offset = 0;
}
else
scatterwalk_start(walk, sg_next(walk->sg));
}
}
void scatterwalk_done(struct scatter_walk *walk, int out, int more)
{
crypto_kunmap(walk->data, out);
if (walk->len_this_page == 0 || !more)
scatterwalk_pagedone(walk, out, more);
}
/*
* Do not call this unless the total length of all of the fragments
* has been verified as multiple of the block size.
*/
int scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
size_t nbytes, int out)
{
if (buf != walk->data) {
while (nbytes > walk->len_this_page) {
memcpy_dir(buf, walk->data, walk->len_this_page, out);
buf += walk->len_this_page;
nbytes -= walk->len_this_page;
crypto_kunmap(walk->data, out);
scatterwalk_pagedone(walk, out, 1);
scatterwalk_map(walk, out);
}
memcpy_dir(buf, walk->data, nbytes, out);
}
walk->offset += nbytes;
walk->len_this_page -= nbytes;
walk->len_this_segment -= nbytes;
return 0;
}
/*
* Cryptographic API.
*
* Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
* Copyright (c) 2002 Adam J. Richter <adam@yggdrasil.com>
* Copyright (c) 2004 Jean-Luc Cooke <jlcooke@certainkey.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
*/
#ifndef _CRYPTO_SCATTERWALK_H
#define _CRYPTO_SCATTERWALK_H
#include <linux/mm.h>
#include <asm/scatterlist.h>
struct scatter_walk {
struct scatterlist *sg;
struct page *page;
void *data;
unsigned int len_this_page;
unsigned int len_this_segment;
unsigned int offset;
};
/* Define sg_next is an inline routine now in case we want to change
scatterlist to a linked list later. */
static inline struct scatterlist *sg_next(struct scatterlist *sg)
{
return sg + 1;
}
static inline int scatterwalk_samebuf(struct scatter_walk *walk_in,
struct scatter_walk *walk_out,
void *src_p, void *dst_p)
{
return walk_in->page == walk_out->page &&
walk_in->data == src_p && walk_out->data == dst_p;
}
void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch);
void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg);
int scatterwalk_copychunks(void *buf, struct scatter_walk *walk, size_t nbytes, int out);
void scatterwalk_map(struct scatter_walk *walk, int out);
void scatterwalk_done(struct scatter_walk *walk, int out, int more);
#endif /* _CRYPTO_SCATTERWALK_H */
......@@ -27,6 +27,7 @@ enum {
FW_STATUS_LOADING,
FW_STATUS_DONE,
FW_STATUS_ABORT,
FW_STATUS_READY,
};
static int loading_timeout = 10; /* In seconds */
......@@ -96,6 +97,9 @@ firmware_class_hotplug(struct class_device *class_dev, char **envp,
int i = 0;
char *scratch = buffer;
if (!test_bit(FW_STATUS_READY, &fw_priv->status))
return -ENODEV;
if (buffer_size < (FIRMWARE_NAME_MAX + 10))
return -ENOMEM;
if (num_envp < 1)
......@@ -263,6 +267,8 @@ fw_class_dev_release(struct class_device *class_dev)
kfree(fw_priv);
kfree(class_dev);
module_put(THIS_MODULE);
}
static void
......@@ -325,6 +331,7 @@ fw_register_class_device(struct class_device **class_dev_p,
kfree(class_dev);
return retval;
}
static int
fw_setup_class_device(struct firmware *fw, struct class_device **class_dev_p,
const char *fw_name, struct device *device)
......@@ -338,6 +345,9 @@ fw_setup_class_device(struct firmware *fw, struct class_device **class_dev_p,
if (retval)
goto out;
/* Need to pin this module until class device is destroyed */
__module_get(THIS_MODULE);
fw_priv = class_get_devdata(class_dev);
fw_priv->fw = fw;
......@@ -356,6 +366,7 @@ fw_setup_class_device(struct firmware *fw, struct class_device **class_dev_p,
goto error_unreg;
}
set_bit(FW_STATUS_READY, &fw_priv->status);
*class_dev_p = class_dev;
goto out;
......@@ -409,6 +420,7 @@ request_firmware(const struct firmware **firmware_p, const char *name,
add_timer(&fw_priv->timeout);
}
kobject_hotplug("add", &class_dev->kobj);
wait_for_completion(&fw_priv->completion);
set_bit(FW_STATUS_DONE, &fw_priv->status);
......
......@@ -70,7 +70,6 @@ enum {
MAX_DISK_NAME = sizeof(((struct gendisk *)0)->disk_name)
};
static int viodasd_max_disk;
static spinlock_t viodasd_spinlock = SPIN_LOCK_UNLOCKED;
#define VIOMAXREQ 16
......@@ -209,7 +208,6 @@ static int viodasd_open(struct inode *ino, struct file *fil)
(int)we.rc, we.sub_result, err->msg);
return -EIO;
}
viodasd_max_disk = we.max_disk;
return 0;
}
......@@ -483,7 +481,17 @@ static void probe_disk(struct viodasd_device *d)
if (we.rc != 0)
return;
viodasd_max_disk = we.max_disk;
if (we.max_disk > (MAX_DISKNO - 1)) {
static int warned;
if (warned == 0) {
warned++;
printk(VIOD_KERN_INFO
"Only examining the first %d "
"of %d disks connected\n",
MAX_DISKNO, we.max_disk + 1);
}
}
/* Send the close event to OS/400. We DON'T expect a response */
hvrc = HvCallEvent_signalLpEventFast(viopath_hostLp,
......@@ -744,21 +752,8 @@ static int __init viodasd_init(void)
/* Initialize our request handler */
vio_setHandler(viomajorsubtype_blockio, handle_block_event);
viodasd_max_disk = MAX_DISKNO - 1;
for (i = 0; (i <= viodasd_max_disk) && (i < MAX_DISKNO); i++) {
/*
* Note that probe_disk has side effects:
* a) it updates the size of the disk
* b) it updates viodasd_max_disk
* c) it registers the disk if it has not done so already
*/
for (i = 0; i < MAX_DISKNO; i++)
probe_disk(&viodasd_devices[i]);
}
if (viodasd_max_disk > (MAX_DISKNO - 1))
printk(VIOD_KERN_INFO
"Only examining the first %d of %d disks connected\n",
MAX_DISKNO, viodasd_max_disk + 1);
return 0;
}
......
......@@ -5411,6 +5411,7 @@ cy_init(void)
cy_serial_driver->owner = THIS_MODULE;
cy_serial_driver->driver_name = "cyclades";
cy_serial_driver->name = "ttyC";
cy_serial_driver->devfs_name = "tts/C";
cy_serial_driver->major = CYCLADES_MAJOR;
cy_serial_driver->minor_start = 0;
cy_serial_driver->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -1644,6 +1644,7 @@ int __init pc_init(void)
pc_driver->owner = THIS_MODULE;
pc_driver->name = "ttyD";
pc_driver->devfs_name = "tts/D";
pc_driver->major = DIGI_MAJOR;
pc_driver->minor_start = 0;
pc_driver->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -2491,6 +2491,7 @@ int __init espserial_init(void)
esp_driver->owner = THIS_MODULE;
esp_driver->name = "ttyP";
esp_driver->devfs_name = "tts/P";
esp_driver->major = ESP_IN_MAJOR;
esp_driver->minor_start = 0;
esp_driver->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -1627,6 +1627,7 @@ static int register_drivers(void)
isicom_normal->owner = THIS_MODULE;
isicom_normal->name = "ttyM";
isicom_normal->devfs_name = "isicom/";
isicom_normal->major = ISICOM_NMAJOR;
isicom_normal->minor_start = 0;
isicom_normal->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -309,6 +309,7 @@ static int __init moxa_init(void)
init_MUTEX(&moxaBuffSem);
moxaDriver->owner = THIS_MODULE;
moxaDriver->name = "ttya";
moxaDriver->devfs_name = "tts/a";
moxaDriver->major = ttymajor;
moxaDriver->minor_start = 0;
moxaDriver->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -1150,6 +1150,7 @@ static int __init pcxe_init(void)
pcxe_driver->owner = THIS_MODULE;
pcxe_driver->name = "ttyD";
pcxe_driver->devfs_name = "pcxe/";
pcxe_driver->major = DIGI_MAJOR;
pcxe_driver->minor_start = 0;
pcxe_driver->type = TTY_DRIVER_TYPE_SERIAL;
......
......@@ -1687,6 +1687,7 @@ static inline int rc_init_drivers(void)
memset(IRQ_to_board, 0, sizeof(IRQ_to_board));
riscom_driver->owner = THIS_MODULE;
riscom_driver->name = "ttyL";
riscom_driver->devfs_name = "tts/L";
riscom_driver->major = RISCOM8_NORMAL_MAJOR;
riscom_driver->type = TTY_DRIVER_TYPE_SERIAL;
riscom_driver->subtype = SERIAL_TYPE_NORMAL;
......
......@@ -2743,12 +2743,12 @@ static void vesa_powerdown(void)
* Called only if powerdown features are allowed.
*/
switch (vesa_blank_mode) {
case VESA_NO_BLANKING:
c->vc_sw->con_blank(c, VESA_VSYNC_SUSPEND+1);
case VESA_NO_BLANKING:
c->vc_sw->con_blank(c, VESA_VSYNC_SUSPEND+1, 0);
break;
case VESA_VSYNC_SUSPEND:
case VESA_HSYNC_SUSPEND:
c->vc_sw->con_blank(c, VESA_POWERDOWN+1);
case VESA_VSYNC_SUSPEND:
case VESA_HSYNC_SUSPEND:
c->vc_sw->con_blank(c, VESA_POWERDOWN+1, 0);
break;
}
}
......@@ -2776,7 +2776,7 @@ void do_blank_screen(int entering_gfx)
if (entering_gfx) {
hide_cursor(currcons);
save_screen(currcons);
sw->con_blank(vc_cons[currcons].d, -1);
sw->con_blank(vc_cons[currcons].d, -1, 1);
console_blanked = fg_console + 1;
set_origin(currcons);
return;
......@@ -2794,7 +2794,7 @@ void do_blank_screen(int entering_gfx)
save_screen(currcons);
/* In case we need to reset origin, blanking hook returns 1 */
i = sw->con_blank(vc_cons[currcons].d, 1);
i = sw->con_blank(vc_cons[currcons].d, 1, 0);
console_blanked = fg_console + 1;
if (i)
set_origin(currcons);
......@@ -2808,14 +2808,14 @@ void do_blank_screen(int entering_gfx)
}
if (vesa_blank_mode)
sw->con_blank(vc_cons[currcons].d, vesa_blank_mode + 1);
sw->con_blank(vc_cons[currcons].d, vesa_blank_mode + 1, 0);
}
/*
* Called by timer as well as from vt_console_driver
*/
void unblank_screen(void)
void do_unblank_screen(int leaving_gfx)
{
int currcons;
......@@ -2839,7 +2839,7 @@ void unblank_screen(void)
}
console_blanked = 0;
if (sw->con_blank(vc_cons[currcons].d, 0))
if (sw->con_blank(vc_cons[currcons].d, 0, leaving_gfx))
/* Low-level driver cannot restore -> do it ourselves */
update_screen(fg_console);
if (console_blank_hook)
......@@ -2848,6 +2848,17 @@ void unblank_screen(void)
set_cursor(fg_console);
}
/*
* This is called by the outside world to cause a forced unblank, mostly for
* oopses. Currently, I just call do_unblank_screen(0), but we could eventually
* call it with 1 as an argument and so force a mode restore... that may kill
* X or at least garbage the screen but would also make the Oops visible...
*/
void unblank_screen(void)
{
do_unblank_screen(0);
}
/*
* We defer the timer blanking to work queue so it can take the console semaphore
* (console operations can still happen at irq time, but only from printk which
......
......@@ -497,7 +497,7 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
*/
acquire_console_sem();
if (arg == KD_TEXT)
unblank_screen();
do_unblank_screen(1);
else
do_blank_screen(1);
release_console_sem();
......@@ -1103,7 +1103,7 @@ void complete_change_console(unsigned int new_console)
if (old_vc_mode != vt_cons[new_console]->vc_mode)
{
if (vt_cons[new_console]->vc_mode == KD_TEXT)
unblank_screen();
do_unblank_screen(1);
else
do_blank_screen(1);
}
......@@ -1138,7 +1138,7 @@ void complete_change_console(unsigned int new_console)
if (old_vc_mode != vt_cons[new_console]->vc_mode)
{
if (vt_cons[new_console]->vc_mode == KD_TEXT)
unblank_screen();
do_unblank_screen(1);
else
do_blank_screen(1);
}
......
......@@ -339,6 +339,30 @@ config SH_WDT
To compile this driver as a module, choose M here: the
module will be called shwdt.
# SPARC64 Architecture
config WATCHDOG_CP1XXX
tristate "CP1XXX Hardware Watchdog support"
depends on WATCHDOG && SPARC64 && PCI
---help---
This is the driver for the hardware watchdog timers present on
Sun Microsystems CompactPCI models CP1400 and CP1500.
To compile this driver as a module, choose M here: the
module will be called cpwatchdog.
If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with hardware watchdog,
you should say N to this option.
config WATCHDOG_RIO
tristate "RIO Hardware Watchdog support"
depends on WATCHDOG && SPARC64 && PCI
help
Say Y here to support the hardware watchdog capability on Sun RIO
machines. The watchdog timeout period is normally one minute but
can be changed with a boot-time parameter.
#
# ISA-based Watchdog Cards
#
......@@ -455,4 +479,26 @@ config WDT_501_PCI
Fahrenheit. This works only if you have a WDT501P watchdog board
installed.
#
# USB-based Watchdog Cards
#
comment "USB-based Watchdog Cards"
depends on WATCHDOG && USB
config USBPCWATCHDOG
tristate "Berkshire Products USB-PC Watchdog"
depends on WATCHDOG && USB
---help---
This is the driver for the Berkshire Products USB-PC Watchdog card.
This card simply watches your kernel to make sure it doesn't freeze,
and if it does, it reboots your computer after a certain amount of
time. The card can also monitor the internal temperature of the PC.
More info is available at <http://www.berkprod.com/usb_pc_watchdog.htm>.
To compile this driver as a module, choose M here: the
module will be called pcwd_usb.
Most people will say N.
endmenu
#
# Makefile for the kernel character device drivers.
# Makefile for the WatchDog device drivers.
#
# Only one watchdog can succeed. We probe the hardware watchdog
......@@ -35,3 +35,4 @@ obj-$(CONFIG_CPU5_WDT) += cpu5wdt.o
obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o
obj-$(CONFIG_INDYDOG) += indydog.o
obj-$(CONFIG_PCIPCWATCHDOG) += pcwd_pci.o
obj-$(CONFIG_USBPCWATCHDOG) += pcwd_usb.o
......@@ -293,6 +293,7 @@ MODULE_AUTHOR("Heiko Ronsdorf <hero@ihg.uni-duisburg.de>");
MODULE_DESCRIPTION("sma cpu5 watchdog driver");
MODULE_SUPPORTED_DEVICE("sma cpu5 watchdog");
MODULE_LICENSE("GPL");
MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
MODULE_PARM(port, "i");
MODULE_PARM_DESC(port, "base address of watchdog card, default is 0x91");
......
......@@ -503,3 +503,4 @@ module_exit(eurwdt_exit);
MODULE_AUTHOR("Rodolfo Giometti");
MODULE_DESCRIPTION("Driver for Eurotech CPU-1220/1410 on board watchdog");
MODULE_LICENSE("GPL");
MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
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.
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