From 95589dc2745fe08c48fb0b36ffbfbb0ccac1363c Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 23 Nov 2007 15:18:58 -0500 Subject: [PATCH] Import 2.2.9 --- Makefile | 2 +- arch/m68k/kernel/ints.c | 1 + arch/m68k/mm/kmap.c | 1 + arch/m68k/mvme147/config.c | 1 - arch/m68k/q40/config.c | 1 + arch/m68k/sun3x/time.c | 1 - arch/ppc/kernel/pmac_pic.c | 2 +- drivers/block/ide-dma.c | 2 +- drivers/block/ide.c | 19 + drivers/scsi/aha152x.c | 7 +- drivers/video/Config.in | 27 +- drivers/video/Makefile | 8 + drivers/video/acornfb.c | 1966 ++++++++++++++++++++++--- drivers/video/cyber2000fb.c | 1057 +++++++++++++ drivers/video/cyber2000fb.h | 78 + drivers/video/dummycon.c | 3 +- drivers/video/fbmem.c | 14 +- drivers/video/vgacon.c | 20 +- fs/adfs/dir.c | 49 +- fs/buffer.c | 310 ++-- fs/hfs/ChangeLog | 16 + fs/hfs/file_hdr.c | 148 +- fs/hfs/hfs.h | 21 +- fs/hfs/inode.c | 11 +- fs/hfs/super.c | 12 +- fs/proc/array.c | 4 +- include/asm-arm/arch-ebsa285/irq.h | 1 - include/asm-arm/arch-ebsa285/memory.h | 2 - include/asm-arm/arch-rpc/io.h | 51 +- include/asm-arm/proc-fns.h | 2 +- include/asm-arm/semaphore.h | 1 - include/asm-m68k/page.h | 2 + include/asm-m68k/q40_keyboard.h | 4 - include/asm-m68k/semaphore-helper.h | 2 + include/asm-m68k/semaphore.h | 1 - include/linux/hfs_fs.h | 91 +- include/linux/hfs_fs_sb.h | 3 +- include/linux/skbuff.h | 15 + include/net/tcp.h | 2 +- net/ipv4/ip_masq_quake.c | 2 +- 40 files changed, 3463 insertions(+), 497 deletions(-) create mode 100644 drivers/video/cyber2000fb.c create mode 100644 drivers/video/cyber2000fb.h diff --git a/Makefile b/Makefile index 5f2c27d32f0e..488fdac0d14d 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 2 -SUBLEVEL = 8 +SUBLEVEL = 9 EXTRAVERSION = ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) diff --git a/arch/m68k/kernel/ints.c b/arch/m68k/kernel/ints.c index 66fc41064066..31931a920ebc 100644 --- a/arch/m68k/kernel/ints.c +++ b/arch/m68k/kernel/ints.c @@ -25,6 +25,7 @@ * which must be served /Roman Zippel */ +#include #include #include #include diff --git a/arch/m68k/mm/kmap.c b/arch/m68k/mm/kmap.c index 3fefe4e03fba..60912a5b7752 100644 --- a/arch/m68k/mm/kmap.c +++ b/arch/m68k/mm/kmap.c @@ -7,6 +7,7 @@ * used by other architectures /Roman Zippel */ +#include #include #include #include diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c index 639d5f640e1a..2fe61766a3ec 100644 --- a/arch/m68k/mvme147/config.c +++ b/arch/m68k/mvme147/config.c @@ -13,7 +13,6 @@ * for more details. */ -#include #include #include #include diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c index e3c35c60c8fb..0c6871f88bd0 100644 --- a/arch/m68k/q40/config.c +++ b/arch/m68k/q40/config.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include diff --git a/arch/m68k/sun3x/time.c b/arch/m68k/sun3x/time.c index 39fa5f696306..73a9efd32b3a 100644 --- a/arch/m68k/sun3x/time.c +++ b/arch/m68k/sun3x/time.c @@ -4,7 +4,6 @@ * Sun3x-specific time handling */ -#include #include #include #include diff --git a/arch/ppc/kernel/pmac_pic.c b/arch/ppc/kernel/pmac_pic.c index 6a49f14052ea..6b9d8ca53881 100644 --- a/arch/ppc/kernel/pmac_pic.c +++ b/arch/ppc/kernel/pmac_pic.c @@ -1,4 +1,4 @@ - +#include #include #include #include diff --git a/drivers/block/ide-dma.c b/drivers/block/ide-dma.c index a3ac372384bc..17f46f464f85 100644 --- a/drivers/block/ide-dma.c +++ b/drivers/block/ide-dma.c @@ -425,7 +425,7 @@ __initfunc(unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif, int extra, c } else { dma_base = dev->base_address[4] & PCI_BASE_ADDRESS_IO_MASK; if (!dma_base || dma_base == PCI_BASE_ADDRESS_IO_MASK) { - printk("%s: dma_base is invalid (0x%04lx, BIOS problem), please report to \n", name, dma_base); + printk("%s: dma_base is invalid (0x%04lx)\n", name, dma_base); dma_base = 0; } } diff --git a/drivers/block/ide.c b/drivers/block/ide.c index 2e703455d5b8..7646c303044c 100644 --- a/drivers/block/ide.c +++ b/drivers/block/ide.c @@ -1696,6 +1696,7 @@ void ide_unregister (unsigned int index) ide_hwgroup_t *hwgroup; int irq_count = 0, unit, i; unsigned long flags; + unsigned int p, minor; if (index >= MAX_HWIFS) return; @@ -1714,6 +1715,24 @@ void ide_unregister (unsigned int index) goto abort; } hwif->present = 0; + + /* + * All clear? Then blow away the buffer cache + */ + sti(); + for (unit = 0; unit < MAX_DRIVES; ++unit) { + drive = &hwif->drives[unit]; + minor = drive->select.b.unit << PARTN_BITS; + for (p = 0; p < (1<part[p].nr_sects > 0) { + kdev_t devp = MKDEV(hwif->major, minor+p); + struct super_block * sb = get_super(devp); + if (sb) invalidate_inodes(sb); + invalidate_buffers (devp); + } + } + } + cli(); hwgroup = hwif->hwgroup; /* diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c index 82d55ada87d8..f43b1ead8a0d 100644 --- a/drivers/scsi/aha152x.c +++ b/drivers/scsi/aha152x.c @@ -414,8 +414,13 @@ extern long loops_per_sec; #define P_PARITY 2 /* possible irq range */ +#ifdef PCMCIA +#define IRQ_MIN 0 +#define IRQ_MAX 16 +#else #define IRQ_MIN 9 #define IRQ_MAX 12 +#endif #define IRQS IRQ_MAX-IRQ_MIN+1 enum { @@ -746,7 +751,7 @@ int aha152x_checksetup(struct aha152x_setup *setup) if(!aha152x_porttest(setup->io_port)) return 0; - if(setup->irqirq>IRQ_MAX) + if((setup->irqirq>IRQ_MAX)) return 0; if((setup->scsiid < 0) || (setup->scsiid > 7)) diff --git a/drivers/video/Config.in b/drivers/video/Config.in index 4ca9e81a0a97..91f7801b1d1d 100644 --- a/drivers/video/Config.in +++ b/drivers/video/Config.in @@ -21,6 +21,9 @@ if [ "$CONFIG_FB" = "y" ]; then if [ "$CONFIG_ARCH_ACORN" = "y" ]; then bool 'Acorn VIDC support' CONFIG_FB_ACORN fi + if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then + tristate 'Cyber2000 support' CONFIG_FB_CYBER2000 + fi if [ "$CONFIG_APOLLO" = "y" ]; then define_bool CONFIG_FB_APOLLO y fi @@ -177,8 +180,8 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_VIRGE" = "y" -o "$CONFIG_FB_CYBER" = "y" -o \ "$CONFIG_FB_VALKYRIE" = "y" -o "$CONFIG_FB_PLATINUM" = "y" -o \ "$CONFIG_FB_IGA" = "y" -o "$CONFIG_FB_MATROX" = "y" -o \ - "$CONFIG_FB_CT65550" = "y" -o "$CONFIG_FB_PM2" = "y" -o \ - "$CONFIG_FB_SGIVW" = "y" ]; then + "$CONFIG_FB_CT65550" = "y" -o "$CONFIG_FB_PM2" = "y" -o \ + "$CONFIG_FB_SGIVW" = "y" -o "$CONFIG_FB_CYBER2000" = "y" ]; then define_bool CONFIG_FBCON_CFB8 y else if [ "$CONFIG_FB_ACORN" = "m" -o "$CONFIG_FB_ATARI" = "m" -o \ @@ -191,8 +194,8 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_VIRGE" = "m" -o "$CONFIG_FB_CYBER" = "m" -o \ "$CONFIG_FB_VALKYRIE" = "m" -o "$CONFIG_FB_PLATINUM" = "m" -o \ "$CONFIG_FB_IGA" = "m" -o "$CONFIG_FB_MATROX" = "m" -o \ - "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_PM2" = "m" -o \ - "$CONFIG_FB_SGIVW" = "m" ]; then + "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_PM2" = "m" -o \ + "$CONFIG_FB_SGIVW" = "m" -o "$CONFIG_FB_CYBER2000" = "m" ]; then define_bool CONFIG_FBCON_CFB8 m fi fi @@ -204,7 +207,8 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_VIRGE" = "y" -o "$CONFIG_FB_CYBER" = "y" -o \ "$CONFIG_FB_VALKYRIE" = "y" -o "$CONFIG_FB_PLATINUM" = "y" -o \ "$CONFIG_FB_CT65550" = "y" -o "$CONFIG_FB_MATROX" = "y" -o \ - "$CONFIG_FB_PM2" = "y" -o "$CONFIG_FB_SGIVW" = "y" ]; then + "$CONFIG_FB_PM2" = "y" -o "$CONFIG_FB_SGIVW" = "y" -o \ + "$CONFIG_FB_CYBER2000" = "y" ]; then define_bool CONFIG_FBCON_CFB16 y else if [ "$CONFIG_FB_ATARI" = "m" -o "$CONFIG_FB_ATY" = "m" -o \ @@ -214,19 +218,22 @@ if [ "$CONFIG_FB" = "y" ]; then "$CONFIG_FB_CONTROL" = "m" -o "$CONFIG_FB_CLGEN" = "m" -o \ "$CONFIG_FB_VIRGE" = "m" -o "$CONFIG_FB_CYBER" = "m" -o \ "$CONFIG_FB_VALKYRIE" = "m" -o "$CONFIG_FB_PLATINUM" = "m" -o \ - "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_MATROX" = "m" -o \ - "$CONFIG_FB_PM2" = "m" -o "$CONFIG_FB_SGIVW" = "m" ]; then + "$CONFIG_FB_CT65550" = "m" -o "$CONFIG_FB_MATROX" = "m" -o \ + "$CONFIG_FB_PM2" = "y" -o "$CONFIG_FB_SGIVW" = "m" -o \ + "$CONFIG_FB_CYBER2000" = "m" ]; then define_bool CONFIG_FBCON_CFB16 m fi fi if [ "$CONFIG_FB_ATY" = "y" -o "$CONFIG_FB_VIRTUAL" = "y" -o \ "$CONFIG_FB_CLGEN" = "y" -o "$CONFIG_FB_VESA" = "y" -o \ - "$CONFIG_FB_MATROX" = "y" -o "$CONFIG_FB_PM2" = "y" ]; then + "$CONFIG_FB_MATROX" = "y" -o "$CONFIG_FB_PM2" = "y" -o \ + "$CONFIG_FB_CYBER2000" = "y" ]; then define_bool CONFIG_FBCON_CFB24 y else if [ "$CONFIG_FB_ATY" = "m" -o "$CONFIG_FB_VIRTUAL" = "m" -o \ "$CONFIG_FB_CLGEN" = "m" -o "$CONFIG_FB_VESA" = "m" -o \ - "$CONFIG_FB_MATROX" = "m" -o "$CONFIG_FB_PM2" = "m" ]; then + "$CONFIG_FB_MATROX" = "m" -o "$CONFIG_FB_PM2" = "m" -o \ + "$CONFIG_FB_CYBER2000" = "m" ]; then define_bool CONFIG_FBCON_CFB24 m fi fi @@ -323,7 +330,7 @@ if [ "$CONFIG_FB" = "y" ]; then if [ "$CONFIG_AMIGA" = "y" ]; then define_bool CONFIG_FONT_PEARL_8x8 y fi - if [ "$CONFIG_ARM" = "y" ]; then + if [ "$CONFIG_ARM" = "y" -a "$CONFIG_ARCH_ACORN" = "y" ]; then define_bool CONFIG_FONT_ACORN_8x8 y fi fi diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 721a878130ab..28ac786a7464 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -132,6 +132,14 @@ else endif endif +ifeq ($(CONFIG_FB_CYBER2000),y) +L_OBJS += cyber2000fb.o +else + ifeq ($(CONFIG_FB_CYBER2000),m) + M_OBJS += cyber2000fb.o + endif +endif + ifeq ($(CONFIG_FB_SGIVW),y) L_OBJS += sgivwfb.o else diff --git a/drivers/video/acornfb.c b/drivers/video/acornfb.c index a20259904683..e1bc0857caf8 100644 --- a/drivers/video/acornfb.c +++ b/drivers/video/acornfb.c @@ -1,15 +1,22 @@ /* * linux/drivers/video/acorn.c * - * Copyright (C) 1998 Russell King + * Copyright (C) 1998,1999 Russell King * * Frame buffer code for Acorn platforms + * + * NOTE: Most of the modes with X!=640 will disappear shortly. + * NOTE: Startup setting of HS & VS polarity not supported. + * (do we need to support it if we're coming up in 640x480?) */ + +#include #include #include #include #include #include +#include #include #include #include @@ -21,49 +28,846 @@ #include #include +#include