Commit 94d24994 authored by Patrick Mochel's avatar Patrick Mochel

Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin

into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
parents c4450655 467578b9
...@@ -8,10 +8,12 @@ if you want to format from within Linux. ...@@ -8,10 +8,12 @@ if you want to format from within Linux.
VFAT MOUNT OPTIONS VFAT MOUNT OPTIONS
---------------------------------------------------------------------- ----------------------------------------------------------------------
umask=### -- The permission mask (see umask(1)) for the regulare file. umask=### -- The permission mask (for files and directories, see umask(1)).
The default is the umask of current process. The default is the umask of current process.
dmask=### -- The permission mask for the directory. dmask=### -- The permission mask for the directory.
The default is the umask of current process. The default is the umask of current process.
fmask=### -- The permission mask for files.
The default is the umask of current process.
codepage=### -- Sets the codepage for converting to shortname characters codepage=### -- Sets the codepage for converting to shortname characters
on FAT and VFAT filesystems. By default, codepage 437 on FAT and VFAT filesystems. By default, codepage 437
is used. This is the default for the U.S. and some is used. This is the default for the U.S. and some
......
...@@ -11,7 +11,7 @@ endif ...@@ -11,7 +11,7 @@ endif
AFLAGS_entry.o := -traditional AFLAGS_entry.o := -traditional
AFLAGS_pacache.o := -traditional AFLAGS_pacache.o := -traditional
export-objs := parisc_ksyms.o keyboard.o export-objs := parisc_ksyms.o
obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \ obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \
pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \ pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \
...@@ -22,7 +22,6 @@ obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \ ...@@ -22,7 +22,6 @@ obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \
obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_PA11) += pci-dma.o obj-$(CONFIG_PA11) += pci-dma.o
obj-$(CONFIG_PCI) += pci.o obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_VT) += keyboard.o
obj-$(CONFIG_PARISC64) += binfmt_elf32.o sys_parisc32.o \ obj-$(CONFIG_PARISC64) += binfmt_elf32.o sys_parisc32.o \
ioctl32.o signal32.o ioctl32.o signal32.o
# only supported for PCX-W/U in 64-bit mode at the moment # only supported for PCX-W/U in 64-bit mode at the moment
......
/*
* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
* ---------------------------------------------------------------
* This source file will be removed as soon as we have converted
* hp_psaux.c and hp_keyb.c to the input layer !
*
*/
/*
* linux/arch/parisc/kernel/keyboard.c
*
* Alex deVries <adevries@thepuffingroup.com>
* Copyright (1999) The Puffin Group
* Mostly rewritten by Philipp Rumpf <prumpf@tux.org>
* Copyright 2000 Philipp Rumpf
*/
#include <linux/errno.h>
#include <linux/keyboard.h>
#include <asm/keyboard.h>
#include <linux/module.h>
static int def_setkeycode(unsigned int x, unsigned int y)
{
return 0;
}
static int def_getkeycode(unsigned int x)
{
return 0;
}
static int def_translate(unsigned char scancode, unsigned char *keycode,
char raw)
{
*keycode = scancode;
return 1;
}
static char def_unexpected_up(unsigned char c)
{
return 128;
}
static void def_leds(unsigned char leds)
{
}
static void def_init_hw(void)
{
}
static char def_sysrq_xlate[NR_KEYS];
#define DEFAULT_KEYB_OPS \
.setkeycode = def_setkeycode, \
.getkeycode = def_getkeycode, \
.translate = def_translate, \
.unexpected_up = def_unexpected_up, \
.leds = def_leds, \
.init_hw = def_init_hw, \
.sysrq_key = 0xff, \
.sysrq_xlate = def_sysrq_xlate,
static struct kbd_ops def_kbd_ops = {
DEFAULT_KEYB_OPS
};
struct kbd_ops *kbd_ops = &def_kbd_ops;
void unregister_kbd_ops(void)
{
struct kbd_ops new_kbd_ops = { DEFAULT_KEYB_OPS };
register_kbd_ops(&new_kbd_ops);
}
EXPORT_SYMBOL(unregister_kbd_ops);
void register_kbd_ops(struct kbd_ops *ops)
{
if(ops->setkeycode)
kbd_ops->setkeycode = ops->setkeycode;
if(ops->getkeycode)
kbd_ops->getkeycode = ops->getkeycode;
if(ops->translate)
kbd_ops->translate = ops->translate;
if(ops->unexpected_up)
kbd_ops->unexpected_up = ops->unexpected_up;
if(ops->leds)
kbd_ops->leds = ops->leds;
if(ops->init_hw)
kbd_ops->init_hw = ops->init_hw;
kbd_ops->sysrq_key = ops->sysrq_key;
kbd_ops->sysrq_xlate = ops->sysrq_xlate;
}
...@@ -90,11 +90,13 @@ extern void dump_thread(struct pt_regs *, struct user *); ...@@ -90,11 +90,13 @@ extern void dump_thread(struct pt_regs *, struct user *);
#define EXPORT_SYMBOL_DOT(sym) \ #define EXPORT_SYMBOL_DOT(sym) \
extern int __sparc_dot_ ## sym (int) __asm__("." #sym); \ extern int __sparc_dot_ ## sym (int) __asm__("." #sym); \
__EXPORT_SYMBOL(__sparc_dot_ ## sym, "." #sym) const struct kernel_symbol __ksymtab___sparc_dot_##sym \
__attribute__((section("__ksymtab"))) \
= { (unsigned long)&__sparc_dot_##sym , "." #sym }
#define EXPORT_SYMBOL_PRIVATE(sym) \ #define EXPORT_SYMBOL_PRIVATE(sym) \
extern int __sparc_priv_ ## sym (int) __asm__("__" #sym); \ extern int __sparc_priv_ ## sym (int) __asm__("__" #sym); \
const struct module_symbol __export_priv_##sym \ const struct kernel_symbol __export_priv_##sym \
__attribute__((section("__ksymtab"))) = \ __attribute__((section("__ksymtab"))) = \
{ (unsigned long) &__sparc_priv_ ## sym, "__" #sym } { (unsigned long) &__sparc_priv_ ## sym, "__" #sym }
......
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/smp_lock.h> #include <linux/smp_lock.h>
#include <net/sock.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#ifndef KERNEL_DS #ifndef KERNEL_DS
#include <linux/segment.h> #include <linux/segment.h>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/timex.h> #include <linux/timex.h>
#include <linux/interrupt.h>
#include <asm/oplib.h> #include <asm/oplib.h>
#include <asm/segment.h> #include <asm/segment.h>
......
...@@ -192,9 +192,9 @@ static void iommu_get_scsi_sgl_pflush(struct scatterlist *sg, int sz, struct sbu ...@@ -192,9 +192,9 @@ static void iommu_get_scsi_sgl_pflush(struct scatterlist *sg, int sz, struct sbu
{ {
unsigned long page, oldpage = 0; unsigned long page, oldpage = 0;
while(sz >= 0) { while(sz != 0) {
--sz; --sz;
page = ((unsigned long) sg[sz].offset) & PAGE_MASK; page = (unsigned long) page_address(sg[sz].page);
if (oldpage == page) if (oldpage == page)
page += PAGE_SIZE; /* We flushed that page already */ page += PAGE_SIZE; /* We flushed that page already */
while(page < (unsigned long)(page_address(sg[sz].page) + sg[sz].offset + sg[sz].length)) { while(page < (unsigned long)(page_address(sg[sz].page) + sg[sz].offset + sg[sz].length)) {
......
...@@ -19,6 +19,7 @@ CC := $(shell if gcc -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then e ...@@ -19,6 +19,7 @@ CC := $(shell if gcc -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then e
NEW_GCC := $(shell if $(CC) -m64 -mcmodel=medlow -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; ) NEW_GCC := $(shell if $(CC) -m64 -mcmodel=medlow -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; )
NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi) NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi)
UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; ) UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; )
INLINE_LIMIT := $(shell if $(CC) -m64 -finline-limit=100000 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; )
export NEW_GCC export NEW_GCC
...@@ -51,6 +52,10 @@ else ...@@ -51,6 +52,10 @@ else
AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL)
endif endif
ifeq ($(INLINE_LIMIT),y)
CFLAGS := $(CFLAGS) -finline-limit=100000
endif
ifeq ($(CONFIG_MCOUNT),y) ifeq ($(CONFIG_MCOUNT),y)
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
CFLAGS := $(CFLAGS) -pg CFLAGS := $(CFLAGS) -pg
......
...@@ -145,28 +145,28 @@ void __init smp_callin(void) ...@@ -145,28 +145,28 @@ void __init smp_callin(void)
* purposes. Also workaround BB_ERRATA_1 by doing a dummy * purposes. Also workaround BB_ERRATA_1 by doing a dummy
* read back of %tick after writing it. * read back of %tick after writing it.
*/ */
__asm__ __volatile__(" __asm__ __volatile__(
sethi %%hi(0x80000000), %%g1 "sethi %%hi(0x80000000), %%g1\n\t"
ba,pt %%xcc, 1f "ba,pt %%xcc, 1f\n\t"
sllx %%g1, 32, %%g1 " sllx %%g1, 32, %%g1\n\t"
.align 64 ".align 64\n"
1: rd %%tick, %%g2 "1: rd %%tick, %%g2\n\t"
add %%g2, 6, %%g2 "add %%g2, 6, %%g2\n\t"
andn %%g2, %%g1, %%g2 "andn %%g2, %%g1, %%g2\n\t"
wrpr %%g2, 0, %%tick "wrpr %%g2, 0, %%tick\n\t"
rdpr %%tick, %%g0" "rdpr %%tick, %%g0"
: /* no outputs */ : /* no outputs */
: /* no inputs */ : /* no inputs */
: "g1", "g2"); : "g1", "g2");
if (SPARC64_USE_STICK) { if (SPARC64_USE_STICK) {
/* Let the user get at STICK too. */ /* Let the user get at STICK too. */
__asm__ __volatile__(" __asm__ __volatile__(
sethi %%hi(0x80000000), %%g1 "sethi %%hi(0x80000000), %%g1\n\t"
sllx %%g1, 32, %%g1 "sllx %%g1, 32, %%g1\n\t"
rd %%asr24, %%g2 "rd %%asr24, %%g2\n\t"
andn %%g2, %%g1, %%g2 "andn %%g2, %%g1, %%g2\n\t"
wr %%g2, 0, %%asr24" "wr %%g2, 0, %%asr24"
: /* no outputs */ : /* no outputs */
: /* no inputs */ : /* no inputs */
: "g1", "g2"); : "g1", "g2");
...@@ -283,18 +283,18 @@ static void spitfire_xcall_helper(u64 data0, u64 data1, u64 data2, u64 pstate, u ...@@ -283,18 +283,18 @@ static void spitfire_xcall_helper(u64 data0, u64 data1, u64 data2, u64 pstate, u
* ADDR 0x20) for the dummy read. -DaveM * ADDR 0x20) for the dummy read. -DaveM
*/ */
tmp = 0x40; tmp = 0x40;
__asm__ __volatile__(" __asm__ __volatile__(
wrpr %1, %2, %%pstate "wrpr %1, %2, %%pstate\n\t"
stxa %4, [%0] %3 "stxa %4, [%0] %3\n\t"
stxa %5, [%0+%8] %3 "stxa %5, [%0+%8] %3\n\t"
add %0, %8, %0 "add %0, %8, %0\n\t"
stxa %6, [%0+%8] %3 "stxa %6, [%0+%8] %3\n\t"
membar #Sync "membar #Sync\n\t"
stxa %%g0, [%7] %3 "stxa %%g0, [%7] %3\n\t"
membar #Sync "membar #Sync\n\t"
mov 0x20, %%g1 "mov 0x20, %%g1\n\t"
ldxa [%%g1] 0x7f, %%g0 "ldxa [%%g1] 0x7f, %%g0\n\t"
membar #Sync" "membar #Sync"
: "=r" (tmp) : "=r" (tmp)
: "r" (pstate), "i" (PSTATE_IE), "i" (ASI_INTR_W), : "r" (pstate), "i" (PSTATE_IE), "i" (ASI_INTR_W),
"r" (data0), "r" (data1), "r" (data2), "r" (target), "r" (data0), "r" (data1), "r" (data2), "r" (target),
...@@ -1054,21 +1054,21 @@ static void __init smp_setup_percpu_timer(void) ...@@ -1054,21 +1054,21 @@ static void __init smp_setup_percpu_timer(void)
* read back from %tick_cmpr right after writing to it. -DaveM * read back from %tick_cmpr right after writing to it. -DaveM
*/ */
if (!SPARC64_USE_STICK) { if (!SPARC64_USE_STICK) {
__asm__ __volatile__(" __asm__ __volatile__(
rd %%tick, %%g1 "rd %%tick, %%g1\n\t"
ba,pt %%xcc, 1f "ba,pt %%xcc, 1f\n\t"
add %%g1, %0, %%g1 " add %%g1, %0, %%g1\n\t"
.align 64 ".align 64\n"
1: wr %%g1, 0x0, %%tick_cmpr "1: wr %%g1, 0x0, %%tick_cmpr\n\t"
rd %%tick_cmpr, %%g0" "rd %%tick_cmpr, %%g0"
: /* no outputs */ : /* no outputs */
: "r" (current_tick_offset) : "r" (current_tick_offset)
: "g1"); : "g1");
} else { } else {
__asm__ __volatile__(" __asm__ __volatile__(
rd %%asr24, %%g1 "rd %%asr24, %%g1\n\t"
add %%g1, %0, %%g1 "add %%g1, %0, %%g1\n\t"
wr %%g1, 0x0, %%asr25" "wr %%g1, 0x0, %%asr25"
: /* no outputs */ : /* no outputs */
: "r" (current_tick_offset) : "r" (current_tick_offset)
: "g1"); : "g1");
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#include <linux/sysctl.h> #include <linux/sysctl.h>
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <linux/dnotify.h> #include <linux/dnotify.h>
#include <linux/security.h>
#include <asm/types.h> #include <asm/types.h>
#include <asm/ipc.h> #include <asm/ipc.h>
...@@ -1096,7 +1097,7 @@ static long do_readv_writev32(int type, struct file *file, ...@@ -1096,7 +1097,7 @@ static long do_readv_writev32(int type, struct file *file,
/* VERIFY_WRITE actually means a read, as we write to user space */ /* VERIFY_WRITE actually means a read, as we write to user space */
if ((retval + (type == VERIFY_WRITE)) > 0) if ((retval + (type == VERIFY_WRITE)) > 0)
dnotify_parent(file->f_dentry, dnotify_parent(file->f_dentry,
(type == VERIFY_WRITE) ? DN_MODIFY : DN_ACCESS); (type == VERIFY_WRITE) ? DN_ACCESS : DN_MODIFY);
return retval; return retval;
} }
......
...@@ -369,6 +369,7 @@ static inline int solaris_sockmod(unsigned int fd, unsigned int cmd, u32 arg) ...@@ -369,6 +369,7 @@ static inline int solaris_sockmod(unsigned int fd, unsigned int cmd, u32 arg)
case 106: /* SI_GETINTRANSIT */ case 106: /* SI_GETINTRANSIT */
case 107: /* SI_TCL_LINK */ case 107: /* SI_TCL_LINK */
case 108: /* SI_TCL_UNLINK */ case 108: /* SI_TCL_UNLINK */
;
} }
return TNOTSUPPORT; return TNOTSUPPORT;
} }
...@@ -456,6 +457,7 @@ static inline int solaris_timod(unsigned int fd, unsigned int cmd, u32 arg, ...@@ -456,6 +457,7 @@ static inline int solaris_timod(unsigned int fd, unsigned int cmd, u32 arg,
case 145: /* TI_GETPEERNAME */ case 145: /* TI_GETPEERNAME */
case 146: /* TI_SETMYNAME */ case 146: /* TI_SETMYNAME */
case 147: /* TI_SETPEERNAME */ case 147: /* TI_SETPEERNAME */
;
} }
return TNOTSUPPORT; return TNOTSUPPORT;
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -6,83 +6,6 @@ ...@@ -6,83 +6,6 @@
#include <linux/mc146818rtc.h> #include <linux/mc146818rtc.h>
#include <asm/io.h> #include <asm/io.h>
/*
* We query CMOS about hard disks : it could be that we have a SCSI/ESDI/etc
* controller that is BIOS compatible with ST-506, and thus showing up in our
* BIOS table, but not register compatible, and therefore not present in CMOS.
*
* Furthermore, we will assume that our ST-506 drives <if any> are the primary
* drives in the system -- the ones reflected as drive 1 or 2. The first
* drive is stored in the high nibble of CMOS byte 0x12, the second in the low
* nibble. This will be either a 4 bit drive type or 0xf indicating use byte
* 0x19 for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS. A non-zero value
* means we have an AT controller hard disk for that drive.
*
* Of course, there is no guarantee that either drive is actually on the
* "primary" IDE interface, but we don't bother trying to sort that out here.
* If a drive is not actually on the primary interface, then these parameters
* will be ignored. This results in the user having to supply the logical
* drive geometry as a boot parameter for each drive not on the primary i/f.
*
* The only "perfect" way to handle this would be to modify the setup.[cS] code
* to do BIOS calls Int13h/Fn08h and Int13h/Fn48h to get all of the drive info
* for us during initialization. I have the necessary docs -- any takers? -ml
*
* I did this, but it doesn't work - there is no reasonable way to find the
* correspondence between the BIOS numbering of the disks and the Linux
* numbering. -aeb
*
* The code below is bad. One of the problems is that drives 1 and 2
* may be SCSI disks (even when IDE disks are present), so that
* the geometry we read here from BIOS is attributed to the wrong disks.
* Consequently, also the former "drive->present = 1" below was a mistake.
*
* Eventually the entire routine below should be removed.
*
* 17-OCT-2000 rjohnson@analogic.com Added spin-locks for reading CMOS
* chip.
*/
void probe_cmos_for_drives (ide_hwif_t *hwif)
{
#ifdef __i386__
extern struct drive_info_struct drive_info;
u8 cmos_disks, *BIOS = (u8 *) &drive_info;
int unit;
unsigned long flags;
if (hwif->chipset == ide_pdc4030 && hwif->channel != 0)
return;
spin_lock_irqsave(&rtc_lock, flags);
cmos_disks = CMOS_READ(0x12);
spin_unlock_irqrestore(&rtc_lock, flags);
/* Extract drive geometry from CMOS+BIOS if not already setup */
for (unit = 0; unit < MAX_DRIVES; ++unit) {
ide_drive_t *drive = &hwif->drives[unit];
if ((cmos_disks & (0xf0 >> (unit*4)))
&& !drive->present && !drive->nobios) {
u16 cyl = *(u16 *)BIOS;
unsigned char head = *(BIOS+2);
unsigned char sect = *(BIOS+14);
if (cyl > 0 && head > 0 && sect > 0 && sect < 64) {
drive->cyl = drive->bios_cyl = cyl;
drive->head = drive->bios_head = head;
drive->sect = drive->bios_sect = sect;
drive->ctl = *(BIOS+8);
} else {
printk("hd%c: C/H/S=%d/%d/%d from BIOS ignored\n",
unit+'a', cyl, head, sect);
}
}
BIOS += 16;
}
#endif
}
extern unsigned long current_capacity (ide_drive_t *); extern unsigned long current_capacity (ide_drive_t *);
/* /*
......
...@@ -639,12 +639,6 @@ void probe_hwif (ide_hwif_t *hwif) ...@@ -639,12 +639,6 @@ void probe_hwif (ide_hwif_t *hwif)
if (hwif->noprobe) if (hwif->noprobe)
return; return;
#ifdef CONFIG_BLK_DEV_IDE
if (hwif->io_ports[IDE_DATA_OFFSET] == HD_DATA) {
extern void probe_cmos_for_drives(ide_hwif_t *);
probe_cmos_for_drives(hwif);
}
#endif
if ((hwif->chipset != ide_4drives || !hwif->mate || !hwif->mate->present) && if ((hwif->chipset != ide_4drives || !hwif->mate || !hwif->mate->present) &&
#if CONFIG_BLK_DEV_PDC4030 #if CONFIG_BLK_DEV_PDC4030
......
...@@ -56,3 +56,12 @@ config INPUT_UINPUT ...@@ -56,3 +56,12 @@ config INPUT_UINPUT
The module will be called uinput.o. If you want to compile it as a The module will be called uinput.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. module, say M here and read <file:Documentation/modules.txt>.
config INPUT_GSC
tristate "PA-RISC GSC PS/2 keyboard/mouse support"
depends on GSC && INPUT && INPUT_MISC
help
Say Y here if you have a PS/2 keyboard and/or mouse attached
to your PA-RISC box. HP run the keyboard in AT mode rather than
XT mode like everyone else, so we need our own driver.
Furthermore, the GSC PS/2 controller shares IRQ between mouse and
keyboard.
...@@ -8,7 +8,4 @@ obj-$(CONFIG_INPUT_SPARCSPKR) += sparcspkr.o ...@@ -8,7 +8,4 @@ obj-$(CONFIG_INPUT_SPARCSPKR) += sparcspkr.o
obj-$(CONFIG_INPUT_PCSPKR) += pcspkr.o obj-$(CONFIG_INPUT_PCSPKR) += pcspkr.o
obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o
obj-$(CONFIG_INPUT_UINPUT) += uinput.o obj-$(CONFIG_INPUT_UINPUT) += uinput.o
obj-$(CONFIG_INPUT_GSC) += gsc_ps2.o
# The global Rules.make.
include $(TOPDIR)/Rules.make
This diff is collapsed.
...@@ -982,7 +982,7 @@ static struct i2c_driver driver = { ...@@ -982,7 +982,7 @@ static struct i2c_driver driver = {
.detach_client = tuner_detach, .detach_client = tuner_detach,
.command = tuner_command, .command = tuner_command,
}; };
static structi2c_clientclient_template = static struct i2c_client client_template =
{ {
.name = "(tunerunset)", .name = "(tunerunset)",
.flags = I2C_CLIENT_ALLOW_USE, .flags = I2C_CLIENT_ALLOW_USE,
......
...@@ -1586,8 +1586,9 @@ static void __init sunzilog_init_hw(void) ...@@ -1586,8 +1586,9 @@ static void __init sunzilog_init_hw(void)
} else { } else {
/* Normal serial TTY. */ /* Normal serial TTY. */
up->parity_mask = 0xff; up->parity_mask = 0xff;
up->curregs[R3] = RxENAB; up->curregs[R4] = PAR_EVEN | X16CLK | SB1;
up->curregs[R5] = TxENAB; up->curregs[R3] = RxENAB | Rx8;
up->curregs[R5] = TxENAB | Tx8;
up->curregs[R9] = NV | MIE; up->curregs[R9] = NV | MIE;
up->curregs[R10] = NRZ; up->curregs[R10] = NRZ;
up->curregs[R11] = TCBR | RCBR; up->curregs[R11] = TCBR | RCBR;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/ */
#include <linux/errno.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <xfs_types.h> #include <xfs_types.h>
......
...@@ -56,7 +56,7 @@ typedef struct { ...@@ -56,7 +56,7 @@ typedef struct {
} elf_fpregset_t; } elf_fpregset_t;
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \ #define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread_info->kregs); 1; }) ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })
/* /*
* This is used to ensure we don't load something for the wrong architecture. * This is used to ensure we don't load something for the wrong architecture.
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/threads.h> #include <linux/threads.h>
#include <linux/brlock.h> #include <linux/brlock.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/cache.h>
/* entry.S is sensitive to the offsets of these fields */ /* XXX P3 Is it? */ /* entry.S is sensitive to the offsets of these fields */ /* XXX P3 Is it? */
typedef struct { typedef struct {
......
...@@ -187,9 +187,6 @@ extern unsigned long sbus_ioremap(struct resource *res, unsigned long offset, ...@@ -187,9 +187,6 @@ extern unsigned long sbus_ioremap(struct resource *res, unsigned long offset,
extern void sbus_iounmap(unsigned long vaddr, unsigned long size); extern void sbus_iounmap(unsigned long vaddr, unsigned long size);
#define virt_to_phys(x) __pa((unsigned long)(x))
#define phys_to_virt(x) __va((unsigned long)(x))
/* /*
* At the moment, we do not use CMOS_READ anywhere outside of rtc.c, * At the moment, we do not use CMOS_READ anywhere outside of rtc.c,
* so rtc_port is static in it. This should not change unless a new * so rtc_port is static in it. This should not change unless a new
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
BTFIXUPDEF_CALL(char *, __irq_itoa, unsigned int) BTFIXUPDEF_CALL(char *, __irq_itoa, unsigned int)
#define __irq_itoa(irq) BTFIXUP_CALL(__irq_itoa)(irq) #define __irq_itoa(irq) BTFIXUP_CALL(__irq_itoa)(irq)
#define NR_IRQS 15 #define NR_IRQS 16
#define irq_cannonicalize(irq) (irq) #define irq_cannonicalize(irq) (irq)
......
...@@ -174,6 +174,9 @@ extern __inline__ int get_order(unsigned long size) ...@@ -174,6 +174,9 @@ extern __inline__ int get_order(unsigned long size)
#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET) #define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET)) #define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#define virt_to_phys(x) __pa((unsigned long)(x))
#define phys_to_virt(x) __va((unsigned long)(x))
#define pfn_to_page(pfn) (mem_map + (pfn)) #define pfn_to_page(pfn) (mem_map + (pfn))
#define page_to_pfn(page) ((unsigned long)((page) - mem_map)) #define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT)) #define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
......
...@@ -110,7 +110,7 @@ static __inline__ char *__irq_itoa(unsigned int irq) ...@@ -110,7 +110,7 @@ static __inline__ char *__irq_itoa(unsigned int irq)
return buff; return buff;
} }
#define NR_IRQS 15 #define NR_IRQS 16
#define irq_cannonicalize(irq) (irq) #define irq_cannonicalize(irq) (irq)
extern void disable_irq(unsigned int); extern void disable_irq(unsigned int);
......
...@@ -279,7 +279,7 @@ static __inline__ int rwsem_atomic_update(int delta, struct rw_semaphore *sem) ...@@ -279,7 +279,7 @@ static __inline__ int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
"mov %%g7, %0\n\t" "mov %%g7, %0\n\t"
: "=&r" (tmp) : "=&r" (tmp)
: "0" (tmp), "r" (sem) : "0" (tmp), "r" (sem)
: "g5", "g7", "memory"); : "g5", "g7", "memory", "cc");
return tmp + delta; return tmp + delta;
} }
......
...@@ -164,6 +164,11 @@ do { spin_unlock_irq(&(prev)->switch_lock); \ ...@@ -164,6 +164,11 @@ do { spin_unlock_irq(&(prev)->switch_lock); \
* not preserve it's value. Hairy, but it lets us remove 2 loads * not preserve it's value. Hairy, but it lets us remove 2 loads
* and 2 stores in this critical code path. -DaveM * and 2 stores in this critical code path. -DaveM
*/ */
#if __GNUC__ >= 3
#define EXTRA_CLOBBER ,"%l1"
#else
#define EXTRA_CLOBBER
#endif
#define switch_to(prev, next, last) \ #define switch_to(prev, next, last) \
do { if (test_thread_flag(TIF_PERFCTR)) { \ do { if (test_thread_flag(TIF_PERFCTR)) { \
unsigned long __tmp; \ unsigned long __tmp; \
...@@ -209,10 +214,11 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ ...@@ -209,10 +214,11 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \
: "0" (next->thread_info), \ : "0" (next->thread_info), \
"i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_FLAGS), "i" (TI_CWP), \ "i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_FLAGS), "i" (TI_CWP), \
"i" (_TIF_NEWCHILD), "i" (TI_TASK) \ "i" (_TIF_NEWCHILD), "i" (TI_TASK) \
: "cc", "g1", "g2", "g3", "g5", "g7", \ : "cc", \
"l2", "l3", "l4", "l5", "l6", "l7", \ "g1", "g2", "g3", "g5", "g7", \
"l2", "l3", "l4", "l5", "l6", "l7", \
"i0", "i1", "i2", "i3", "i4", "i5", \ "i0", "i1", "i2", "i3", "i4", "i5", \
"o0", "o1", "o2", "o3", "o4", "o5", "o7"); \ "o0", "o1", "o2", "o3", "o4", "o5", "o7" EXTRA_CLOBBER);\
/* If you fuck with this, update ret_from_syscall code too. */ \ /* If you fuck with this, update ret_from_syscall code too. */ \
if (test_thread_flag(TIF_PERFCTR)) { \ if (test_thread_flag(TIF_PERFCTR)) { \
write_pcr(current_thread_info()->pcr_reg); \ write_pcr(current_thread_info()->pcr_reg); \
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/fs.h>
#include <linux/init.h> #include <linux/init.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/control.h> #include <sound/control.h>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <sound/driver.h> #include <sound/driver.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/rawmidi.h> #include <sound/rawmidi.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <sound/driver.h> #include <sound/driver.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/timer.h> #include <sound/timer.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <sound/driver.h> #include <sound/driver.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/timer.h> #include <sound/timer.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
......
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