refresh kernel patches
authorGabor Juhos <juhosg@openwrt.org>
Mon, 19 May 2008 11:28:12 +0000 (11:28 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Mon, 19 May 2008 11:28:12 +0000 (11:28 +0000)
SVN-Revision: 11206

target/linux/olpc/patches-2.6.24/100-olpc.patch
target/linux/olpc/patches/100-olpc.patch
target/linux/olpc/patches/110-olpc_sound.patch
target/linux/olpc/patches/200-fix_dcon_id.patch
target/linux/olpc/patches/300-block2mtd_init.patch

index b694ef4e36734930b62972a0ce5add0c75dc3276..caea6012ad2d247ac7591996e62b756ae317745c 100644 (file)
@@ -1,6 +1,7 @@
-diff -purN linux_2.6.24_org/arch/x86/Kconfig linux_2.6.24_olpc/arch/x86/Kconfig
---- linux_2.6.24_org/arch/x86/Kconfig  2008-02-15 20:11:57.000000000 +0000
-+++ linux_2.6.24_olpc/arch/x86/Kconfig 2008-02-15 18:59:21.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/arch/x86/Kconfig
++++ linux-2.6.24.7/arch/x86/Kconfig
 @@ -1415,6 +1415,9 @@ config PCI_GODIRECT
  config PCI_GOANY
        bool "Any"
@@ -54,10 +55,11 @@ diff -purN linux_2.6.24_org/arch/x86/Kconfig linux_2.6.24_olpc/arch/x86/Kconfig
  source "drivers/pcmcia/Kconfig"
  
  source "drivers/pci/hotplug/Kconfig"
-diff -purN linux_2.6.24_org/arch/x86/kernel/Makefile_32 linux_2.6.24_olpc/arch/x86/kernel/Makefile_32
---- linux_2.6.24_org/arch/x86/kernel/Makefile_32       2008-02-15 20:11:58.000000000 +0000
-+++ linux_2.6.24_olpc/arch/x86/kernel/Makefile_32      2008-02-15 18:59:25.000000000 +0000
-@@ -49,6 +49,13 @@ obj-y                               += pcspeaker.o
+Index: linux-2.6.24.7/arch/x86/kernel/Makefile_32
+===================================================================
+--- linux-2.6.24.7.orig/arch/x86/kernel/Makefile_32
++++ linux-2.6.24.7/arch/x86/kernel/Makefile_32
+@@ -50,6 +50,13 @@ obj-y                               += pcspeaker.o
  
  obj-$(CONFIG_SCx200)          += scx200_32.o
  
@@ -71,9 +73,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/Makefile_32 linux_2.6.24_olpc/arch/x
  # vsyscall_32.o contains the vsyscall DSO images as __initdata.
  # We must build both images before we can assemble it.
  # Note: kbuild does not track this dependency due to usage of .incbin
-diff -purN linux_2.6.24_org/arch/x86/kernel/ofw.c linux_2.6.24_olpc/arch/x86/kernel/ofw.c
---- linux_2.6.24_org/arch/x86/kernel/ofw.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/ofw.c    2008-02-15 18:59:25.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/ofw.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/ofw.c
 @@ -0,0 +1,100 @@
 +/*
 + * ofw.c - Open Firmware client interface for 32-bit systems.
@@ -175,9 +178,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/ofw.c linux_2.6.24_olpc/arch/x86/ker
 +      return retval;
 +}
 +EXPORT_SYMBOL(ofw);
-diff -purN linux_2.6.24_org/arch/x86/kernel/olpc.c linux_2.6.24_olpc/arch/x86/kernel/olpc.c
---- linux_2.6.24_org/arch/x86/kernel/olpc.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/olpc.c   2008-02-15 18:59:25.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/olpc.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/olpc.c
 @@ -0,0 +1,287 @@
 +/* Support for the OLPC DCON and OLPC EC access
 + * Copyright (C) 2006, Advanced Micro Devices, Inc.
@@ -466,9 +470,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/olpc.c linux_2.6.24_olpc/arch/x86/ke
 +}
 +
 +postcore_initcall(olpc_init);
-diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-pm.c linux_2.6.24_olpc/arch/x86/kernel/olpc-pm.c
---- linux_2.6.24_org/arch/x86/kernel/olpc-pm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/olpc-pm.c        2008-02-15 18:59:26.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/olpc-pm.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/olpc-pm.c
 @@ -0,0 +1,946 @@
 +/* olpc-pm.c
 + * © 2006 Red Hat, Inc.
@@ -1416,9 +1421,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-pm.c linux_2.6.24_olpc/arch/x86
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("David Woodhouse <dwmw2@infradead.org>");
 +MODULE_DESCRIPTION("AMD Geode power management for OLPC CL1");
-diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-sleep.S linux_2.6.24_olpc/arch/x86/kernel/olpc-sleep.S
---- linux_2.6.24_org/arch/x86/kernel/olpc-sleep.S      1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/olpc-sleep.S     2008-02-15 18:59:26.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/olpc-sleep.S
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/olpc-sleep.S
 @@ -0,0 +1,39 @@
 +.text
 +
@@ -1459,9 +1465,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-sleep.S linux_2.6.24_olpc/arch/
 +      
 +      
 +      
-diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-wakeup.S linux_2.6.24_olpc/arch/x86/kernel/olpc-wakeup.S
---- linux_2.6.24_org/arch/x86/kernel/olpc-wakeup.S     1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/olpc-wakeup.S    2008-02-15 18:59:25.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/olpc-wakeup.S
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/olpc-wakeup.S
 @@ -0,0 +1,133 @@
 +.text
 +#include <linux/linkage.h>
@@ -1596,9 +1603,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/olpc-wakeup.S linux_2.6.24_olpc/arch
 +saved_cr4:     .long   0
 +saved_cr0:     .long   0
 +
-diff -purN linux_2.6.24_org/arch/x86/kernel/prom.c linux_2.6.24_olpc/arch/x86/kernel/prom.c
---- linux_2.6.24_org/arch/x86/kernel/prom.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/kernel/prom.c   2008-02-15 18:59:26.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/kernel/prom.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/kernel/prom.c
 @@ -0,0 +1,478 @@
 +/*
 + * Procedures for creating, accessing and interpreting the device tree.
@@ -2078,9 +2086,10 @@ diff -purN linux_2.6.24_org/arch/x86/kernel/prom.c linux_2.6.24_olpc/arch/x86/ke
 +      printk("PROM: Built device tree with %u bytes of memory.\n",
 +             prom_early_allocated);
 +}
-diff -purN linux_2.6.24_org/arch/x86/pci/olpc.c linux_2.6.24_olpc/arch/x86/pci/olpc.c
---- linux_2.6.24_org/arch/x86/pci/olpc.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/arch/x86/pci/olpc.c      2008-02-15 18:59:22.000000000 +0000
+Index: linux-2.6.24.7/arch/x86/pci/olpc.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/arch/x86/pci/olpc.c
 @@ -0,0 +1,298 @@
 +/*
 + * olpcpci.c - Low-level PCI config space access for OLPC systems
@@ -2380,9 +2389,10 @@ diff -purN linux_2.6.24_org/arch/x86/pci/olpc.c linux_2.6.24_olpc/arch/x86/pci/o
 +      raw_pci_ops = &pci_olpc_conf;
 +      is_lx = is_geode_lx();
 +}
-diff -purN linux_2.6.24_org/Documentation/kernel-parameters.txt linux_2.6.24_olpc/Documentation/kernel-parameters.txt
---- linux_2.6.24_org/Documentation/kernel-parameters.txt       2008-02-15 20:12:29.000000000 +0000
-+++ linux_2.6.24_olpc/Documentation/kernel-parameters.txt      2008-02-15 18:59:54.000000000 +0000
+Index: linux-2.6.24.7/Documentation/kernel-parameters.txt
+===================================================================
+--- linux-2.6.24.7.orig/Documentation/kernel-parameters.txt
++++ linux-2.6.24.7/Documentation/kernel-parameters.txt
 @@ -1244,6 +1244,13 @@ and is between 256 and 4096 characters. 
  
        nr_uarts=       [SERIAL] maximum number of UARTs to be registered.
@@ -2397,9 +2407,10 @@ diff -purN linux_2.6.24_org/Documentation/kernel-parameters.txt linux_2.6.24_olp
        opl3=           [HW,OSS]
                        Format: <io>
  
-diff -purN linux_2.6.24_org/drivers/base/dd.c linux_2.6.24_olpc/drivers/base/dd.c
---- linux_2.6.24_org/drivers/base/dd.c 2008-02-15 20:11:29.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/base/dd.c        2008-02-15 18:58:46.000000000 +0000
+Index: linux-2.6.24.7/drivers/base/dd.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/base/dd.c
++++ linux-2.6.24.7/drivers/base/dd.c
 @@ -293,7 +293,6 @@ static void __device_release_driver(stru
        if (drv) {
                driver_sysfs_remove(dev);
@@ -2416,9 +2427,10 @@ diff -purN linux_2.6.24_org/drivers/base/dd.c linux_2.6.24_olpc/drivers/base/dd.
                put_driver(drv);
        }
  }
-diff -purN linux_2.6.24_org/drivers/char/vt_ioctl.c linux_2.6.24_olpc/drivers/char/vt_ioctl.c
---- linux_2.6.24_org/drivers/char/vt_ioctl.c   2008-02-15 20:11:48.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/char/vt_ioctl.c  2008-02-15 18:59:11.000000000 +0000
+Index: linux-2.6.24.7/drivers/char/vt_ioctl.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/char/vt_ioctl.c
++++ linux-2.6.24.7/drivers/char/vt_ioctl.c
 @@ -38,6 +38,9 @@
  char vt_dont_switch;
  extern struct tty_driver *console_driver;
@@ -2444,9 +2456,10 @@ diff -purN linux_2.6.24_org/drivers/char/vt_ioctl.c linux_2.6.24_olpc/drivers/ch
                /*
                 * explicitly blank/unblank the screen if switching modes
                 */
-diff -purN linux_2.6.24_org/drivers/i2c/busses/scx200_acb.c linux_2.6.24_olpc/drivers/i2c/busses/scx200_acb.c
---- linux_2.6.24_org/drivers/i2c/busses/scx200_acb.c   2008-02-15 20:11:33.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/i2c/busses/scx200_acb.c  2008-02-15 18:58:49.000000000 +0000
+Index: linux-2.6.24.7/drivers/i2c/busses/scx200_acb.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/i2c/busses/scx200_acb.c
++++ linux-2.6.24.7/drivers/i2c/busses/scx200_acb.c
 @@ -46,6 +46,10 @@ static int base[MAX_DEVICES] = { 0x820, 
  module_param_array(base, int, NULL, 0);
  MODULE_PARM_DESC(base, "Base addresses for the ACCESS.bus controllers");
@@ -2484,9 +2497,10 @@ diff -purN linux_2.6.24_org/drivers/i2c/busses/scx200_acb.c linux_2.6.24_olpc/dr
                pr_debug(NAME ": ACBCTL2 readback failed\n");
                return -ENXIO;
        }
-diff -purN linux_2.6.24_org/drivers/input/keyboard/atkbd.c linux_2.6.24_olpc/drivers/input/keyboard/atkbd.c
---- linux_2.6.24_org/drivers/input/keyboard/atkbd.c    2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/keyboard/atkbd.c   2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/keyboard/atkbd.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/keyboard/atkbd.c
++++ linux-2.6.24.7/drivers/input/keyboard/atkbd.c
 @@ -63,12 +63,25 @@ static int atkbd_extra;
  module_param_named(extra, atkbd_extra, bool, 0);
  MODULE_PARM_DESC(extra, "Enable extra LEDs and keys on IBM RapidAcces, EzKey and similar keyboards");
@@ -2630,9 +2644,10 @@ diff -purN linux_2.6.24_org/drivers/input/keyboard/atkbd.c linux_2.6.24_olpc/dri
        if (!atkbd || !drv) {
                printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n");
                return -1;
-diff -purN linux_2.6.24_org/drivers/input/mouse/Kconfig linux_2.6.24_olpc/drivers/input/mouse/Kconfig
---- linux_2.6.24_org/drivers/input/mouse/Kconfig       2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/mouse/Kconfig      2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/mouse/Kconfig
++++ linux-2.6.24.7/drivers/input/mouse/Kconfig
 @@ -96,6 +96,16 @@ config MOUSE_PS2_TOUCHKIT
  
          If unsure, say N.
@@ -2650,17 +2665,19 @@ diff -purN linux_2.6.24_org/drivers/input/mouse/Kconfig linux_2.6.24_olpc/driver
  config MOUSE_SERIAL
        tristate "Serial mouse"
        select SERIO
-diff -purN linux_2.6.24_org/drivers/input/mouse/Makefile linux_2.6.24_olpc/drivers/input/mouse/Makefile
---- linux_2.6.24_org/drivers/input/mouse/Makefile      2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/mouse/Makefile     2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/mouse/Makefile
++++ linux-2.6.24.7/drivers/input/mouse/Makefile
 @@ -24,3 +24,4 @@ psmouse-$(CONFIG_MOUSE_PS2_LOGIPS2PP)        +=
  psmouse-$(CONFIG_MOUSE_PS2_LIFEBOOK)  += lifebook.o
  psmouse-$(CONFIG_MOUSE_PS2_TRACKPOINT)        += trackpoint.o
  psmouse-$(CONFIG_MOUSE_PS2_TOUCHKIT)  += touchkit_ps2.o
 +psmouse-$(CONFIG_MOUSE_PS2_OLPC)      += olpc.o
-diff -purN linux_2.6.24_org/drivers/input/mouse/olpc.c linux_2.6.24_olpc/drivers/input/mouse/olpc.c
---- linux_2.6.24_org/drivers/input/mouse/olpc.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/input/mouse/olpc.c       2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/olpc.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/input/mouse/olpc.c
 @@ -0,0 +1,837 @@
 +/*
 + * OLPC touchpad PS/2 mouse driver
@@ -3499,9 +3516,10 @@ diff -purN linux_2.6.24_org/drivers/input/mouse/olpc.c linux_2.6.24_olpc/drivers
 +      }
 +      return 0;
 +}
-diff -purN linux_2.6.24_org/drivers/input/mouse/olpc.h linux_2.6.24_olpc/drivers/input/mouse/olpc.h
---- linux_2.6.24_org/drivers/input/mouse/olpc.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/input/mouse/olpc.h       2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/olpc.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/input/mouse/olpc.h
 @@ -0,0 +1,78 @@
 +/*
 + * OLPC touchpad PS/2 mouse driver
@@ -3581,9 +3599,10 @@ diff -purN linux_2.6.24_org/drivers/input/mouse/olpc.h linux_2.6.24_olpc/drivers
 +#endif
 +
 +#endif
-diff -purN linux_2.6.24_org/drivers/input/mouse/psmouse-base.c linux_2.6.24_olpc/drivers/input/mouse/psmouse-base.c
---- linux_2.6.24_org/drivers/input/mouse/psmouse-base.c        2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/mouse/psmouse-base.c       2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/psmouse-base.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/mouse/psmouse-base.c
++++ linux-2.6.24.7/drivers/input/mouse/psmouse-base.c
 @@ -26,6 +26,7 @@
  #include "synaptics.h"
  #include "logips2pp.h"
@@ -3656,9 +3675,10 @@ diff -purN linux_2.6.24_org/drivers/input/mouse/psmouse-base.c linux_2.6.24_olpc
        {
                .type           = PSMOUSE_CORTRON,
                .name           = "CortronPS/2",
-diff -purN linux_2.6.24_org/drivers/input/mouse/psmouse.h linux_2.6.24_olpc/drivers/input/mouse/psmouse.h
---- linux_2.6.24_org/drivers/input/mouse/psmouse.h     2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/mouse/psmouse.h    2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/mouse/psmouse.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/mouse/psmouse.h
++++ linux-2.6.24.7/drivers/input/mouse/psmouse.h
 @@ -88,6 +88,7 @@ enum psmouse_type {
        PSMOUSE_LIFEBOOK,
        PSMOUSE_TRACKPOINT,
@@ -3677,9 +3697,10 @@ diff -purN linux_2.6.24_org/drivers/input/mouse/psmouse.h linux_2.6.24_olpc/driv
  
  struct psmouse_attribute {
        struct device_attribute dattr;
-diff -purN linux_2.6.24_org/drivers/input/serio/i8042.c linux_2.6.24_olpc/drivers/input/serio/i8042.c
---- linux_2.6.24_org/drivers/input/serio/i8042.c       2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/serio/i8042.c      2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/serio/i8042.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/serio/i8042.c
++++ linux-2.6.24.7/drivers/input/serio/i8042.c
 @@ -874,6 +874,11 @@ static long i8042_panic_blink(long count
  #undef DELAY
  
@@ -3724,9 +3745,10 @@ diff -purN linux_2.6.24_org/drivers/input/serio/i8042.c linux_2.6.24_olpc/driver
  
        error = i8042_controller_selftest();
        if (error)
-diff -purN linux_2.6.24_org/drivers/input/serio/serio.c linux_2.6.24_olpc/drivers/input/serio/serio.c
---- linux_2.6.24_org/drivers/input/serio/serio.c       2008-02-15 20:11:51.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/input/serio/serio.c      2008-02-15 18:59:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/input/serio/serio.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/input/serio/serio.c
++++ linux-2.6.24.7/drivers/input/serio/serio.c
 @@ -910,11 +910,22 @@ static int serio_uevent(struct device *d
  #endif /* CONFIG_HOTPLUG */
  
@@ -3750,9 +3772,10 @@ diff -purN linux_2.6.24_org/drivers/input/serio/serio.c linux_2.6.24_olpc/driver
  
                dev->power.power_state = state;
        }
-diff -purN linux_2.6.24_org/drivers/Kconfig linux_2.6.24_olpc/drivers/Kconfig
---- linux_2.6.24_org/drivers/Kconfig   2008-02-15 20:11:21.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/Kconfig  2008-02-15 18:58:34.000000000 +0000
+Index: linux-2.6.24.7/drivers/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/drivers/Kconfig
++++ linux-2.6.24.7/drivers/Kconfig
 @@ -94,6 +94,8 @@ source "drivers/auxdisplay/Kconfig"
  
  source "drivers/kvm/Kconfig"
@@ -3762,9 +3785,10 @@ diff -purN linux_2.6.24_org/drivers/Kconfig linux_2.6.24_olpc/drivers/Kconfig
  source "drivers/uio/Kconfig"
  
  source "drivers/virtio/Kconfig"
-diff -purN linux_2.6.24_org/drivers/Makefile linux_2.6.24_olpc/drivers/Makefile
---- linux_2.6.24_org/drivers/Makefile  2008-02-15 20:11:24.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/Makefile 2008-02-15 18:58:43.000000000 +0000
+Index: linux-2.6.24.7/drivers/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/drivers/Makefile
++++ linux-2.6.24.7/drivers/Makefile
 @@ -23,6 +23,8 @@ obj-y                                += char/
  
  obj-$(CONFIG_CONNECTOR)               += connector/
@@ -3774,9 +3798,10 @@ diff -purN linux_2.6.24_org/drivers/Makefile linux_2.6.24_olpc/drivers/Makefile
  # i810fb and intelfb depend on char/agp/
  obj-$(CONFIG_FB_I810)           += video/i810/
  obj-$(CONFIG_FB_INTEL)          += video/intelfb/
-diff -purN linux_2.6.24_org/drivers/media/video/cafe_ccic.c linux_2.6.24_olpc/drivers/media/video/cafe_ccic.c
---- linux_2.6.24_org/drivers/media/video/cafe_ccic.c   2008-02-15 20:11:25.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/media/video/cafe_ccic.c  2008-02-15 18:58:44.000000000 +0000
+Index: linux-2.6.24.7/drivers/media/video/cafe_ccic.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/media/video/cafe_ccic.c
++++ linux-2.6.24.7/drivers/media/video/cafe_ccic.c
 @@ -372,6 +372,10 @@ static int cafe_smbus_write_data(struct 
        rval = value | ((command << TWSIC1_ADDR_SHIFT) & TWSIC1_ADDR);
        cafe_reg_write(cam, REG_TWSIC1, rval);
@@ -3843,9 +3868,10 @@ diff -purN linux_2.6.24_org/drivers/media/video/cafe_ccic.c linux_2.6.24_olpc/dr
        set_bit(CF_CONFIG_NEEDED, &cam->flags);
        if (cam->state == S_SPECREAD)
                cam->state = S_IDLE;  /* Don't bother restarting */
-diff -purN linux_2.6.24_org/drivers/misc/Kconfig linux_2.6.24_olpc/drivers/misc/Kconfig
---- linux_2.6.24_org/drivers/misc/Kconfig      2008-02-15 20:11:42.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/misc/Kconfig     2008-02-15 18:58:52.000000000 +0000
+Index: linux-2.6.24.7/drivers/misc/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/drivers/misc/Kconfig
++++ linux-2.6.24.7/drivers/misc/Kconfig
 @@ -219,6 +219,11 @@ config THINKPAD_ACPI_BAY
  
          If you are not sure, say Y here.
@@ -3858,9 +3884,10 @@ diff -purN linux_2.6.24_org/drivers/misc/Kconfig linux_2.6.24_olpc/drivers/misc/
  
  config ATMEL_SSC
        tristate "Device driver for Atmel SSC peripheral"
-diff -purN linux_2.6.24_org/drivers/mmc/card/block.c linux_2.6.24_olpc/drivers/mmc/card/block.c
---- linux_2.6.24_org/drivers/mmc/card/block.c  2008-02-15 20:11:13.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/mmc/card/block.c 2008-02-15 18:58:17.000000000 +0000
+Index: linux-2.6.24.7/drivers/mmc/card/block.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/mmc/card/block.c
++++ linux-2.6.24.7/drivers/mmc/card/block.c
 @@ -237,6 +237,13 @@ static int mmc_blk_issue_rq(struct mmc_q
                if (brq.data.blocks > card->host->max_blk_count)
                        brq.data.blocks = card->host->max_blk_count;
@@ -3875,9 +3902,10 @@ diff -purN linux_2.6.24_org/drivers/mmc/card/block.c linux_2.6.24_olpc/drivers/m
                /*
                 * If the host doesn't support multiple block writes, force
                 * block writes to single block. SD cards are excepted from
-diff -purN linux_2.6.24_org/drivers/mmc/host/sdhci.c linux_2.6.24_olpc/drivers/mmc/host/sdhci.c
---- linux_2.6.24_org/drivers/mmc/host/sdhci.c  2008-02-15 20:11:13.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/mmc/host/sdhci.c 2008-02-15 18:58:17.000000000 +0000
+Index: linux-2.6.24.7/drivers/mmc/host/sdhci.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/mmc/host/sdhci.c
++++ linux-2.6.24.7/drivers/mmc/host/sdhci.c
 @@ -441,6 +441,12 @@ static void sdhci_prepare_data(struct sd
                        break;
        }
@@ -3925,9 +3953,10 @@ diff -purN linux_2.6.24_org/drivers/mmc/host/sdhci.c linux_2.6.24_olpc/drivers/m
  out:
        host->power = power;
  }
-diff -purN linux_2.6.24_org/drivers/mtd/nand/cafe_nand.c linux_2.6.24_olpc/drivers/mtd/nand/cafe_nand.c
---- linux_2.6.24_org/drivers/mtd/nand/cafe_nand.c      2008-02-15 20:11:46.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/mtd/nand/cafe_nand.c     2008-02-15 18:58:57.000000000 +0000
+Index: linux-2.6.24.7/drivers/mtd/nand/cafe_nand.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/mtd/nand/cafe_nand.c
++++ linux-2.6.24.7/drivers/mtd/nand/cafe_nand.c
 @@ -11,6 +11,7 @@
  #undef DEBUG
  #include <linux/mtd/mtd.h>
@@ -3984,9 +4013,10 @@ diff -purN linux_2.6.24_org/drivers/mtd/nand/cafe_nand.c linux_2.6.24_olpc/drive
        goto out;
  
   out_irq:
-diff -purN linux_2.6.24_org/drivers/mtd/redboot.c linux_2.6.24_olpc/drivers/mtd/redboot.c
---- linux_2.6.24_org/drivers/mtd/redboot.c     2008-02-15 20:11:46.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/mtd/redboot.c    2008-02-15 18:58:58.000000000 +0000
+Index: linux-2.6.24.7/drivers/mtd/redboot.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/mtd/redboot.c
++++ linux-2.6.24.7/drivers/mtd/redboot.c
 @@ -59,16 +59,31 @@ static int parse_redboot_partitions(stru
        static char nullstring[] = "unallocated";
  #endif
@@ -4024,9 +4054,10 @@ diff -purN linux_2.6.24_org/drivers/mtd/redboot.c linux_2.6.24_olpc/drivers/mtd/
        printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
               master->name, offset);
  
-diff -purN linux_2.6.24_org/drivers/net/forcedeth.c linux_2.6.24_olpc/drivers/net/forcedeth.c
---- linux_2.6.24_org/drivers/net/forcedeth.c   2008-02-15 20:11:19.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/net/forcedeth.c  2008-02-15 18:58:33.000000000 +0000
+Index: linux-2.6.24.7/drivers/net/forcedeth.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/net/forcedeth.c
++++ linux-2.6.24.7/drivers/net/forcedeth.c
 @@ -3559,11 +3559,13 @@ static int nv_request_irq(struct net_dev
        }
        if (ret != 0 && np->msi_flags & NV_MSI_CAPABLE) {
@@ -4049,10 +4080,11 @@ diff -purN linux_2.6.24_org/drivers/net/forcedeth.c linux_2.6.24_olpc/drivers/ne
                        np->msi_flags &= ~NV_MSI_ENABLED;
                }
        }
-diff -purN linux_2.6.24_org/drivers/pci/quirks.c linux_2.6.24_olpc/drivers/pci/quirks.c
---- linux_2.6.24_org/drivers/pci/quirks.c      2008-02-15 20:11:33.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/pci/quirks.c     2008-02-15 18:58:50.000000000 +0000
-@@ -1359,6 +1359,17 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+Index: linux-2.6.24.7/drivers/pci/quirks.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/pci/quirks.c
++++ linux-2.6.24.7/drivers/pci/quirks.c
+@@ -1360,6 +1360,17 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,  0x260b, quirk_intel_pcie_pm);
  
  /*
@@ -4070,9 +4102,10 @@ diff -purN linux_2.6.24_org/drivers/pci/quirks.c linux_2.6.24_olpc/drivers/pci/q
   * Toshiba TC86C001 IDE controller reports the standard 8-byte BAR0 size
   * but the PIO transfers won't work if BAR0 falls at the odd 8 bytes.
   * Re-allocate the region if needed...
-diff -purN linux_2.6.24_org/drivers/power/ds2760_battery.c linux_2.6.24_olpc/drivers/power/ds2760_battery.c
---- linux_2.6.24_org/drivers/power/ds2760_battery.c    2008-02-15 20:11:45.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/power/ds2760_battery.c   2008-02-15 18:58:56.000000000 +0000
+Index: linux-2.6.24.7/drivers/power/ds2760_battery.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/power/ds2760_battery.c
++++ linux-2.6.24.7/drivers/power/ds2760_battery.c
 @@ -409,6 +409,7 @@ static int ds2760_battery_suspend(struct
        struct ds2760_device_info *di = platform_get_drvdata(pdev);
  
@@ -4081,9 +4114,10 @@ diff -purN linux_2.6.24_org/drivers/power/ds2760_battery.c linux_2.6.24_olpc/dri
  
        return 0;
  }
-diff -purN linux_2.6.24_org/drivers/power/olpc_battery.c linux_2.6.24_olpc/drivers/power/olpc_battery.c
---- linux_2.6.24_org/drivers/power/olpc_battery.c      2008-02-15 20:11:45.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/power/olpc_battery.c     2008-02-15 18:58:56.000000000 +0000
+Index: linux-2.6.24.7/drivers/power/olpc_battery.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/power/olpc_battery.c
++++ linux-2.6.24.7/drivers/power/olpc_battery.c
 @@ -14,12 +14,13 @@
  #include <linux/power_supply.h>
  #include <linux/jiffies.h>
@@ -4234,9 +4268,10 @@ diff -purN linux_2.6.24_org/drivers/power/olpc_battery.c linux_2.6.24_olpc/drive
        power_supply_unregister(&olpc_bat);
        power_supply_unregister(&olpc_ac);
        platform_device_unregister(bat_pdev);
-diff -purN linux_2.6.24_org/drivers/power/power_supply_sysfs.c linux_2.6.24_olpc/drivers/power/power_supply_sysfs.c
---- linux_2.6.24_org/drivers/power/power_supply_sysfs.c        2008-02-15 20:11:45.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/power/power_supply_sysfs.c       2008-02-15 18:58:56.000000000 +0000
+Index: linux-2.6.24.7/drivers/power/power_supply_sysfs.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/power/power_supply_sysfs.c
++++ linux-2.6.24.7/drivers/power/power_supply_sysfs.c
 @@ -114,9 +114,11 @@ static struct device_attribute power_sup
        POWER_SUPPLY_ATTR(time_to_empty_avg),
        POWER_SUPPLY_ATTR(time_to_full_now),
@@ -4249,9 +4284,10 @@ diff -purN linux_2.6.24_org/drivers/power/power_supply_sysfs.c linux_2.6.24_olpc
  };
  
  static ssize_t power_supply_show_static_attrs(struct device *dev,
-diff -purN linux_2.6.24_org/drivers/serial/serial_core.c linux_2.6.24_olpc/drivers/serial/serial_core.c
---- linux_2.6.24_org/drivers/serial/serial_core.c      2008-02-15 20:11:33.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/serial/serial_core.c     2008-02-15 18:58:51.000000000 +0000
+Index: linux-2.6.24.7/drivers/serial/serial_core.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/serial/serial_core.c
++++ linux-2.6.24.7/drivers/serial/serial_core.c
 @@ -2013,6 +2013,7 @@ int uart_suspend_port(struct uart_driver
  int uart_resume_port(struct uart_driver *drv, struct uart_port *port)
  {
@@ -4281,9 +4317,10 @@ diff -purN linux_2.6.24_org/drivers/serial/serial_core.c linux_2.6.24_olpc/drive
                port->ops->set_termios(port, &termios, NULL);
                console_start(port->cons);
        }
-diff -purN linux_2.6.24_org/drivers/sysprof/config.h linux_2.6.24_olpc/drivers/sysprof/config.h
---- linux_2.6.24_org/drivers/sysprof/config.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/sysprof/config.h 2008-02-15 18:58:59.000000000 +0000
+Index: linux-2.6.24.7/drivers/sysprof/config.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/sysprof/config.h
 @@ -0,0 +1,23 @@
 +/* config.h.  Generated by configure.  */
 +/* config.h.in.  Generated from configure.ac by autoheader.  */
@@ -4308,9 +4345,10 @@ diff -purN linux_2.6.24_org/drivers/sysprof/config.h linux_2.6.24_olpc/drivers/s
 +
 +/* Define to the version of this package. */
 +#define PACKAGE_VERSION "1.0.8"
-diff -purN linux_2.6.24_org/drivers/sysprof/Kconfig linux_2.6.24_olpc/drivers/sysprof/Kconfig
---- linux_2.6.24_org/drivers/sysprof/Kconfig   1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/sysprof/Kconfig  2008-02-15 18:58:59.000000000 +0000
+Index: linux-2.6.24.7/drivers/sysprof/Kconfig
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/sysprof/Kconfig
 @@ -0,0 +1,12 @@
 +
 +menu "Sysprof"
@@ -4324,14 +4362,16 @@ diff -purN linux_2.6.24_org/drivers/sysprof/Kconfig linux_2.6.24_olpc/drivers/sy
 +       sysprof-module, to generate stacktraces which are then interpreted by
 +       the userspace program "sysprof".
 +endmenu
-diff -purN linux_2.6.24_org/drivers/sysprof/Makefile linux_2.6.24_olpc/drivers/sysprof/Makefile
---- linux_2.6.24_org/drivers/sysprof/Makefile  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/sysprof/Makefile 2008-02-15 18:58:59.000000000 +0000
+Index: linux-2.6.24.7/drivers/sysprof/Makefile
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/sysprof/Makefile
 @@ -0,0 +1 @@
 +obj-$(CONFIG_SYSPROF) += sysprof-module.o
-diff -purN linux_2.6.24_org/drivers/sysprof/sysprof-module.c linux_2.6.24_olpc/drivers/sysprof/sysprof-module.c
---- linux_2.6.24_org/drivers/sysprof/sysprof-module.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/sysprof/sysprof-module.c 2008-02-15 18:58:59.000000000 +0000
+Index: linux-2.6.24.7/drivers/sysprof/sysprof-module.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/sysprof/sysprof-module.c
 @@ -0,0 +1,271 @@
 +/* -*- c-basic-offset: 8 -*- */
 +
@@ -4604,9 +4644,10 @@ diff -purN linux_2.6.24_org/drivers/sysprof/sysprof-module.c linux_2.6.24_olpc/d
 +      printk(KERN_ALERT "sysprof: unloaded\n");
 +}
 +
-diff -purN linux_2.6.24_org/drivers/sysprof/sysprof-module.h linux_2.6.24_olpc/drivers/sysprof/sysprof-module.h
---- linux_2.6.24_org/drivers/sysprof/sysprof-module.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/sysprof/sysprof-module.h 2008-02-15 18:58:59.000000000 +0000
+Index: linux-2.6.24.7/drivers/sysprof/sysprof-module.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/sysprof/sysprof-module.h
 @@ -0,0 +1,37 @@
 +/* Sysprof -- Sampling, systemwide CPU profiler
 + * Copyright 2004, Red Hat, Inc.
@@ -4645,9 +4686,10 @@ diff -purN linux_2.6.24_org/drivers/sysprof/sysprof-module.h linux_2.6.24_olpc/d
 +};
 +
 +#endif
-diff -purN linux_2.6.24_org/drivers/usb/core/driver.c linux_2.6.24_olpc/drivers/usb/core/driver.c
---- linux_2.6.24_org/drivers/usb/core/driver.c 2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/core/driver.c        2008-02-15 18:58:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/core/driver.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/core/driver.c
++++ linux-2.6.24.7/drivers/usb/core/driver.c
 @@ -1062,8 +1062,15 @@ static int usb_suspend_both(struct usb_d
                                break;
                }
@@ -4665,10 +4707,11 @@ diff -purN linux_2.6.24_org/drivers/usb/core/driver.c linux_2.6.24_olpc/drivers/
  
        /* If the suspend failed, resume interfaces that did get suspended */
        if (status != 0) {
-diff -purN linux_2.6.24_org/drivers/usb/core/quirks.c linux_2.6.24_olpc/drivers/usb/core/quirks.c
---- linux_2.6.24_org/drivers/usb/core/quirks.c 2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/core/quirks.c        2008-02-15 18:58:12.000000000 +0000
-@@ -45,6 +45,9 @@ static const struct usb_device_id usb_qu
+Index: linux-2.6.24.7/drivers/usb/core/quirks.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/core/quirks.c
++++ linux-2.6.24.7/drivers/usb/core/quirks.c
+@@ -48,6 +48,9 @@ static const struct usb_device_id usb_qu
        /* SKYMEDI USB_DRIVE */
        { USB_DEVICE(0x1516, 0x8628), .driver_info = USB_QUIRK_RESET_RESUME },
  
@@ -4678,9 +4721,10 @@ diff -purN linux_2.6.24_org/drivers/usb/core/quirks.c linux_2.6.24_olpc/drivers/
        { }  /* terminating entry must be last */
  };
  
-diff -purN linux_2.6.24_org/drivers/usb/core/usb.h linux_2.6.24_olpc/drivers/usb/core/usb.h
---- linux_2.6.24_org/drivers/usb/core/usb.h    2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/core/usb.h   2008-02-15 18:58:14.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/core/usb.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/core/usb.h
++++ linux-2.6.24.7/drivers/usb/core/usb.h
 @@ -41,6 +41,7 @@ extern void usb_host_cleanup(void);
  extern void usb_autosuspend_work(struct work_struct *work);
  extern int usb_port_suspend(struct usb_device *dev);
@@ -4689,9 +4733,10 @@ diff -purN linux_2.6.24_org/drivers/usb/core/usb.h linux_2.6.24_olpc/drivers/usb
  extern int usb_external_suspend_device(struct usb_device *udev,
                pm_message_t msg);
  extern int usb_external_resume_device(struct usb_device *udev);
-diff -purN linux_2.6.24_org/drivers/usb/host/ehci-hcd.c linux_2.6.24_olpc/drivers/usb/host/ehci-hcd.c
---- linux_2.6.24_org/drivers/usb/host/ehci-hcd.c       2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/host/ehci-hcd.c      2008-02-15 18:58:12.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/host/ehci-hcd.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/host/ehci-hcd.c
++++ linux-2.6.24.7/drivers/usb/host/ehci-hcd.c
 @@ -653,9 +653,16 @@ static irqreturn_t ehci_irq (struct usb_
  
        /* complete the unlinking of some qh [4.15.2.3] */
@@ -4712,9 +4757,10 @@ diff -purN linux_2.6.24_org/drivers/usb/host/ehci-hcd.c linux_2.6.24_olpc/driver
        }
  
        /* remote wakeup [4.3.1] */
-diff -purN linux_2.6.24_org/drivers/usb/host/ehci-hub.c linux_2.6.24_olpc/drivers/usb/host/ehci-hub.c
---- linux_2.6.24_org/drivers/usb/host/ehci-hub.c       2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/host/ehci-hub.c      2008-02-15 18:58:12.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/host/ehci-hub.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/host/ehci-hub.c
++++ linux-2.6.24.7/drivers/usb/host/ehci-hub.c
 @@ -132,10 +132,15 @@ static int ehci_bus_suspend (struct usb_
                ehci_quiesce (ehci);
                hcd->state = HC_STATE_QUIESCING;
@@ -4760,9 +4806,10 @@ diff -purN linux_2.6.24_org/drivers/usb/host/ehci-hub.c linux_2.6.24_olpc/driver
  
        if (time_before (jiffies, ehci->next_statechange))
                msleep(5);
-diff -purN linux_2.6.24_org/drivers/usb/host/ehci-pci.c linux_2.6.24_olpc/drivers/usb/host/ehci-pci.c
---- linux_2.6.24_org/drivers/usb/host/ehci-pci.c       2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/host/ehci-pci.c      2008-02-15 18:58:12.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/host/ehci-pci.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/host/ehci-pci.c
++++ linux-2.6.24.7/drivers/usb/host/ehci-pci.c
 @@ -247,6 +247,9 @@ static int ehci_pci_suspend(struct usb_h
                rc = -EINVAL;
                goto bail;
@@ -4773,9 +4820,10 @@ diff -purN linux_2.6.24_org/drivers/usb/host/ehci-pci.c linux_2.6.24_olpc/driver
        ehci_writel(ehci, 0, &ehci->regs->intr_enable);
        (void)ehci_readl(ehci, &ehci->regs->intr_enable);
  
-diff -purN linux_2.6.24_org/drivers/usb/host/ehci-q.c linux_2.6.24_olpc/drivers/usb/host/ehci-q.c
---- linux_2.6.24_org/drivers/usb/host/ehci-q.c 2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/host/ehci-q.c        2008-02-15 18:58:12.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/host/ehci-q.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/host/ehci-q.c
++++ linux-2.6.24.7/drivers/usb/host/ehci-q.c
 @@ -177,7 +177,7 @@ static int qtd_copy_status (
                        if (QTD_CERR (token))
                                status = -EPIPE;
@@ -4797,9 +4845,10 @@ diff -purN linux_2.6.24_org/drivers/usb/host/ehci-q.c linux_2.6.24_olpc/drivers/
        timer_action_done (ehci, TIMER_IAA_WATCHDOG);
  
        // qh->hw_next = cpu_to_hc32(qh->qh_dma);
-diff -purN linux_2.6.24_org/drivers/usb/host/ohci-pci.c linux_2.6.24_olpc/drivers/usb/host/ohci-pci.c
---- linux_2.6.24_org/drivers/usb/host/ohci-pci.c       2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/host/ohci-pci.c      2008-02-15 18:58:12.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/host/ohci-pci.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/host/ohci-pci.c
++++ linux-2.6.24.7/drivers/usb/host/ohci-pci.c
 @@ -317,6 +317,8 @@ static int ohci_pci_resume (struct usb_h
        /* FIXME: we should try to detect loss of VBUS power here */
        prepare_for_handover(hcd);
@@ -4809,9 +4858,10 @@ diff -purN linux_2.6.24_org/drivers/usb/host/ohci-pci.c linux_2.6.24_olpc/driver
        return 0;
  }
  
-diff -purN linux_2.6.24_org/drivers/usb/storage/usb.c linux_2.6.24_olpc/drivers/usb/storage/usb.c
---- linux_2.6.24_org/drivers/usb/storage/usb.c 2008-02-15 20:11:09.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/usb/storage/usb.c        2008-02-15 18:58:11.000000000 +0000
+Index: linux-2.6.24.7/drivers/usb/storage/usb.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/usb/storage/usb.c
++++ linux-2.6.24.7/drivers/usb/storage/usb.c
 @@ -244,7 +244,7 @@ static int storage_pre_reset(struct usb_
        return 0;
  }
@@ -4834,9 +4884,10 @@ diff -purN linux_2.6.24_org/drivers/usb/storage/usb.c linux_2.6.24_olpc/drivers/
  }
  
  /*
-diff -purN linux_2.6.24_org/drivers/video/fbmem.c linux_2.6.24_olpc/drivers/video/fbmem.c
---- linux_2.6.24_org/drivers/video/fbmem.c     2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/fbmem.c    2008-02-15 18:58:42.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/fbmem.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/fbmem.c
++++ linux-2.6.24.7/drivers/video/fbmem.c
 @@ -820,6 +820,53 @@ static void try_to_load(int fb)
  #endif /* CONFIG_KMOD */
  
@@ -4891,9 +4942,10 @@ diff -purN linux_2.6.24_org/drivers/video/fbmem.c linux_2.6.24_olpc/drivers/vide
  fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var)
  {
        struct fb_fix_screeninfo *fix = &info->fix;
-diff -purN linux_2.6.24_org/drivers/video/geode/display_gx.c linux_2.6.24_olpc/drivers/video/geode/display_gx.c
---- linux_2.6.24_org/drivers/video/geode/display_gx.c  2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/display_gx.c 2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/display_gx.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/display_gx.c
++++ linux-2.6.24.7/drivers/video/geode/display_gx.c
 @@ -11,26 +11,44 @@
   *   Free Software Foundation; either version 2 of the License, or * (at your
   *   option) any later version.
@@ -5036,9 +5088,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/display_gx.c linux_2.6.24_olpc/d
  
        par->vid_ops->configure_display(info);
  
-diff -purN linux_2.6.24_org/drivers/video/geode/display_gx.h linux_2.6.24_olpc/drivers/video/geode/display_gx.h
---- linux_2.6.24_org/drivers/video/geode/display_gx.h  2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/display_gx.h 2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/display_gx.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/display_gx.h
++++ linux-2.6.24.7/drivers/video/geode/display_gx.h
 @@ -20,6 +20,9 @@ extern struct geode_dc_ops gx_dc_ops;
  #define GLD_MSR_CONFIG   0xC0002001
  #define GLD_MSR_CONFIG_DM_FP 0x40
@@ -5049,9 +5102,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/display_gx.h linux_2.6.24_olpc/d
  /* Display controller registers */
  
  #define DC_UNLOCK 0x00
-diff -purN linux_2.6.24_org/drivers/video/geode/geodefb.h linux_2.6.24_olpc/drivers/video/geode/geodefb.h
---- linux_2.6.24_org/drivers/video/geode/geodefb.h     2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/geodefb.h    2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/geodefb.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/geodefb.h
++++ linux-2.6.24.7/drivers/video/geode/geodefb.h
 @@ -12,6 +12,10 @@
  #ifndef __GEODEFB_H__
  #define __GEODEFB_H__
@@ -5088,9 +5142,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/geodefb.h linux_2.6.24_olpc/driv
  };
  
  #endif /* !__GEODEFB_H__ */
-diff -purN linux_2.6.24_org/drivers/video/geode/geode_regs.h linux_2.6.24_olpc/drivers/video/geode/geode_regs.h
---- linux_2.6.24_org/drivers/video/geode/geode_regs.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/video/geode/geode_regs.h 2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/geode_regs.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/video/geode/geode_regs.h
 @@ -0,0 +1,255 @@
 +/* This header file defines the registers and suspend/resume
 +   structures for the Geode GX and LX.   The lxfb driver defines
@@ -5347,9 +5402,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/geode_regs.h linux_2.6.24_olpc/d
 +};
 +
 +#endif
-diff -purN linux_2.6.24_org/drivers/video/geode/gxfb_core.c linux_2.6.24_olpc/drivers/video/geode/gxfb_core.c
---- linux_2.6.24_org/drivers/video/geode/gxfb_core.c   2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/gxfb_core.c  2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/gxfb_core.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/gxfb_core.c
++++ linux-2.6.24.7/drivers/video/geode/gxfb_core.c
 @@ -30,12 +30,31 @@
  #include <linux/fb.h>
  #include <linux/init.h>
@@ -5804,9 +5860,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/gxfb_core.c linux_2.6.24_olpc/dr
 +
  MODULE_DESCRIPTION("Framebuffer driver for the AMD Geode GX");
  MODULE_LICENSE("GPL");
-diff -purN linux_2.6.24_org/drivers/video/geode/Kconfig linux_2.6.24_olpc/drivers/video/geode/Kconfig
---- linux_2.6.24_org/drivers/video/geode/Kconfig       2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/Kconfig      2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/Kconfig
++++ linux-2.6.24.7/drivers/video/geode/Kconfig
 @@ -38,26 +38,6 @@ config FB_GEODE_GX
  
          If unsure, say N.
@@ -5834,9 +5891,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/Kconfig linux_2.6.24_olpc/driver
  config FB_GEODE_GX1
        tristate "AMD Geode GX1 framebuffer support (EXPERIMENTAL)"
        depends on FB && FB_GEODE && EXPERIMENTAL
-diff -purN linux_2.6.24_org/drivers/video/geode/lxfb_core.c linux_2.6.24_olpc/drivers/video/geode/lxfb_core.c
---- linux_2.6.24_org/drivers/video/geode/lxfb_core.c   2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/lxfb_core.c  2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/lxfb_core.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/lxfb_core.c
++++ linux-2.6.24.7/drivers/video/geode/lxfb_core.c
 @@ -21,7 +21,8 @@
  #include <linux/fb.h>
  #include <linux/init.h>
@@ -6250,9 +6308,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/lxfb_core.c linux_2.6.24_olpc/dr
  };
  
  #ifndef MODULE
-diff -purN linux_2.6.24_org/drivers/video/geode/lxfb.h linux_2.6.24_olpc/drivers/video/geode/lxfb.h
---- linux_2.6.24_org/drivers/video/geode/lxfb.h        2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/lxfb.h       2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/lxfb.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/lxfb.h
++++ linux-2.6.24.7/drivers/video/geode/lxfb.h
 @@ -25,10 +25,23 @@ void lx_set_mode(struct fb_info *);
  void lx_get_gamma(struct fb_info *, unsigned int *, int);
  void lx_set_gamma(struct fb_info *, unsigned int *, int);
@@ -6286,9 +6345,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/lxfb.h linux_2.6.24_olpc/drivers
  
  #define DC_IRQ               0xC8
  #define  DC_IRQ_MASK         (1 << 0)
-diff -purN linux_2.6.24_org/drivers/video/geode/lxfb_ops.c linux_2.6.24_olpc/drivers/video/geode/lxfb_ops.c
---- linux_2.6.24_org/drivers/video/geode/lxfb_ops.c    2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/lxfb_ops.c   2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/lxfb_ops.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/lxfb_ops.c
++++ linux-2.6.24.7/drivers/video/geode/lxfb_ops.c
 @@ -11,11 +11,15 @@
  #include <linux/kernel.h>
  #include <linux/errno.h>
@@ -6803,9 +6863,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/lxfb_ops.c linux_2.6.24_olpc/dri
 +      lx_power_on = 1;
        return 0;
  }
-diff -purN linux_2.6.24_org/drivers/video/geode/Makefile linux_2.6.24_olpc/drivers/video/geode/Makefile
---- linux_2.6.24_org/drivers/video/geode/Makefile      2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/Makefile     2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/Makefile
++++ linux-2.6.24.7/drivers/video/geode/Makefile
 @@ -5,5 +5,5 @@ obj-$(CONFIG_FB_GEODE_GX)  += gxfb.o
  obj-$(CONFIG_FB_GEODE_LX)  += lxfb.o
  
@@ -6813,9 +6874,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/Makefile linux_2.6.24_olpc/drive
 -gxfb-objs  := gxfb_core.o display_gx.o video_gx.o
 +gxfb-objs  := gxfb_core.o display_gx.o video_gx.o suspend_gx.o
  lxfb-objs  := lxfb_core.o lxfb_ops.o
-diff -purN linux_2.6.24_org/drivers/video/geode/suspend_gx.c linux_2.6.24_olpc/drivers/video/geode/suspend_gx.c
---- linux_2.6.24_org/drivers/video/geode/suspend_gx.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/video/geode/suspend_gx.c 2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/suspend_gx.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/video/geode/suspend_gx.c
 @@ -0,0 +1,272 @@
 +#include <linux/fb.h>
 +#include <asm/io.h>
@@ -7089,9 +7151,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/suspend_gx.c linux_2.6.24_olpc/d
 +}
 +
 +#endif
-diff -purN linux_2.6.24_org/drivers/video/geode/video_gx.c linux_2.6.24_olpc/drivers/video/geode/video_gx.c
---- linux_2.6.24_org/drivers/video/geode/video_gx.c    2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/video_gx.c   2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/video_gx.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/video_gx.c
++++ linux-2.6.24.7/drivers/video/geode/video_gx.c
 @@ -16,10 +16,14 @@
  #include <asm/io.h>
  #include <asm/delay.h>
@@ -7518,9 +7581,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/video_gx.c linux_2.6.24_olpc/dri
        .configure_display = gx_configure_display,
        .blank_display     = gx_blank_display,
  };
-diff -purN linux_2.6.24_org/drivers/video/geode/video_gx.h linux_2.6.24_olpc/drivers/video/geode/video_gx.h
---- linux_2.6.24_org/drivers/video/geode/video_gx.h    2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/geode/video_gx.h   2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/geode/video_gx.h
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/geode/video_gx.h
++++ linux-2.6.24.7/drivers/video/geode/video_gx.h
 @@ -11,6 +11,8 @@
  #ifndef __VIDEO_GX_H__
  #define __VIDEO_GX_H__
@@ -7568,9 +7632,10 @@ diff -purN linux_2.6.24_org/drivers/video/geode/video_gx.h linux_2.6.24_olpc/dri
 +void gx_restore_regs(struct fb_info *info, struct geoderegs *regs);
 +
  #endif /* !__VIDEO_GX_H__ */
-diff -purN linux_2.6.24_org/drivers/video/Kconfig linux_2.6.24_olpc/drivers/video/Kconfig
---- linux_2.6.24_org/drivers/video/Kconfig     2008-02-15 20:11:22.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/Kconfig    2008-02-15 18:58:36.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/Kconfig
++++ linux-2.6.24.7/drivers/video/Kconfig
 @@ -1869,6 +1869,15 @@ config FB_PS3_DEFAULT_SIZE_M
          The default value can be overridden on the kernel command line
          using the "ps3fb" option (e.g. "ps3fb=9M");
@@ -7587,9 +7652,10 @@ diff -purN linux_2.6.24_org/drivers/video/Kconfig linux_2.6.24_olpc/drivers/vide
  config FB_XILINX
        tristate "Xilinx frame buffer support"
        depends on FB && XILINX_VIRTEX
-diff -purN linux_2.6.24_org/drivers/video/Makefile linux_2.6.24_olpc/drivers/video/Makefile
---- linux_2.6.24_org/drivers/video/Makefile    2008-02-15 20:11:22.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/Makefile   2008-02-15 18:58:36.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/Makefile
++++ linux-2.6.24.7/drivers/video/Makefile
 @@ -111,6 +111,7 @@ obj-$(CONFIG_FB_PNX4008_DUM_RGB)  += pnx
  obj-$(CONFIG_FB_IBM_GXT4500)    += gxt4500.o
  obj-$(CONFIG_FB_PS3)            += ps3fb.o
@@ -7598,9 +7664,10 @@ diff -purN linux_2.6.24_org/drivers/video/Makefile linux_2.6.24_olpc/drivers/vid
  obj-$(CONFIG_FB_XILINX)           += xilinxfb.o
  obj-$(CONFIG_FB_OMAP)             += omap/
  
-diff -purN linux_2.6.24_org/drivers/video/modedb.c linux_2.6.24_olpc/drivers/video/modedb.c
---- linux_2.6.24_org/drivers/video/modedb.c    2008-02-15 20:11:23.000000000 +0000
-+++ linux_2.6.24_olpc/drivers/video/modedb.c   2008-02-15 18:58:41.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/modedb.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/video/modedb.c
++++ linux-2.6.24.7/drivers/video/modedb.c
 @@ -33,6 +33,8 @@ const char *fb_mode_option;
       *  Standard video mode definitions (taken from XFree86)
       */
@@ -7620,9 +7687,10 @@ diff -purN linux_2.6.24_org/drivers/video/modedb.c linux_2.6.24_olpc/drivers/vid
  
      if (!default_bpp)
        default_bpp = 8;
-diff -purN linux_2.6.24_org/drivers/video/olpc_dcon.c linux_2.6.24_olpc/drivers/video/olpc_dcon.c
---- linux_2.6.24_org/drivers/video/olpc_dcon.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/video/olpc_dcon.c        2008-02-15 18:58:42.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/olpc_dcon.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/video/olpc_dcon.c
 @@ -0,0 +1,946 @@
 +/*
 + * Mainly by David Woodhouse, somewhat modified by Jordan Crouse
@@ -8570,10 +8638,10 @@ diff -purN linux_2.6.24_org/drivers/video/olpc_dcon.c linux_2.6.24_olpc/drivers/
 +module_exit(olpc_dcon_exit);
 +
 +MODULE_LICENSE("GPL");
-Binary files linux_2.6.24_org/drivers/video/.olpc_dcon.c.swp and linux_2.6.24_olpc/drivers/video/.olpc_dcon.c.swp differ
-diff -purN linux_2.6.24_org/drivers/video/olpc_dcon.h linux_2.6.24_olpc/drivers/video/olpc_dcon.h
---- linux_2.6.24_org/drivers/video/olpc_dcon.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/drivers/video/olpc_dcon.h        2008-02-15 18:58:35.000000000 +0000
+Index: linux-2.6.24.7/drivers/video/olpc_dcon.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/drivers/video/olpc_dcon.h
 @@ -0,0 +1,75 @@
 +#ifndef OLPC_DCON_H_
 +#define OLPC_DCON_H_
@@ -8650,9 +8718,10 @@ diff -purN linux_2.6.24_org/drivers/video/olpc_dcon.h linux_2.6.24_olpc/drivers/
 +#define DCON_IRQ                6
 +
 +#endif
-diff -purN linux_2.6.24_org/fs/jffs2/nodelist.h linux_2.6.24_olpc/fs/jffs2/nodelist.h
---- linux_2.6.24_org/fs/jffs2/nodelist.h       2008-02-15 20:10:35.000000000 +0000
-+++ linux_2.6.24_olpc/fs/jffs2/nodelist.h      2008-02-15 18:57:39.000000000 +0000
+Index: linux-2.6.24.7/fs/jffs2/nodelist.h
+===================================================================
+--- linux-2.6.24.7.orig/fs/jffs2/nodelist.h
++++ linux-2.6.24.7/fs/jffs2/nodelist.h
 @@ -197,7 +197,7 @@ struct jffs2_inode_cache {
  #define RAWNODE_CLASS_XATTR_DATUM     1
  #define RAWNODE_CLASS_XATTR_REF               2
@@ -8662,9 +8731,10 @@ diff -purN linux_2.6.24_org/fs/jffs2/nodelist.h linux_2.6.24_olpc/fs/jffs2/nodel
  
  #define write_ofs(c) ((c)->nextblock->offset + (c)->sector_size - (c)->nextblock->free_size)
  
-diff -purN linux_2.6.24_org/fs/Kconfig linux_2.6.24_olpc/fs/Kconfig
---- linux_2.6.24_org/fs/Kconfig        2008-02-15 20:10:31.000000000 +0000
-+++ linux_2.6.24_olpc/fs/Kconfig       2008-02-15 18:57:33.000000000 +0000
+Index: linux-2.6.24.7/fs/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/fs/Kconfig
++++ linux-2.6.24.7/fs/Kconfig
 @@ -1031,6 +1031,37 @@ config HUGETLBFS
  config HUGETLB_PAGE
        def_bool HUGETLBFS
@@ -8703,9 +8773,10 @@ diff -purN linux_2.6.24_org/fs/Kconfig linux_2.6.24_olpc/fs/Kconfig
  config CONFIGFS_FS
        tristate "Userspace-driven configuration filesystem (EXPERIMENTAL)"
        depends on SYSFS && EXPERIMENTAL
-diff -purN linux_2.6.24_org/fs/Makefile linux_2.6.24_olpc/fs/Makefile
---- linux_2.6.24_org/fs/Makefile       2008-02-15 20:10:33.000000000 +0000
-+++ linux_2.6.24_olpc/fs/Makefile      2008-02-15 18:57:34.000000000 +0000
+Index: linux-2.6.24.7/fs/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/fs/Makefile
++++ linux-2.6.24.7/fs/Makefile
 @@ -110,6 +110,7 @@ obj-$(CONFIG_ADFS_FS)              += adfs/
  obj-$(CONFIG_FUSE_FS)         += fuse/
  obj-$(CONFIG_UDF_FS)          += udf/
@@ -8714,14 +8785,16 @@ diff -purN linux_2.6.24_org/fs/Makefile linux_2.6.24_olpc/fs/Makefile
  obj-$(CONFIG_JFS_FS)          += jfs/
  obj-$(CONFIG_XFS_FS)          += xfs/
  obj-$(CONFIG_9P_FS)           += 9p/
-diff -purN linux_2.6.24_org/fs/promfs/Makefile linux_2.6.24_olpc/fs/promfs/Makefile
---- linux_2.6.24_org/fs/promfs/Makefile        1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/fs/promfs/Makefile       2008-02-15 18:57:33.000000000 +0000
+Index: linux-2.6.24.7/fs/promfs/Makefile
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/fs/promfs/Makefile
 @@ -0,0 +1 @@
 +obj-$(CONFIG_PROMFS_FS) += promfs.o
-diff -purN linux_2.6.24_org/fs/promfs/promfs.c linux_2.6.24_olpc/fs/promfs/promfs.c
---- linux_2.6.24_org/fs/promfs/promfs.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/fs/promfs/promfs.c       2008-02-15 18:57:33.000000000 +0000
+Index: linux-2.6.24.7/fs/promfs/promfs.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/fs/promfs/promfs.c
 @@ -0,0 +1,295 @@
 +/*
 + * promfs.c - generic inode/dentry functions for IEEE 1275-based filesystems.
@@ -9018,9 +9091,10 @@ diff -purN linux_2.6.24_org/fs/promfs/promfs.c linux_2.6.24_olpc/fs/promfs/promf
 +
 +module_init(init_promfs);
 +module_exit(exit_promfs);
-diff -purN linux_2.6.24_org/include/asm-x86/ofw.h linux_2.6.24_olpc/include/asm-x86/ofw.h
---- linux_2.6.24_org/include/asm-x86/ofw.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/include/asm-x86/ofw.h    2008-02-15 18:57:59.000000000 +0000
+Index: linux-2.6.24.7/include/asm-x86/ofw.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/include/asm-x86/ofw.h
 @@ -0,0 +1,16 @@
 +/*
 + * Definitions for Open Firmware client interface on 32-bit system.
@@ -9038,9 +9112,10 @@ diff -purN linux_2.6.24_org/include/asm-x86/ofw.h linux_2.6.24_olpc/include/asm-
 +extern int ofw(char *, int, int, ...); 
 +
 +#endif
-diff -purN linux_2.6.24_org/include/asm-x86/olpc.h linux_2.6.24_olpc/include/asm-x86/olpc.h
---- linux_2.6.24_org/include/asm-x86/olpc.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/include/asm-x86/olpc.h   2008-02-15 18:57:59.000000000 +0000
+Index: linux-2.6.24.7/include/asm-x86/olpc.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/include/asm-x86/olpc.h
 @@ -0,0 +1,107 @@
 +/* OLPC machine specific definitions */
 +
@@ -9149,9 +9224,10 @@ diff -purN linux_2.6.24_org/include/asm-x86/olpc.h linux_2.6.24_olpc/include/asm
 +
 +#endif
 +
-diff -purN linux_2.6.24_org/include/asm-x86/prom.h linux_2.6.24_olpc/include/asm-x86/prom.h
---- linux_2.6.24_org/include/asm-x86/prom.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/include/asm-x86/prom.h   2008-02-15 18:57:59.000000000 +0000
+Index: linux-2.6.24.7/include/asm-x86/prom.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/include/asm-x86/prom.h
 @@ -0,0 +1,108 @@
 +#ifndef _I386_PROM_H
 +#define _I386_PROM_H
@@ -9261,9 +9337,10 @@ diff -purN linux_2.6.24_org/include/asm-x86/prom.h linux_2.6.24_olpc/include/asm
 +
 +#endif /* __KERNEL__ */
 +#endif
-diff -purN linux_2.6.24_org/include/linux/battery.h linux_2.6.24_olpc/include/linux/battery.h
---- linux_2.6.24_org/include/linux/battery.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/include/linux/battery.h  2008-02-15 18:58:06.000000000 +0000
+Index: linux-2.6.24.7/include/linux/battery.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/include/linux/battery.h
 @@ -0,0 +1,101 @@
 +/*
 + * Driver model for batteries
@@ -9366,9 +9443,10 @@ diff -purN linux_2.6.24_org/include/linux/battery.h linux_2.6.24_olpc/include/li
 +ssize_t battery_attribute_show_status(char *buf, unsigned long status);
 +ssize_t battery_attribute_show_ac_status(char *buf, unsigned long status);
 +#endif /* __LINUX_BATTERY_H__ */
-diff -purN linux_2.6.24_org/include/linux/fb.h linux_2.6.24_olpc/include/linux/fb.h
---- linux_2.6.24_org/include/linux/fb.h        2008-02-15 20:10:55.000000000 +0000
-+++ linux_2.6.24_olpc/include/linux/fb.h       2008-02-15 18:58:01.000000000 +0000
+Index: linux-2.6.24.7/include/linux/fb.h
+===================================================================
+--- linux-2.6.24.7.orig/include/linux/fb.h
++++ linux-2.6.24.7/include/linux/fb.h
 @@ -666,6 +666,12 @@ struct fb_ops {
        /* restore saved state */
        void (*fb_restore_state)(struct fb_info *info);
@@ -9392,9 +9470,10 @@ diff -purN linux_2.6.24_org/include/linux/fb.h linux_2.6.24_olpc/include/linux/f
  extern struct fb_info *registered_fb[FB_MAX];
  extern int num_registered_fb;
  extern struct class *fb_class;
-diff -purN linux_2.6.24_org/include/linux/i2c-id.h linux_2.6.24_olpc/include/linux/i2c-id.h
---- linux_2.6.24_org/include/linux/i2c-id.h    2008-02-15 20:10:52.000000000 +0000
-+++ linux_2.6.24_olpc/include/linux/i2c-id.h   2008-02-15 18:58:00.000000000 +0000
+Index: linux-2.6.24.7/include/linux/i2c-id.h
+===================================================================
+--- linux-2.6.24.7.orig/include/linux/i2c-id.h
++++ linux-2.6.24.7/include/linux/i2c-id.h
 @@ -125,6 +125,7 @@
  #define I2C_DRIVERID_LM4857   92      /* LM4857 Audio Amplifier */
  #define I2C_DRIVERID_VP27SMPX 93      /* Panasonic VP27s tuner internal MPX */
@@ -9403,9 +9482,10 @@ diff -purN linux_2.6.24_org/include/linux/i2c-id.h linux_2.6.24_olpc/include/lin
  
  #define I2C_DRIVERID_I2CDEV   900
  #define I2C_DRIVERID_ARP        902    /* SMBus ARP Client              */
-diff -purN linux_2.6.24_org/include/linux/isl_38xx.h linux_2.6.24_olpc/include/linux/isl_38xx.h
---- linux_2.6.24_org/include/linux/isl_38xx.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/include/linux/isl_38xx.h 2008-02-15 18:58:05.000000000 +0000
+Index: linux-2.6.24.7/include/linux/isl_38xx.h
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/include/linux/isl_38xx.h
 @@ -0,0 +1,127 @@
 +/*
 + *  Copyright (C) 2002 Intersil Americas Inc.
@@ -9534,9 +9614,10 @@ diff -purN linux_2.6.24_org/include/linux/isl_38xx.h linux_2.6.24_olpc/include/l
 +#define ISL38XX_DMA_MASTER_CONTROL_TRIGGER      0x00000004
 +
 +#endif /* _LINUX_ISL_38XX_H */
-diff -purN linux_2.6.24_org/include/linux/pm.h linux_2.6.24_olpc/include/linux/pm.h
---- linux_2.6.24_org/include/linux/pm.h        2008-02-15 20:11:06.000000000 +0000
-+++ linux_2.6.24_olpc/include/linux/pm.h       2008-02-15 18:58:06.000000000 +0000
+Index: linux-2.6.24.7/include/linux/pm.h
+===================================================================
+--- linux-2.6.24.7.orig/include/linux/pm.h
++++ linux-2.6.24.7/include/linux/pm.h
 @@ -178,6 +178,9 @@ struct dev_pm_info {
        unsigned                can_wakeup:1;
  #ifdef        CONFIG_PM_SLEEP
@@ -9547,9 +9628,10 @@ diff -purN linux_2.6.24_org/include/linux/pm.h linux_2.6.24_olpc/include/linux/p
        struct list_head        entry;
  #endif
  };
-diff -purN linux_2.6.24_org/include/linux/power_supply.h linux_2.6.24_olpc/include/linux/power_supply.h
---- linux_2.6.24_org/include/linux/power_supply.h      2008-02-15 20:10:55.000000000 +0000
-+++ linux_2.6.24_olpc/include/linux/power_supply.h     2008-02-15 18:58:01.000000000 +0000
+Index: linux-2.6.24.7/include/linux/power_supply.h
+===================================================================
+--- linux-2.6.24.7.orig/include/linux/power_supply.h
++++ linux-2.6.24.7/include/linux/power_supply.h
 @@ -98,9 +98,11 @@ enum power_supply_property {
        POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
        POWER_SUPPLY_PROP_TIME_TO_FULL_NOW,
@@ -9574,9 +9656,10 @@ diff -purN linux_2.6.24_org/include/linux/power_supply.h linux_2.6.24_olpc/inclu
  extern void power_supply_unregister(struct power_supply *psy);
  
  /* For APM emulation, think legacy userspace. */
-diff -purN linux_2.6.24_org/include/linux/vt_kern.h linux_2.6.24_olpc/include/linux/vt_kern.h
---- linux_2.6.24_org/include/linux/vt_kern.h   2008-02-15 20:10:55.000000000 +0000
-+++ linux_2.6.24_olpc/include/linux/vt_kern.h  2008-02-15 18:58:02.000000000 +0000
+Index: linux-2.6.24.7/include/linux/vt_kern.h
+===================================================================
+--- linux-2.6.24.7.orig/include/linux/vt_kern.h
++++ linux-2.6.24.7/include/linux/vt_kern.h
 @@ -96,4 +96,23 @@ struct vt_spawn_console {
  };
  extern struct vt_spawn_console vt_spawn_con;
@@ -9601,9 +9684,10 @@ diff -purN linux_2.6.24_org/include/linux/vt_kern.h linux_2.6.24_olpc/include/li
 +}
 +
  #endif /* _VT_KERN_H */
-diff -purN linux_2.6.24_org/include/sound/ac97_codec.h linux_2.6.24_olpc/include/sound/ac97_codec.h
---- linux_2.6.24_org/include/sound/ac97_codec.h        2008-02-15 20:10:44.000000000 +0000
-+++ linux_2.6.24_olpc/include/sound/ac97_codec.h       2008-02-15 18:57:45.000000000 +0000
+Index: linux-2.6.24.7/include/sound/ac97_codec.h
+===================================================================
+--- linux-2.6.24.7.orig/include/sound/ac97_codec.h
++++ linux-2.6.24.7/include/sound/ac97_codec.h
 @@ -281,10 +281,12 @@
  /* specific - Analog Devices */
  #define AC97_AD_TEST          0x5a    /* test register */
@@ -9617,9 +9701,10 @@ diff -purN linux_2.6.24_org/include/sound/ac97_codec.h linux_2.6.24_olpc/include
  
  /* specific - Cirrus Logic */
  #define AC97_CSR_ACMODE               0x5e    /* AC Mode Register */
-diff -purN linux_2.6.24_org/kernel/power/console.c linux_2.6.24_olpc/kernel/power/console.c
---- linux_2.6.24_org/kernel/power/console.c    2008-02-15 20:12:34.000000000 +0000
-+++ linux_2.6.24_olpc/kernel/power/console.c   2008-02-15 19:00:00.000000000 +0000
+Index: linux-2.6.24.7/kernel/power/console.c
+===================================================================
+--- linux-2.6.24.7.orig/kernel/power/console.c
++++ linux-2.6.24.7/kernel/power/console.c
 @@ -9,7 +9,7 @@
  #include <linux/console.h>
  #include "power.h"
@@ -9629,9 +9714,10 @@ diff -purN linux_2.6.24_org/kernel/power/console.c linux_2.6.24_olpc/kernel/powe
  #define SUSPEND_CONSOLE       (MAX_NR_CONSOLES-1)
  
  static int orig_fgconsole, orig_kmsg;
-diff -purN linux_2.6.24_org/kernel/power/Kconfig linux_2.6.24_olpc/kernel/power/Kconfig
---- linux_2.6.24_org/kernel/power/Kconfig      2008-02-15 20:12:34.000000000 +0000
-+++ linux_2.6.24_olpc/kernel/power/Kconfig     2008-02-15 19:00:00.000000000 +0000
+Index: linux-2.6.24.7/kernel/power/Kconfig
+===================================================================
+--- linux-2.6.24.7.orig/kernel/power/Kconfig
++++ linux-2.6.24.7/kernel/power/Kconfig
 @@ -37,9 +37,22 @@ config PM_DEBUG
        code. This is helpful when debugging and reporting PM bugs, like
        suspend support.
@@ -9656,9 +9742,10 @@ diff -purN linux_2.6.24_org/kernel/power/Kconfig linux_2.6.24_olpc/kernel/power/
        default n
        ---help---
        This option enables verbose messages from the Power Management code.
-diff -purN linux_2.6.24_org/kernel/power/main.c linux_2.6.24_olpc/kernel/power/main.c
---- linux_2.6.24_org/kernel/power/main.c       2008-02-15 20:12:34.000000000 +0000
-+++ linux_2.6.24_olpc/kernel/power/main.c      2008-02-15 19:00:00.000000000 +0000
+Index: linux-2.6.24.7/kernel/power/main.c
+===================================================================
+--- linux-2.6.24.7.orig/kernel/power/main.c
++++ linux-2.6.24.7/kernel/power/main.c
 @@ -76,11 +76,13 @@ static int suspend_prepare(void)
        if (!suspend_ops || !suspend_ops->enter)
                return -EPERM;
@@ -9673,9 +9760,10 @@ diff -purN linux_2.6.24_org/kernel/power/main.c linux_2.6.24_olpc/kernel/power/m
  
        if (freeze_processes()) {
                error = -EAGAIN;
-diff -purN linux_2.6.24_org/scripts/kconfig/conf.c linux_2.6.24_olpc/scripts/kconfig/conf.c
---- linux_2.6.24_org/scripts/kconfig/conf.c    2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/conf.c   2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/conf.c
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/conf.c
++++ linux-2.6.24.7/scripts/kconfig/conf.c
 @@ -22,6 +22,7 @@ enum {
        ask_new,
        ask_silent,
@@ -9791,9 +9879,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/conf.c linux_2.6.24_olpc/scripts/kco
                fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
                return 1;
        }
-diff -purN linux_2.6.24_org/scripts/kconfig/confdata.c linux_2.6.24_olpc/scripts/kconfig/confdata.c
---- linux_2.6.24_org/scripts/kconfig/confdata.c        2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/confdata.c       2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/confdata.c
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/confdata.c
++++ linux-2.6.24.7/scripts/kconfig/confdata.c
 @@ -393,7 +393,7 @@ int conf_read(const char *name)
        return 0;
  }
@@ -9817,9 +9906,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/confdata.c linux_2.6.24_olpc/scripts
  
        sym_set_change_count(0);
  
-diff -purN linux_2.6.24_org/scripts/kconfig/gconf.c linux_2.6.24_olpc/scripts/kconfig/gconf.c
---- linux_2.6.24_org/scripts/kconfig/gconf.c   2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/gconf.c  2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/gconf.c
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/gconf.c
++++ linux-2.6.24.7/scripts/kconfig/gconf.c
 @@ -621,7 +621,7 @@ void on_load1_activate(GtkMenuItem * men
  
  void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
@@ -9838,9 +9928,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/gconf.c linux_2.6.24_olpc/scripts/kc
                text_insert_msg(_("Error"), _("Unable to save configuration !"));
  
        gtk_widget_destroy(GTK_WIDGET(user_data));
-diff -purN linux_2.6.24_org/scripts/kconfig/lkc_proto.h linux_2.6.24_olpc/scripts/kconfig/lkc_proto.h
---- linux_2.6.24_org/scripts/kconfig/lkc_proto.h       2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/lkc_proto.h      2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/lkc_proto.h
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/lkc_proto.h
++++ linux-2.6.24.7/scripts/kconfig/lkc_proto.h
 @@ -3,7 +3,7 @@
  P(conf_parse,void,(const char *name));
  P(conf_read,int,(const char *name));
@@ -9850,9 +9941,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/lkc_proto.h linux_2.6.24_olpc/script
  P(conf_write_autoconf,int,(void));
  P(conf_get_changed,bool,(void));
  P(conf_set_changed_callback, void,(void (*fn)(void)));
-diff -purN linux_2.6.24_org/scripts/kconfig/Makefile linux_2.6.24_olpc/scripts/kconfig/Makefile
---- linux_2.6.24_org/scripts/kconfig/Makefile  2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/Makefile 2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/Makefile
++++ linux-2.6.24.7/scripts/kconfig/Makefile
 @@ -69,6 +69,9 @@ endif
  %_defconfig: $(obj)/conf
        $(Q)$< -D arch/$(SRCARCH)/configs/$@ $(Kconfig)
@@ -9863,10 +9955,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/Makefile linux_2.6.24_olpc/scripts/k
  # Help text used by make help
  help:
        @echo  '  config          - Update current config utilising a line-oriented program'
-Binary files linux_2.6.24_org/scripts/kconfig/mconf and linux_2.6.24_olpc/scripts/kconfig/mconf differ
-diff -purN linux_2.6.24_org/scripts/kconfig/mconf.c linux_2.6.24_olpc/scripts/kconfig/mconf.c
---- linux_2.6.24_org/scripts/kconfig/mconf.c   2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/mconf.c  2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/mconf.c
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/mconf.c
++++ linux-2.6.24.7/scripts/kconfig/mconf.c
 @@ -885,7 +885,7 @@ static void conf_save(void)
                case 0:
                        if (!dialog_input_result[0])
@@ -9885,9 +9977,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/mconf.c linux_2.6.24_olpc/scripts/kc
                        fprintf(stderr, _("\n\n"
                                "Error during writing of the kernel configuration.\n"
                                "Your kernel configuration changes were NOT saved."
-diff -purN linux_2.6.24_org/scripts/kconfig/qconf.cc linux_2.6.24_olpc/scripts/kconfig/qconf.cc
---- linux_2.6.24_org/scripts/kconfig/qconf.cc  2008-02-15 20:10:15.000000000 +0000
-+++ linux_2.6.24_olpc/scripts/kconfig/qconf.cc 2008-02-15 18:57:09.000000000 +0000
+Index: linux-2.6.24.7/scripts/kconfig/qconf.cc
+===================================================================
+--- linux-2.6.24.7.orig/scripts/kconfig/qconf.cc
++++ linux-2.6.24.7/scripts/kconfig/qconf.cc
 @@ -1458,7 +1458,7 @@ void ConfigMainWindow::loadConfig(void)
  
  void ConfigMainWindow::saveConfig(void)
@@ -9915,9 +10008,10 @@ diff -purN linux_2.6.24_org/scripts/kconfig/qconf.cc linux_2.6.24_olpc/scripts/k
        case QMessageBox::No:
                e->accept();
                break;
-diff -purN linux_2.6.24_org/sound/pci/ac97/ac97_patch.c linux_2.6.24_olpc/sound/pci/ac97/ac97_patch.c
---- linux_2.6.24_org/sound/pci/ac97/ac97_patch.c       2008-02-15 20:10:24.000000000 +0000
-+++ linux_2.6.24_olpc/sound/pci/ac97/ac97_patch.c      2008-02-15 18:57:24.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/ac97/ac97_patch.c
+===================================================================
+--- linux-2.6.24.7.orig/sound/pci/ac97/ac97_patch.c
++++ linux-2.6.24.7/sound/pci/ac97/ac97_patch.c
 @@ -2029,8 +2029,9 @@ static const struct snd_kcontrol_new snd
                .get = snd_ac97_ad1888_lohpsel_get,
                .put = snd_ac97_ad1888_lohpsel_put
@@ -9930,9 +10024,10 @@ diff -purN linux_2.6.24_org/sound/pci/ac97/ac97_patch.c linux_2.6.24_olpc/sound/
        AC97_SINGLE("Spread Front to Surround and Center/LFE", AC97_AD_MISC, 7, 1, 0),
        {
                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.c linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio.c
---- linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.c       2008-02-15 20:10:23.000000000 +0000
-+++ linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio.c      2008-02-15 18:57:23.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio.c
+===================================================================
+--- linux-2.6.24.7.orig/sound/pci/cs5535audio/cs5535audio.c
++++ linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio.c
 @@ -145,7 +145,7 @@ static unsigned short snd_cs5535audio_ac
        return snd_cs5535audio_codec_read(cs5535au, reg);
  }
@@ -9971,9 +10066,10 @@ diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.c linux_2.6.24_olp
        return 0;
  }
  
-diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.h linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio.h
---- linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.h       2008-02-15 20:10:23.000000000 +0000
-+++ linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio.h      2008-02-15 18:57:23.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio.h
+===================================================================
+--- linux-2.6.24.7.orig/sound/pci/cs5535audio/cs5535audio.h
++++ linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio.h
 @@ -78,6 +78,7 @@ struct cs5535audio_dma {
        unsigned int buf_addr, buf_bytes;
        unsigned int period_bytes, periods;
@@ -10004,9 +10100,10 @@ diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio.h linux_2.6.24_olp
  int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535audio);
  
  #endif /* __SOUND_CS5535AUDIO_H */
-diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_olpc.c linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio_olpc.c
---- linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_olpc.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio_olpc.c 2008-02-15 18:57:23.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio_olpc.c
+===================================================================
+--- /dev/null
++++ linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio_olpc.c
 @@ -0,0 +1,110 @@
 +#include <sound/driver.h>
 +#include <sound/core.h>
@@ -10118,9 +10215,10 @@ diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_olpc.c linux_2.6.2
 +      return snd_ctl_add(card, snd_ctl_new1(&snd_cs5535audio_controls,
 +                      ac97->private_data));
 +}
-diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_pcm.c linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio_pcm.c
---- linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_pcm.c   2008-02-15 20:10:23.000000000 +0000
-+++ linux_2.6.24_olpc/sound/pci/cs5535audio/cs5535audio_pcm.c  2008-02-15 18:57:23.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio_pcm.c
+===================================================================
+--- linux-2.6.24.7.orig/sound/pci/cs5535audio/cs5535audio_pcm.c
++++ linux-2.6.24.7/sound/pci/cs5535audio/cs5535audio_pcm.c
 @@ -259,6 +259,9 @@ static int snd_cs5535audio_hw_params(str
        err = cs5535audio_build_dma_packets(cs5535au, dma, substream,
                                            params_periods(hw_params),
@@ -10186,9 +10284,10 @@ diff -purN linux_2.6.24_org/sound/pci/cs5535audio/cs5535audio_pcm.c linux_2.6.24
        return 0;
  }
  
-diff -purN linux_2.6.24_org/sound/pci/cs5535audio/Makefile linux_2.6.24_olpc/sound/pci/cs5535audio/Makefile
---- linux_2.6.24_org/sound/pci/cs5535audio/Makefile    2008-02-15 20:10:23.000000000 +0000
-+++ linux_2.6.24_olpc/sound/pci/cs5535audio/Makefile   2008-02-15 18:57:23.000000000 +0000
+Index: linux-2.6.24.7/sound/pci/cs5535audio/Makefile
+===================================================================
+--- linux-2.6.24.7.orig/sound/pci/cs5535audio/Makefile
++++ linux-2.6.24.7/sound/pci/cs5535audio/Makefile
 @@ -5,5 +5,9 @@
  snd-cs5535audio-y := cs5535audio.o cs5535audio_pcm.o
  snd-cs5535audio-$(CONFIG_PM) += cs5535audio_pm.o
index 0d163e6f2b1e2e069344d270aa2718bb5c3f263c..4607aeda68fb10a532fd6116344a451dcb0e71e7 100644 (file)
@@ -1,7 +1,7 @@
-diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
-index 97b64d7..92ceab7 100644
---- a/arch/i386/Kconfig
-+++ b/arch/i386/Kconfig
+Index: linux-2.6.23.17/arch/i386/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/Kconfig
++++ linux-2.6.23.17/arch/i386/Kconfig
 @@ -796,6 +796,15 @@ config SECCOMP
  
          If unsure, say Y. Only embedded should say N here.
@@ -93,10 +93,10 @@ index 97b64d7..92ceab7 100644
  source "drivers/pcmcia/Kconfig"
  
  source "drivers/pci/hotplug/Kconfig"
-diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
-index 9d33b00..2e2cf42 100644
---- a/arch/i386/kernel/Makefile
-+++ b/arch/i386/kernel/Makefile
+Index: linux-2.6.23.17/arch/i386/kernel/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/kernel/Makefile
++++ linux-2.6.23.17/arch/i386/kernel/Makefile
 @@ -39,13 +39,17 @@ obj-$(CONFIG_VM86)         += vm86.o
  obj-$(CONFIG_EARLY_PRINTK)    += early_printk.o
  obj-$(CONFIG_HPET_TIMER)      += hpet.o
@@ -116,11 +116,11 @@ index 9d33b00..2e2cf42 100644
  
  # vsyscall.o contains the vsyscall DSO images as __initdata.
  # We must build both images before we can assemble it.
-diff --git a/arch/i386/kernel/geode.c b/arch/i386/kernel/geode.c
-index 41e8aec..637e301 100644
---- a/arch/i386/kernel/geode.c
-+++ b/arch/i386/kernel/geode.c
-@@ -145,10 +145,14 @@ EXPORT_SYMBOL_GPL(geode_gpio_setup_event);
+Index: linux-2.6.23.17/arch/i386/kernel/geode.c
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/kernel/geode.c
++++ linux-2.6.23.17/arch/i386/kernel/geode.c
+@@ -145,10 +145,14 @@ EXPORT_SYMBOL_GPL(geode_gpio_setup_event
  
  static int __init geode_southbridge_init(void)
  {
@@ -135,10 +135,10 @@ index 41e8aec..637e301 100644
        return 0;
  }
  
-diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S
-index 8f03821..3176280 100644
---- a/arch/i386/kernel/head.S
-+++ b/arch/i386/kernel/head.S
+Index: linux-2.6.23.17/arch/i386/kernel/head.S
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/kernel/head.S
++++ linux-2.6.23.17/arch/i386/kernel/head.S
 @@ -117,8 +117,34 @@ ENTRY(startup_32)
        movl $(COMMAND_LINE_SIZE/4),%ecx
        rep
@@ -159,7 +159,7 @@ index 8f03821..3176280 100644
 +
 +      mov 0x8(%ebp), %eax     /* Save callback address */
 +      mov %eax, call_firmware - __PAGE_OFFSET
++
 +      /* Copy the OFW pdir into swapper_pg_dir */
 +      movl %esi, %edx         /* save %esi */
 +      movl $(swapper_pg_dir - __PAGE_OFFSET), %edi
@@ -169,7 +169,7 @@ index 8f03821..3176280 100644
 +      movsl
 +      movl %edx, %esi         /* restore %esi */
 +#endif
-+
 +1:
  /*
   * Initialize page tables.  This creates a PDE and a set of page
@@ -182,12 +182,10 @@ index 8f03821..3176280 100644
  page_pde_offset = (__PAGE_OFFSET >> 20);
  
        movl $(pg0 - __PAGE_OFFSET), %edi
-       
-
-diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
-index d474cd6..c4b26ba 100644
---- a/arch/i386/kernel/setup.c
-+++ b/arch/i386/kernel/setup.c
+Index: linux-2.6.23.17/arch/i386/kernel/setup.c
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/kernel/setup.c
++++ linux-2.6.23.17/arch/i386/kernel/setup.c
 @@ -362,8 +362,10 @@ void __init zone_sizes_init(void)
  {
        unsigned long max_zone_pfns[MAX_NR_ZONES];
@@ -199,7 +197,7 @@ index d474cd6..c4b26ba 100644
        max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
  #ifdef CONFIG_HIGHMEM
        max_zone_pfns[ZONE_HIGHMEM] = highend_pfn;
-@@ -428,6 +430,9 @@ void __init setup_bootmem_allocator(void)
+@@ -428,6 +430,9 @@ void __init setup_bootmem_allocator(void
         */
        acpi_reserve_bootmem();
  #endif
@@ -209,10 +207,10 @@ index d474cd6..c4b26ba 100644
  #ifdef CONFIG_X86_FIND_SMP_CONFIG
        /*
         * Find and reserve possible boot-time SMP configuration:
-diff --git a/arch/i386/pci/Makefile b/arch/i386/pci/Makefile
-index 44650e0..1250a7b 100644
---- a/arch/i386/pci/Makefile
-+++ b/arch/i386/pci/Makefile
+Index: linux-2.6.23.17/arch/i386/pci/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/pci/Makefile
++++ linux-2.6.23.17/arch/i386/pci/Makefile
 @@ -3,6 +3,7 @@ obj-y                          := i386.o init.o
  obj-$(CONFIG_PCI_BIOS)                += pcbios.o
  obj-$(CONFIG_PCI_MMCONFIG)    += mmconfig.o direct.o mmconfig-shared.o
@@ -221,10 +219,10 @@ index 44650e0..1250a7b 100644
  
  pci-y                         := fixup.o
  pci-$(CONFIG_ACPI)            += acpi.o
-diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c
-index 3de9f9b..0f5f7dd 100644
---- a/arch/i386/pci/init.c
-+++ b/arch/i386/pci/init.c
+Index: linux-2.6.23.17/arch/i386/pci/init.c
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/pci/init.c
++++ linux-2.6.23.17/arch/i386/pci/init.c
 @@ -14,6 +14,9 @@ static __init int pci_access_init(void)
  #ifdef CONFIG_PCI_MMCONFIG
        pci_mmcfg_init(type);
@@ -235,10 +233,10 @@ index 3de9f9b..0f5f7dd 100644
        if (raw_pci_ops)
                return 0;
  #ifdef CONFIG_PCI_BIOS
-diff --git a/arch/i386/pci/pci.h b/arch/i386/pci/pci.h
-index 8c66f27..a67e617 100644
---- a/arch/i386/pci/pci.h
-+++ b/arch/i386/pci/pci.h
+Index: linux-2.6.23.17/arch/i386/pci/pci.h
+===================================================================
+--- linux-2.6.23.17.orig/arch/i386/pci/pci.h
++++ linux-2.6.23.17/arch/i386/pci/pci.h
 @@ -93,6 +93,7 @@ extern void pci_direct_init(int type);
  extern void pci_pcbios_init(void);
  extern void pci_mmcfg_init(int type);
@@ -247,10 +245,10 @@ index 8c66f27..a67e617 100644
  
  /* pci-mmconfig.c */
  
-diff --git a/drivers/Makefile b/drivers/Makefile
-index f0878b2..c033d30 100644
---- a/drivers/Makefile
-+++ b/drivers/Makefile
+Index: linux-2.6.23.17/drivers/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/Makefile
++++ linux-2.6.23.17/drivers/Makefile
 @@ -23,6 +23,8 @@ obj-y                                += char/
  
  obj-$(CONFIG_CONNECTOR)               += connector/
@@ -260,10 +258,10 @@ index f0878b2..c033d30 100644
  # i810fb and intelfb depend on char/agp/
  obj-$(CONFIG_FB_I810)           += video/i810/
  obj-$(CONFIG_FB_INTEL)          += video/intelfb/
-diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c
-index c6f6f42..55ae42c 100644
---- a/drivers/char/vt_ioctl.c
-+++ b/drivers/char/vt_ioctl.c
+Index: linux-2.6.23.17/drivers/char/vt_ioctl.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/char/vt_ioctl.c
++++ linux-2.6.23.17/drivers/char/vt_ioctl.c
 @@ -37,6 +37,9 @@
  char vt_dont_switch;
  extern struct tty_driver *console_driver;
@@ -274,7 +272,7 @@ index c6f6f42..55ae42c 100644
  #define VT_IS_IN_USE(i)       (console_driver->ttys[i] && console_driver->ttys[i]->count)
  #define VT_BUSY(i)    (VT_IS_IN_USE(i) || i == fg_console || vc_cons[i].d == sel_cons)
  
-@@ -491,6 +494,14 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
+@@ -491,6 +494,14 @@ int vt_ioctl(struct tty_struct *tty, str
                vc->vc_mode = (unsigned char) arg;
                if (console != fg_console)
                        return 0;
@@ -289,11 +287,11 @@ index c6f6f42..55ae42c 100644
                /*
                 * explicitly blank/unblank the screen if switching modes
                 */
-diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
-index e6c4a2b..874d623 100644
---- a/drivers/i2c/busses/scx200_acb.c
-+++ b/drivers/i2c/busses/scx200_acb.c
-@@ -46,6 +46,10 @@ static int base[MAX_DEVICES] = { 0x820, 0x840 };
+Index: linux-2.6.23.17/drivers/i2c/busses/scx200_acb.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/i2c/busses/scx200_acb.c
++++ linux-2.6.23.17/drivers/i2c/busses/scx200_acb.c
+@@ -46,6 +46,10 @@ static int base[MAX_DEVICES] = { 0x820, 
  module_param_array(base, int, NULL, 0);
  MODULE_PARM_DESC(base, "Base addresses for the ACCESS.bus controllers");
  
@@ -312,7 +310,7 @@ index e6c4a2b..874d623 100644
  
  /************************************************************************/
  
-@@ -392,11 +397,13 @@ static __init int scx200_acb_probe(struct scx200_acb_iface *iface)
+@@ -392,11 +397,13 @@ static __init int scx200_acb_probe(struc
  {
        u8 val;
  
@@ -330,10 +328,10 @@ index e6c4a2b..874d623 100644
                pr_debug(NAME ": ACBCTL2 readback failed\n");
                return -ENXIO;
        }
-diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
-index 41fc3d0..a15e7a9 100644
---- a/drivers/input/keyboard/atkbd.c
-+++ b/drivers/input/keyboard/atkbd.c
+Index: linux-2.6.23.17/drivers/input/keyboard/atkbd.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/keyboard/atkbd.c
++++ linux-2.6.23.17/drivers/input/keyboard/atkbd.c
 @@ -63,12 +63,25 @@ static int atkbd_extra;
  module_param_named(extra, atkbd_extra, bool, 0);
  MODULE_PARM_DESC(extra, "Enable extra LEDs and keys on IBM RapidAcces, EzKey and similar keyboards");
@@ -361,7 +359,7 @@ index 41fc3d0..a15e7a9 100644
  
  #ifdef CONFIG_KEYBOARD_ATKBD_HP_KEYCODES
  
-@@ -87,11 +100,17 @@ static unsigned char atkbd_set2_keycode[512] = {
+@@ -87,11 +100,17 @@ static unsigned char atkbd_set2_keycode[
         82, 83, 80, 76, 77, 72,  1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
  
          0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -381,7 +379,7 @@ index 41fc3d0..a15e7a9 100644
          0,  0,  0,  0,  0,  0,  0,  0,  0,107,  0,105,102,  0,  0,112,
        110,111,108,112,106,103,  0,119,  0,118,109,  0, 99,104,119,  0,
  
-@@ -150,19 +169,6 @@ static unsigned char atkbd_unxlate_table[128] = {
+@@ -150,19 +169,6 @@ static unsigned char atkbd_unxlate_table
  #define ATKBD_RET_HANGEUL     0xf2
  #define ATKBD_RET_ERR         0xff
  
@@ -401,7 +399,7 @@ index 41fc3d0..a15e7a9 100644
  #define ATKBD_LED_EVENT_BIT   0
  #define ATKBD_REP_EVENT_BIT   1
  
-@@ -174,7 +180,7 @@ static unsigned char atkbd_unxlate_table[128] = {
+@@ -174,7 +180,7 @@ static unsigned char atkbd_unxlate_table
  #define ATKBD_XL_HANJA                0x20
  
  static struct {
@@ -419,7 +417,7 @@ index 41fc3d0..a15e7a9 100644
        unsigned char set;
        unsigned char translated;
        unsigned char extra;
-@@ -351,7 +357,7 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
+@@ -351,7 +357,7 @@ static irqreturn_t atkbd_interrupt(struc
        unsigned int code = data;
        int scroll = 0, hscroll = 0, click = -1, add_release_event = 0;
        int value;
@@ -428,7 +426,7 @@ index 41fc3d0..a15e7a9 100644
  
  #ifdef ATKBD_DEBUG
        printk(KERN_DEBUG "atkbd.c: Received %02x flags %02x\n", data, flags);
-@@ -856,9 +862,11 @@ static void atkbd_set_keycode_table(struct atkbd *atkbd)
+@@ -856,9 +862,11 @@ static void atkbd_set_keycode_table(stru
                                                atkbd->keycode[i | 0x80] = atkbd_scroll_keys[j].keycode;
                }
        } else if (atkbd->set == 3) {
@@ -442,7 +440,7 @@ index 41fc3d0..a15e7a9 100644
  
                if (atkbd->scroll)
                        for (i = 0; i < ARRAY_SIZE(atkbd_scroll_keys); i++)
-@@ -925,8 +933,8 @@ static void atkbd_set_device_attrs(struct atkbd *atkbd)
+@@ -925,8 +933,8 @@ static void atkbd_set_device_attrs(struc
        }
  
        input_dev->keycode = atkbd->keycode;
@@ -453,7 +451,7 @@ index 41fc3d0..a15e7a9 100644
  
        for (i = 0; i < 512; i++)
                if (atkbd->keycode[i] && atkbd->keycode[i] < ATKBD_SPECIAL)
-@@ -1017,6 +1025,10 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv)
+@@ -1017,6 +1025,10 @@ static int atkbd_connect(struct serio *s
        return err;
  }
  
@@ -464,7 +462,7 @@ index 41fc3d0..a15e7a9 100644
  /*
   * atkbd_reconnect() tries to restore keyboard into a sane state and is
   * most likely called on resume.
-@@ -1027,6 +1039,12 @@ static int atkbd_reconnect(struct serio *serio)
+@@ -1027,6 +1039,12 @@ static int atkbd_reconnect(struct serio 
        struct atkbd *atkbd = serio_get_drvdata(serio);
        struct serio_driver *drv = serio->drv;
  
@@ -477,10 +475,10 @@ index 41fc3d0..a15e7a9 100644
        if (!atkbd || !drv) {
                printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n");
                return -1;
-diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
-index 7bbea09..6febbc5 100644
---- a/drivers/input/mouse/Kconfig
-+++ b/drivers/input/mouse/Kconfig
+Index: linux-2.6.23.17/drivers/input/mouse/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/mouse/Kconfig
++++ linux-2.6.23.17/drivers/input/mouse/Kconfig
 @@ -96,6 +96,16 @@ config MOUSE_PS2_TOUCHKIT
  
          If unsure, say N.
@@ -498,19 +496,19 @@ index 7bbea09..6febbc5 100644
  config MOUSE_SERIAL
        tristate "Serial mouse"
        select SERIO
-diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
-index 9e6e363..f4654ce 100644
---- a/drivers/input/mouse/Makefile
-+++ b/drivers/input/mouse/Makefile
-@@ -24,3 +24,4 @@ psmouse-$(CONFIG_MOUSE_PS2_LOGIPS2PP)        += logips2pp.o
+Index: linux-2.6.23.17/drivers/input/mouse/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/mouse/Makefile
++++ linux-2.6.23.17/drivers/input/mouse/Makefile
+@@ -24,3 +24,4 @@ psmouse-$(CONFIG_MOUSE_PS2_LOGIPS2PP)        +=
  psmouse-$(CONFIG_MOUSE_PS2_LIFEBOOK)  += lifebook.o
  psmouse-$(CONFIG_MOUSE_PS2_TRACKPOINT)        += trackpoint.o
  psmouse-$(CONFIG_MOUSE_PS2_TOUCHKIT)  += touchkit_ps2.o
 +psmouse-$(CONFIG_MOUSE_PS2_OLPC)      += olpc.o
-diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
-index b9f0fb2..edcdb68 100644
---- a/drivers/input/mouse/psmouse-base.c
-+++ b/drivers/input/mouse/psmouse-base.c
+Index: linux-2.6.23.17/drivers/input/mouse/psmouse-base.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/mouse/psmouse-base.c
++++ linux-2.6.23.17/drivers/input/mouse/psmouse-base.c
 @@ -26,6 +26,7 @@
  #include "synaptics.h"
  #include "logips2pp.h"
@@ -519,7 +517,7 @@ index b9f0fb2..edcdb68 100644
  #include "lifebook.h"
  #include "trackpoint.h"
  #include "touchkit_ps2.h"
-@@ -103,7 +104,7 @@ static struct attribute_group psmouse_attribute_group = {
+@@ -103,7 +104,7 @@ static struct attribute_group psmouse_at
   */
  static DEFINE_MUTEX(psmouse_mutex);
  
@@ -528,7 +526,7 @@ index b9f0fb2..edcdb68 100644
  
  struct psmouse_protocol {
        enum psmouse_type type;
-@@ -320,7 +321,7 @@ static irqreturn_t psmouse_interrupt(struct serio *serio,
+@@ -320,7 +321,7 @@ static irqreturn_t psmouse_interrupt(str
                        goto out;
                }
  
@@ -537,7 +535,7 @@ index b9f0fb2..edcdb68 100644
                        __psmouse_set_state(psmouse, PSMOUSE_IGNORE);
                        serio_reconnect(serio);
                        goto out;
-@@ -631,8 +632,21 @@ static int psmouse_extensions(struct psmouse *psmouse,
+@@ -631,8 +632,21 @@ static int psmouse_extensions(struct psm
                }
        }
  
@@ -559,7 +557,7 @@ index b9f0fb2..edcdb68 100644
                if (genius_detect(psmouse, set_properties) == 0)
                        return PSMOUSE_GENPS;
  
-@@ -762,6 +776,14 @@ static const struct psmouse_protocol psmouse_protocols[] = {
+@@ -762,6 +776,14 @@ static const struct psmouse_protocol psm
                .detect         = touchkit_ps2_detect,
        },
  #endif
@@ -574,10 +572,10 @@ index b9f0fb2..edcdb68 100644
        {
                .type           = PSMOUSE_CORTRON,
                .name           = "CortronPS/2",
-diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
-index 1317bdd..c4857df 100644
---- a/drivers/input/mouse/psmouse.h
-+++ b/drivers/input/mouse/psmouse.h
+Index: linux-2.6.23.17/drivers/input/mouse/psmouse.h
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/mouse/psmouse.h
++++ linux-2.6.23.17/drivers/input/mouse/psmouse.h
 @@ -89,6 +89,7 @@ enum psmouse_type {
        PSMOUSE_TRACKPOINT,
        PSMOUSE_TOUCHKIT_PS2,
@@ -586,7 +584,7 @@ index 1317bdd..c4857df 100644
        PSMOUSE_AUTO            /* This one should always be last */
  };
  
-@@ -96,6 +97,7 @@ int psmouse_sliced_command(struct psmouse *psmouse, unsigned char command);
+@@ -96,6 +97,7 @@ int psmouse_sliced_command(struct psmous
  int psmouse_reset(struct psmouse *psmouse);
  void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
  
@@ -594,11 +592,11 @@ index 1317bdd..c4857df 100644
  
  struct psmouse_attribute {
        struct device_attribute dattr;
-diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
-index c2eea27..3510726 100644
---- a/drivers/input/serio/i8042.c
-+++ b/drivers/input/serio/i8042.c
-@@ -868,6 +868,11 @@ static long i8042_panic_blink(long count)
+Index: linux-2.6.23.17/drivers/input/serio/i8042.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/serio/i8042.c
++++ linux-2.6.23.17/drivers/input/serio/i8042.c
+@@ -868,6 +868,11 @@ static long i8042_panic_blink(long count
  #undef DELAY
  
  #ifdef CONFIG_PM
@@ -610,7 +608,7 @@ index c2eea27..3510726 100644
  /*
   * Here we try to restore the original BIOS settings. We only want to
   * do that once, when we really suspend, not when we taking memory
-@@ -878,8 +883,15 @@ static long i8042_panic_blink(long count)
+@@ -878,8 +883,15 @@ static long i8042_panic_blink(long count
  static int i8042_suspend(struct platform_device *dev, pm_message_t state)
  {
        if (dev->dev.power.power_state.event != state.event) {
@@ -626,7 +624,7 @@ index c2eea27..3510726 100644
  
                dev->dev.power.power_state = state;
        }
-@@ -902,9 +914,15 @@ static int i8042_resume(struct platform_device *dev)
+@@ -902,9 +914,15 @@ static int i8042_resume(struct platform_
        if (dev->dev.power.power_state.event == PM_EVENT_ON)
                return 0;
  
@@ -642,11 +640,11 @@ index c2eea27..3510726 100644
  
        error = i8042_controller_selftest();
        if (error)
-diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
-index 372ca49..c9e5308 100644
---- a/drivers/input/serio/serio.c
-+++ b/drivers/input/serio/serio.c
-@@ -916,11 +916,22 @@ static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buf
+Index: linux-2.6.23.17/drivers/input/serio/serio.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/input/serio/serio.c
++++ linux-2.6.23.17/drivers/input/serio/serio.c
+@@ -916,11 +916,22 @@ static int serio_uevent(struct device *d
  #endif /* CONFIG_HOTPLUG */
  
  #ifdef CONFIG_PM
@@ -669,10 +667,10 @@ index 372ca49..c9e5308 100644
  
                dev->power.power_state = state;
        }
-diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
-index ef53618..47881d2 100644
---- a/drivers/media/video/cafe_ccic.c
-+++ b/drivers/media/video/cafe_ccic.c
+Index: linux-2.6.23.17/drivers/media/video/cafe_ccic.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/media/video/cafe_ccic.c
++++ linux-2.6.23.17/drivers/media/video/cafe_ccic.c
 @@ -63,13 +63,13 @@ MODULE_SUPPORTED_DEVICE("Video");
   */
  
@@ -694,7 +692,7 @@ index ef53618..47881d2 100644
  
  static int n_dma_bufs = 3;
  module_param(n_dma_bufs, uint, 0644);
-@@ -370,6 +370,10 @@ static int cafe_smbus_write_data(struct cafe_camera *cam,
+@@ -370,6 +370,10 @@ static int cafe_smbus_write_data(struct 
        rval = value | ((command << TWSIC1_ADDR_SHIFT) & TWSIC1_ADDR);
        cafe_reg_write(cam, REG_TWSIC1, rval);
        spin_unlock_irqrestore(&cam->dev_lock, flags);
@@ -705,7 +703,7 @@ index ef53618..47881d2 100644
  
        /*
         * Time to wait for the write to complete.  THIS IS A RACY
-@@ -1503,7 +1507,7 @@ static int cafe_v4l_release(struct inode *inode, struct file *filp)
+@@ -1503,7 +1507,7 @@ static int cafe_v4l_release(struct inode
        }
        if (cam->users == 0) {
                cafe_ctlr_power_down(cam);
@@ -714,7 +712,7 @@ index ef53618..47881d2 100644
                        cafe_free_dma_bufs(cam);
        }
        mutex_unlock(&cam->s_mutex);
-@@ -2162,7 +2166,7 @@ static int cafe_pci_probe(struct pci_dev *pdev,
+@@ -2162,7 +2166,7 @@ static int cafe_pci_probe(struct pci_dev
        /*
         * If so requested, try to get our DMA buffers now.
         */
@@ -723,10 +721,10 @@ index ef53618..47881d2 100644
                if (cafe_alloc_dma_bufs(cam, 1))
                        cam_warn(cam, "Unable to alloc DMA buffers at load"
                                        " will try again later.");
-diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
-index 73e248f..f7afde3 100644
---- a/drivers/misc/Kconfig
-+++ b/drivers/misc/Kconfig
+Index: linux-2.6.23.17/drivers/misc/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/misc/Kconfig
++++ linux-2.6.23.17/drivers/misc/Kconfig
 @@ -202,5 +202,10 @@ config THINKPAD_ACPI_BAY
  
          If you are not sure, say Y here.
@@ -738,11 +736,11 @@ index 73e248f..f7afde3 100644
 +        The driver supports both read as well as write commands.
  
  endif # MISC_DEVICES
-diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
-index 20a7d89..9abbb58 100644
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -411,6 +411,12 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_data *data)
+Index: linux-2.6.23.17/drivers/mmc/host/sdhci.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mmc/host/sdhci.c
++++ linux-2.6.23.17/drivers/mmc/host/sdhci.c
+@@ -411,6 +411,12 @@ static void sdhci_prepare_data(struct sd
                        break;
        }
  
@@ -755,7 +753,7 @@ index 20a7d89..9abbb58 100644
        if (count >= 0xF) {
                printk(KERN_WARNING "%s: Too large timeout requested!\n",
                        mmc_hostname(host->mmc));
-@@ -676,19 +682,17 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned short power)
+@@ -676,19 +682,17 @@ static void sdhci_set_power(struct sdhci
        if (!(host->chip->quirks & SDHCI_QUIRK_SINGLE_POWER_WRITE))
                writeb(0, host->ioaddr + SDHCI_POWER_CONTROL);
  
@@ -778,7 +776,7 @@ index 20a7d89..9abbb58 100644
                break;
        default:
                BUG();
-@@ -696,6 +700,10 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned short power)
+@@ -696,6 +700,10 @@ static void sdhci_set_power(struct sdhci
  
        writeb(pwr, host->ioaddr + SDHCI_POWER_CONTROL);
  
@@ -789,11 +787,11 @@ index 20a7d89..9abbb58 100644
  out:
        host->power = power;
  }
-diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
-index fbec8cd..8848e8a 100644
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -278,6 +278,14 @@ config SSFDC
+Index: linux-2.6.23.17/drivers/mtd/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/Kconfig
++++ linux-2.6.23.17/drivers/mtd/Kconfig
+@@ -288,6 +288,14 @@ config SSFDC
          This enables read only access to SmartMedia formatted NAND
          flash. You can mount it with FAT file system.
  
@@ -808,10 +806,10 @@ index fbec8cd..8848e8a 100644
  source "drivers/mtd/chips/Kconfig"
  
  source "drivers/mtd/maps/Kconfig"
-diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
-index 6d958a4..7f0b04b 100644
---- a/drivers/mtd/Makefile
-+++ b/drivers/mtd/Makefile
+Index: linux-2.6.23.17/drivers/mtd/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/Makefile
++++ linux-2.6.23.17/drivers/mtd/Makefile
 @@ -22,6 +22,7 @@ obj-$(CONFIG_NFTL)           += nftl.o
  obj-$(CONFIG_INFTL)           += inftl.o
  obj-$(CONFIG_RFD_FTL)         += rfd_ftl.o
@@ -820,11 +818,11 @@ index 6d958a4..7f0b04b 100644
  
  nftl-objs             := nftlcore.o nftlmount.o
  inftl-objs            := inftlcore.o inftlmount.o
-diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
-index 2f19fa7..39eff9f 100644
---- a/drivers/mtd/chips/cfi_cmdset_0001.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
-@@ -526,7 +526,7 @@ static int cfi_intelext_partition_fixup(struct mtd_info *mtd,
+Index: linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0001.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/chips/cfi_cmdset_0001.c
++++ linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0001.c
+@@ -526,7 +526,7 @@ static int cfi_intelext_partition_fixup(
        struct cfi_pri_intelext *extp = cfi->cmdset_priv;
  
        /*
@@ -833,7 +831,7 @@ index 2f19fa7..39eff9f 100644
         *
         * To support multiple partitions when available, we simply arrange
         * for each of them to have their own flchip structure even if they
-@@ -1780,7 +1780,7 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
+@@ -1781,7 +1781,7 @@ static int __xipram do_erase_oneblock(st
        return ret;
  }
  
@@ -842,7 +840,7 @@ index 2f19fa7..39eff9f 100644
  {
        unsigned long ofs, len;
        int ret;
-@@ -1930,7 +1930,7 @@ static int cfi_intelext_lock(struct mtd_info *mtd, loff_t ofs, size_t len)
+@@ -1931,7 +1931,7 @@ static int cfi_intelext_lock(struct mtd_
        printk(KERN_DEBUG "%s: lock status before, ofs=0x%08llx, len=0x%08X\n",
               __FUNCTION__, ofs, len);
        cfi_varsize_frob(mtd, do_printlockstatus_oneblock,
@@ -851,7 +849,7 @@ index 2f19fa7..39eff9f 100644
  #endif
  
        ret = cfi_varsize_frob(mtd, do_xxlock_oneblock,
-@@ -1940,7 +1940,7 @@ static int cfi_intelext_lock(struct mtd_info *mtd, loff_t ofs, size_t len)
+@@ -1941,7 +1941,7 @@ static int cfi_intelext_lock(struct mtd_
        printk(KERN_DEBUG "%s: lock status after, ret=%d\n",
               __FUNCTION__, ret);
        cfi_varsize_frob(mtd, do_printlockstatus_oneblock,
@@ -860,7 +858,7 @@ index 2f19fa7..39eff9f 100644
  #endif
  
        return ret;
-@@ -1954,7 +1954,7 @@ static int cfi_intelext_unlock(struct mtd_info *mtd, loff_t ofs, size_t len)
+@@ -1955,7 +1955,7 @@ static int cfi_intelext_unlock(struct mt
        printk(KERN_DEBUG "%s: lock status before, ofs=0x%08llx, len=0x%08X\n",
               __FUNCTION__, ofs, len);
        cfi_varsize_frob(mtd, do_printlockstatus_oneblock,
@@ -869,7 +867,7 @@ index 2f19fa7..39eff9f 100644
  #endif
  
        ret = cfi_varsize_frob(mtd, do_xxlock_oneblock,
-@@ -1964,7 +1964,7 @@ static int cfi_intelext_unlock(struct mtd_info *mtd, loff_t ofs, size_t len)
+@@ -1965,7 +1965,7 @@ static int cfi_intelext_unlock(struct mt
        printk(KERN_DEBUG "%s: lock status after, ret=%d\n",
               __FUNCTION__, ret);
        cfi_varsize_frob(mtd, do_printlockstatus_oneblock,
@@ -878,7 +876,7 @@ index 2f19fa7..39eff9f 100644
  #endif
  
        return ret;
-@@ -2255,7 +2255,7 @@ static void cfi_intelext_save_locks(struct mtd_info *mtd)
+@@ -2256,7 +2256,7 @@ static void cfi_intelext_save_locks(stru
                        adr = region->offset + block * len;
  
                        status = cfi_varsize_frob(mtd,
@@ -887,11 +885,11 @@ index 2f19fa7..39eff9f 100644
                        if (status)
                                set_bit(block, region->lockmap);
                        else
-diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
-index 1f64458..389acc6 100644
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -1609,7 +1609,7 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
+Index: linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/chips/cfi_cmdset_0002.c
++++ linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
+@@ -1617,7 +1617,7 @@ static int __xipram do_erase_oneblock(st
  }
  
  
@@ -900,10 +898,10 @@ index 1f64458..389acc6 100644
  {
        unsigned long ofs, len;
        int ret;
-diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
-index 58e561e..593e9d6 100644
---- a/drivers/mtd/chips/jedec_probe.c
-+++ b/drivers/mtd/chips/jedec_probe.c
+Index: linux-2.6.23.17/drivers/mtd/chips/jedec_probe.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/chips/jedec_probe.c
++++ linux-2.6.23.17/drivers/mtd/chips/jedec_probe.c
 @@ -70,6 +70,7 @@
  
  /* Fujitsu */
@@ -920,7 +918,7 @@ index 58e561e..593e9d6 100644
  #define M29W800DT     0x00D7
  #define M29W800DB     0x005B
  #define M29W160DT     0x22C4
-@@ -646,6 +648,23 @@ static const struct amd_flash_info jedec_table[] = {
+@@ -646,6 +648,23 @@ static const struct amd_flash_info jedec
                }
        }, {
                .mfr_id         = MANUFACTURER_FUJITSU,
@@ -944,7 +942,7 @@ index 58e561e..593e9d6 100644
                .dev_id         = MBM29LV650UE,
                .name           = "Fujitsu MBM29LV650UE",
                .uaddr          = {
-@@ -1510,6 +1529,23 @@ static const struct amd_flash_info jedec_table[] = {
+@@ -1510,6 +1529,23 @@ static const struct amd_flash_info jedec
                         ERASEINFO(0x1000,256)
                 }
  
@@ -968,10 +966,10 @@ index 58e561e..593e9d6 100644
         }, {
                .mfr_id         = MANUFACTURER_ST,      /* FIXME - CFI device? */
                .dev_id         = M29W800DT,
-diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig
-index ff642f8..b4ea64d 100644
---- a/drivers/mtd/devices/Kconfig
-+++ b/drivers/mtd/devices/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/devices/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/devices/Kconfig
++++ linux-2.6.23.17/drivers/mtd/devices/Kconfig
 @@ -69,12 +69,21 @@ config MTD_DATAFLASH26
          If you have such a board and such a DataFlash, say 'Y'.
  
@@ -998,10 +996,10 @@ index ff642f8..b4ea64d 100644
  
  config MTD_SLRAM
        tristate "Uncached system RAM"
-diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
-index 78c2511..98df5bc 100644
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
+Index: linux-2.6.23.17/drivers/mtd/devices/m25p80.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/devices/m25p80.c
++++ linux-2.6.23.17/drivers/mtd/devices/m25p80.c
 @@ -1,5 +1,5 @@
  /*
 - * MTD SPI driver for ST M25Pxx flash chips
@@ -1068,7 +1066,7 @@ index 78c2511..98df5bc 100644
        u8                      command[4];
  };
  
-@@ -150,8 +150,9 @@ static int wait_till_ready(struct m25p *flash)
+@@ -150,8 +150,9 @@ static int wait_till_ready(struct m25p *
   */
  static int erase_sector(struct m25p *flash, u32 offset)
  {
@@ -1080,7 +1078,7 @@ index 78c2511..98df5bc 100644
  
        /* Wait until finished previous write command. */
        if (wait_till_ready(flash))
-@@ -161,7 +162,7 @@ static int erase_sector(struct m25p *flash, u32 offset)
+@@ -161,7 +162,7 @@ static int erase_sector(struct m25p *fla
        write_enable(flash);
  
        /* Set up command buffer. */
@@ -1089,7 +1087,7 @@ index 78c2511..98df5bc 100644
        flash->command[1] = offset >> 16;
        flash->command[2] = offset >> 8;
        flash->command[3] = offset;
-@@ -201,13 +202,17 @@ static int m25p80_erase(struct mtd_info *mtd, struct erase_info *instr)
+@@ -201,13 +202,17 @@ static int m25p80_erase(struct mtd_info 
        addr = instr->addr;
        len = instr->len;
  
@@ -1109,7 +1107,7 @@ index 78c2511..98df5bc 100644
                        return -EIO;
                }
  
-@@ -215,7 +220,7 @@ static int m25p80_erase(struct mtd_info *mtd, struct erase_info *instr)
+@@ -215,7 +220,7 @@ static int m25p80_erase(struct mtd_info 
                len -= mtd->erasesize;
        }
  
@@ -1118,7 +1116,7 @@ index 78c2511..98df5bc 100644
  
        instr->state = MTD_ERASE_DONE;
        mtd_erase_callback(instr);
-@@ -260,16 +265,19 @@ static int m25p80_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -260,16 +265,19 @@ static int m25p80_read(struct mtd_info *
        if (retlen)
                *retlen = 0;
  
@@ -1141,7 +1139,7 @@ index 78c2511..98df5bc 100644
  
        /* Set up the write data buffer. */
        flash->command[0] = OPCODE_READ;
-@@ -281,7 +289,7 @@ static int m25p80_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -281,7 +289,7 @@ static int m25p80_read(struct mtd_info *
  
        *retlen = m.actual_length - sizeof(flash->command);
  
@@ -1150,7 +1148,7 @@ index 78c2511..98df5bc 100644
  
        return 0;
  }
-@@ -323,7 +331,7 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -323,7 +331,7 @@ static int m25p80_write(struct mtd_info 
        t[1].tx_buf = buf;
        spi_message_add_tail(&t[1], &m);
  
@@ -1159,7 +1157,7 @@ index 78c2511..98df5bc 100644
  
        /* Wait until finished previous write command. */
        if (wait_till_ready(flash))
-@@ -381,10 +389,10 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -381,10 +389,10 @@ static int m25p80_write(struct mtd_info 
                        if (retlen)
                                *retlen += m.actual_length
                                        - sizeof(flash->command);
@@ -1173,7 +1171,7 @@ index 78c2511..98df5bc 100644
  
        return 0;
  }
-@@ -398,24 +406,118 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -398,24 +406,118 @@ static int m25p80_write(struct mtd_info 
  
  struct flash_info {
        char            *name;
@@ -1304,7 +1302,7 @@ index 78c2511..98df5bc 100644
  /*
   * board specific setup should have ensured the SPI clock used here
   * matches what the READ command supports, at least until this driver
-@@ -429,37 +531,51 @@ static int __devinit m25p_probe(struct spi_device *spi)
+@@ -429,37 +531,51 @@ static int __devinit m25p_probe(struct s
        unsigned                        i;
  
        /* Platform data helps sort out which chip type we have, as
@@ -1375,7 +1373,7 @@ index 78c2511..98df5bc 100644
                flash->mtd.name = data->name;
        else
                flash->mtd.name = spi->dev.bus_id;
-@@ -468,17 +584,25 @@ static int __devinit m25p_probe(struct spi_device *spi)
+@@ -468,17 +584,25 @@ static int __devinit m25p_probe(struct s
        flash->mtd.writesize = 1;
        flash->mtd.flags = MTD_CAP_NORFLASH;
        flash->mtd.size = info->sector_size * info->n_sectors;
@@ -1404,7 +1402,7 @@ index 78c2511..98df5bc 100644
                flash->mtd.name,
                flash->mtd.size, flash->mtd.size / (1024*1024),
                flash->mtd.erasesize, flash->mtd.erasesize / 1024,
-@@ -488,7 +612,7 @@ static int __devinit m25p_probe(struct spi_device *spi)
+@@ -488,7 +612,7 @@ static int __devinit m25p_probe(struct s
                for (i = 0; i < flash->mtd.numeraseregions; i++)
                        DEBUG(MTD_DEBUG_LEVEL2,
                                "mtd.eraseregions[%d] = { .offset = 0x%.8x, "
@@ -1413,7 +1411,7 @@ index 78c2511..98df5bc 100644
                                ".numblocks = %d }\n",
                                i, flash->mtd.eraseregions[i].offset,
                                flash->mtd.eraseregions[i].erasesize,
-@@ -516,14 +640,14 @@ static int __devinit m25p_probe(struct spi_device *spi)
+@@ -516,14 +640,14 @@ static int __devinit m25p_probe(struct s
                }
  
                if (nr_parts > 0) {
@@ -1434,7 +1432,7 @@ index 78c2511..98df5bc 100644
                        }
                        flash->partitioned = 1;
                        return add_mtd_partitions(&flash->mtd, parts, nr_parts);
-@@ -560,6 +684,11 @@ static struct spi_driver m25p80_driver = {
+@@ -560,6 +684,11 @@ static struct spi_driver m25p80_driver =
        },
        .probe  = m25p_probe,
        .remove = __devexit_p(m25p_remove),
@@ -1446,10 +1444,10 @@ index 78c2511..98df5bc 100644
  };
  
  
-diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
-index a987e91..a5ed6d2 100644
---- a/drivers/mtd/devices/mtd_dataflash.c
-+++ b/drivers/mtd/devices/mtd_dataflash.c
+Index: linux-2.6.23.17/drivers/mtd/devices/mtd_dataflash.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/devices/mtd_dataflash.c
++++ linux-2.6.23.17/drivers/mtd/devices/mtd_dataflash.c
 @@ -14,6 +14,7 @@
  #include <linux/slab.h>
  #include <linux/delay.h>
@@ -1467,7 +1465,7 @@ index a987e91..a5ed6d2 100644
        struct spi_device       *spi;
  
        struct mtd_info         mtd;
-@@ -167,7 +168,7 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr)
+@@ -167,7 +168,7 @@ static int dataflash_erase(struct mtd_in
        x.len = 4;
        spi_message_add_tail(&x, &msg);
  
@@ -1476,7 +1474,7 @@ index a987e91..a5ed6d2 100644
        while (instr->len > 0) {
                unsigned int    pageaddr;
                int             status;
-@@ -210,7 +211,7 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr)
+@@ -210,7 +211,7 @@ static int dataflash_erase(struct mtd_in
                        instr->len -= priv->page_size;
                }
        }
@@ -1485,7 +1483,7 @@ index a987e91..a5ed6d2 100644
  
        /* Inform MTD subsystem that erase is complete */
        instr->state = MTD_ERASE_DONE;
-@@ -266,7 +267,7 @@ static int dataflash_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -266,7 +267,7 @@ static int dataflash_read(struct mtd_inf
        x[1].len = len;
        spi_message_add_tail(&x[1], &msg);
  
@@ -1494,7 +1492,7 @@ index a987e91..a5ed6d2 100644
  
        /* Continuous read, max clock = f(car) which may be less than
         * the peak rate available.  Some chips support commands with
-@@ -279,7 +280,7 @@ static int dataflash_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -279,7 +280,7 @@ static int dataflash_read(struct mtd_inf
        /* plus 4 "don't care" bytes */
  
        status = spi_sync(priv->spi, &msg);
@@ -1503,7 +1501,7 @@ index a987e91..a5ed6d2 100644
  
        if (status >= 0) {
                *retlen = msg.actual_length - 8;
-@@ -336,7 +337,7 @@ static int dataflash_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -336,7 +337,7 @@ static int dataflash_write(struct mtd_in
        else
                writelen = len;
  
@@ -1512,7 +1510,7 @@ index a987e91..a5ed6d2 100644
        while (remaining > 0) {
                DEBUG(MTD_DEBUG_LEVEL3, "write @ %i:%i len=%i\n",
                        pageaddr, offset, writelen);
-@@ -441,7 +442,7 @@ static int dataflash_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -441,7 +442,7 @@ static int dataflash_write(struct mtd_in
                else
                        writelen = remaining;
        }
@@ -1521,7 +1519,7 @@ index a987e91..a5ed6d2 100644
  
        return status;
  }
-@@ -463,7 +464,7 @@ add_dataflash(struct spi_device *spi, char *name,
+@@ -463,7 +464,7 @@ add_dataflash(struct spi_device *spi, ch
        if (!priv)
                return -ENOMEM;
  
@@ -1530,10 +1528,10 @@ index a987e91..a5ed6d2 100644
        priv->spi = spi;
        priv->page_size = pagesize;
        priv->page_offset = pageoffset;
-diff --git a/drivers/mtd/devices/pmc551.c b/drivers/mtd/devices/pmc551.c
-index e8f686f..7060a08 100644
---- a/drivers/mtd/devices/pmc551.c
-+++ b/drivers/mtd/devices/pmc551.c
+Index: linux-2.6.23.17/drivers/mtd/devices/pmc551.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/devices/pmc551.c
++++ linux-2.6.23.17/drivers/mtd/devices/pmc551.c
 @@ -30,8 +30,8 @@
   *
   * Notes:
@@ -1554,7 +1552,7 @@ index e8f686f..7060a08 100644
   *    * MUST fix the init function to not spin on a register
   *    waiting for it to set .. this does not safely handle busted
   *    devices that never reset the register correctly which will
-@@ -562,10 +562,10 @@ static u32 fixup_pmc551(struct pci_dev *dev)
+@@ -562,10 +562,10 @@ static u32 fixup_pmc551(struct pci_dev *
        /*
         * Some screen fun
         */
@@ -1619,11 +1617,11 @@ index e8f686f..7060a08 100644
                                "0x%p\n", priv->asize >> 20, priv->start);
                        pci_iounmap(priv->dev, priv->start);
                }
-diff --git a/drivers/mtd/maps/nettel.c b/drivers/mtd/maps/nettel.c
-index 7b96cd0..0c9b305 100644
---- a/drivers/mtd/maps/nettel.c
-+++ b/drivers/mtd/maps/nettel.c
-@@ -158,68 +158,11 @@ static struct notifier_block nettel_notifier_block = {
+Index: linux-2.6.23.17/drivers/mtd/maps/nettel.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/maps/nettel.c
++++ linux-2.6.23.17/drivers/mtd/maps/nettel.c
+@@ -158,68 +158,11 @@ static struct notifier_block nettel_noti
        nettel_reboot_notifier, NULL, 0
  };
  
@@ -1713,10 +1711,10 @@ index 7b96cd0..0c9b305 100644
  {
  #ifdef CONFIG_MTD_CFI_INTELEXT
        unregister_reboot_notifier(&nettel_notifier_block);
-diff --git a/drivers/mtd/maps/pmcmsp-ramroot.c b/drivers/mtd/maps/pmcmsp-ramroot.c
-index 18049bc..30de5c0 100644
---- a/drivers/mtd/maps/pmcmsp-ramroot.c
-+++ b/drivers/mtd/maps/pmcmsp-ramroot.c
+Index: linux-2.6.23.17/drivers/mtd/maps/pmcmsp-ramroot.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/maps/pmcmsp-ramroot.c
++++ linux-2.6.23.17/drivers/mtd/maps/pmcmsp-ramroot.c
 @@ -79,7 +79,6 @@ static int __init init_rrmap(void)
                rr_mtd->owner = THIS_MODULE;
  
@@ -1725,10 +1723,10 @@ index 18049bc..30de5c0 100644
  
                return 0;
        }
-diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
-index ef89780..74d9d30 100644
---- a/drivers/mtd/mtd_blkdevs.c
-+++ b/drivers/mtd/mtd_blkdevs.c
+Index: linux-2.6.23.17/drivers/mtd/mtd_blkdevs.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/mtd_blkdevs.c
++++ linux-2.6.23.17/drivers/mtd/mtd_blkdevs.c
 @@ -24,10 +24,9 @@
  #include <linux/kthread.h>
  #include <asm/uaccess.h>
@@ -1742,7 +1740,7 @@ index ef89780..74d9d30 100644
  
  struct mtd_blkcore_priv {
        struct task_struct *thread;
-@@ -202,7 +201,7 @@ static int blktrans_ioctl(struct inode *inode, struct file *file,
+@@ -202,7 +201,7 @@ static int blktrans_ioctl(struct inode *
        }
  }
  
@@ -1751,11 +1749,11 @@ index ef89780..74d9d30 100644
        .owner          = THIS_MODULE,
        .open           = blktrans_open,
        .release        = blktrans_release,
-diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
-index d091b24..22ed96c 100644
---- a/drivers/mtd/mtdchar.c
-+++ b/drivers/mtd/mtdchar.c
-@@ -136,7 +136,8 @@ static int mtd_close(struct inode *inode, struct file *file)
+Index: linux-2.6.23.17/drivers/mtd/mtdchar.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/mtdchar.c
++++ linux-2.6.23.17/drivers/mtd/mtdchar.c
+@@ -137,7 +137,8 @@ static int mtd_close(struct inode *inode
  
        DEBUG(MTD_DEBUG_LEVEL0, "MTD_close\n");
  
@@ -1765,10 +1763,10 @@ index d091b24..22ed96c 100644
                mtd->sync(mtd);
  
        put_mtd_device(mtd);
-diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
-index c153b64..6c2645e 100644
---- a/drivers/mtd/mtdcore.c
-+++ b/drivers/mtd/mtdcore.c
+Index: linux-2.6.23.17/drivers/mtd/mtdcore.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/mtdcore.c
++++ linux-2.6.23.17/drivers/mtd/mtdcore.c
 @@ -22,6 +22,8 @@
  
  #include <linux/mtd/mtd.h>
@@ -1778,10 +1776,10 @@ index c153b64..6c2645e 100644
  /* These are exported solely for the purpose of mtd_blkdevs.c. You
     should not use them for _anything_ else */
  DEFINE_MUTEX(mtd_table_mutex);
-diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
-index f1d60b6..df25cab 100644
---- a/drivers/mtd/nand/Kconfig
-+++ b/drivers/mtd/nand/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/nand/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/nand/Kconfig
++++ linux-2.6.23.17/drivers/mtd/nand/Kconfig
 @@ -134,10 +134,10 @@ config MTD_NAND_S3C2410_HWECC
  
  config MTD_NAND_NDFC
@@ -1804,11 +1802,11 @@ index f1d60b6..df25cab 100644
          laptop.
  
  config MTD_NAND_CS553X
-diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c
-index cff969d..cca69b3 100644
---- a/drivers/mtd/nand/cafe_nand.c
-+++ b/drivers/mtd/nand/cafe_nand.c
-@@ -821,14 +821,53 @@ static struct pci_device_id cafe_nand_tbl[] = {
+Index: linux-2.6.23.17/drivers/mtd/nand/cafe_nand.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/nand/cafe_nand.c
++++ linux-2.6.23.17/drivers/mtd/nand/cafe_nand.c
+@@ -822,14 +822,53 @@ static struct pci_device_id cafe_nand_tb
  
  MODULE_DEVICE_TABLE(pci, cafe_nand_tbl);
  
@@ -1863,10 +1861,10 @@ index cff969d..cca69b3 100644
  #endif
  };
  
-diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c
-index fd7a8d5..1c0e89f 100644
---- a/drivers/mtd/nand/ndfc.c
-+++ b/drivers/mtd/nand/ndfc.c
+Index: linux-2.6.23.17/drivers/mtd/nand/ndfc.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/nand/ndfc.c
++++ linux-2.6.23.17/drivers/mtd/nand/ndfc.c
 @@ -24,7 +24,11 @@
  #include <linux/platform_device.h>
  
@@ -1879,7 +1877,7 @@ index fd7a8d5..1c0e89f 100644
  
  struct ndfc_nand_mtd {
        struct mtd_info                 mtd;
-@@ -230,7 +234,11 @@ static int ndfc_nand_probe(struct platform_device *pdev)
+@@ -230,7 +234,11 @@ static int ndfc_nand_probe(struct platfo
        struct ndfc_controller *ndfc = &ndfc_ctrl;
        unsigned long long phys = settings->ndfc_erpn | res->start;
  
@@ -1891,10 +1889,10 @@ index fd7a8d5..1c0e89f 100644
        if (!ndfc->ndfcbase) {
                printk(KERN_ERR "NDFC: ioremap failed\n");
                return -EIO;
-diff --git a/drivers/mtd/onenand/Kconfig b/drivers/mtd/onenand/Kconfig
-index c257d39..cb41cbc 100644
---- a/drivers/mtd/onenand/Kconfig
-+++ b/drivers/mtd/onenand/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/onenand/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/onenand/Kconfig
++++ linux-2.6.23.17/drivers/mtd/onenand/Kconfig
 @@ -40,4 +40,27 @@ config MTD_ONENAND_OTP
  
          OTP block is fully-guaranteed to be a valid block.
@@ -1923,10 +1921,10 @@ index c257d39..cb41cbc 100644
 +        OneNAND MTD layer.
 +
  endif # MTD_ONENAND
-diff --git a/drivers/mtd/onenand/Makefile b/drivers/mtd/onenand/Makefile
-index 269cfe4..4d2eacf 100644
---- a/drivers/mtd/onenand/Makefile
-+++ b/drivers/mtd/onenand/Makefile
+Index: linux-2.6.23.17/drivers/mtd/onenand/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/onenand/Makefile
++++ linux-2.6.23.17/drivers/mtd/onenand/Makefile
 @@ -8,4 +8,7 @@ obj-$(CONFIG_MTD_ONENAND)              += onenand.o
  # Board specific.
  obj-$(CONFIG_MTD_ONENAND_GENERIC)     += generic.o
@@ -1935,11 +1933,11 @@ index 269cfe4..4d2eacf 100644
 +obj-$(CONFIG_MTD_ONENAND_SIM)         += onenand_sim.o
 +
  onenand-objs = onenand_base.o onenand_bbt.o
-diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
-index 0537fac..7d194cf 100644
---- a/drivers/mtd/onenand/onenand_base.c
-+++ b/drivers/mtd/onenand/onenand_base.c
-@@ -206,6 +206,15 @@ static int onenand_command(struct mtd_info *mtd, int cmd, loff_t addr, size_t le
+Index: linux-2.6.23.17/drivers/mtd/onenand/onenand_base.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/mtd/onenand/onenand_base.c
++++ linux-2.6.23.17/drivers/mtd/onenand/onenand_base.c
+@@ -206,6 +206,15 @@ static int onenand_command(struct mtd_in
        default:
                block = (int) (addr >> this->erase_shift);
                page = (int) (addr >> this->page_shift);
@@ -1955,7 +1953,7 @@ index 0537fac..7d194cf 100644
                page &= this->page_mask;
                break;
        }
-@@ -216,8 +225,12 @@ static int onenand_command(struct mtd_info *mtd, int cmd, loff_t addr, size_t le
+@@ -216,8 +225,12 @@ static int onenand_command(struct mtd_in
                value = onenand_bufferram_address(this, block);
                this->write_word(value, this->base + ONENAND_REG_START_ADDRESS2);
  
@@ -1970,7 +1968,7 @@ index 0537fac..7d194cf 100644
  
                return 0;
        }
-@@ -247,6 +260,8 @@ static int onenand_command(struct mtd_info *mtd, int cmd, loff_t addr, size_t le
+@@ -247,6 +260,8 @@ static int onenand_command(struct mtd_in
                        break;
  
                default:
@@ -1979,7 +1977,7 @@ index 0537fac..7d194cf 100644
                        dataram = ONENAND_CURRENT_BUFFERRAM(this);
                        break;
                }
-@@ -445,8 +460,9 @@ static inline int onenand_bufferram_offset(struct mtd_info *mtd, int area)
+@@ -445,8 +460,9 @@ static inline int onenand_bufferram_offs
        struct onenand_chip *this = mtd->priv;
  
        if (ONENAND_CURRENT_BUFFERRAM(this)) {
@@ -1990,7 +1988,7 @@ index 0537fac..7d194cf 100644
                if (area == ONENAND_SPARERAM)
                        return mtd->oobsize;
        }
-@@ -572,6 +588,30 @@ static int onenand_write_bufferram(struct mtd_info *mtd, int area,
+@@ -572,6 +588,30 @@ static int onenand_write_bufferram(struc
  }
  
  /**
@@ -2021,7 +2019,7 @@ index 0537fac..7d194cf 100644
   * onenand_check_bufferram - [GENERIC] Check BufferRAM information
   * @param mtd         MTD data structure
   * @param addr                address to check
-@@ -585,7 +625,10 @@ static int onenand_check_bufferram(struct mtd_info *mtd, loff_t addr)
+@@ -585,7 +625,10 @@ static int onenand_check_bufferram(struc
        int blockpage, found = 0;
        unsigned int i;
  
@@ -2033,7 +2031,7 @@ index 0537fac..7d194cf 100644
  
        /* Is there valid data? */
        i = ONENAND_CURRENT_BUFFERRAM(this);
-@@ -625,7 +668,10 @@ static void onenand_update_bufferram(struct mtd_info *mtd, loff_t addr,
+@@ -625,7 +668,10 @@ static void onenand_update_bufferram(str
        int blockpage;
        unsigned int i;
  
@@ -2045,7 +2043,7 @@ index 0537fac..7d194cf 100644
  
        /* Invalidate another BufferRAM */
        i = ONENAND_NEXT_BUFFERRAM(this);
-@@ -734,6 +780,7 @@ static int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -734,6 +780,7 @@ static int onenand_read(struct mtd_info 
        int read = 0, column;
        int thislen;
        int ret = 0, boundary = 0;
@@ -2053,7 +2051,7 @@ index 0537fac..7d194cf 100644
  
        DEBUG(MTD_DEBUG_LEVEL3, "onenand_read: from = 0x%08x, len = %i\n", (unsigned int) from, (int) len);
  
-@@ -754,22 +801,22 @@ static int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -754,22 +801,22 @@ static int onenand_read(struct mtd_info 
        /* Do first load to bufferRAM */
        if (read < len) {
                if (!onenand_check_bufferram(mtd, from)) {
@@ -2082,7 +2080,7 @@ index 0537fac..7d194cf 100644
                        /*
                         * Chip boundary handling in DDP
                         * Now we issued chip 1 read and pointed chip 1
-@@ -794,7 +841,7 @@ static int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
+@@ -794,7 +841,7 @@ static int onenand_read(struct mtd_info 
                        this->write_word(ONENAND_DDP_CHIP1, this->base + ONENAND_REG_START_ADDRESS2);
                ONENAND_SET_NEXT_BUFFERRAM(this);
                buf += thislen;
@@ -2091,7 +2089,7 @@ index 0537fac..7d194cf 100644
                column = 0;
                cond_resched();
                /* Now wait for load */
-@@ -1079,7 +1126,7 @@ int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from,
+@@ -1079,7 +1126,7 @@ int onenand_bbt_read_oob(struct mtd_info
                /* Read more? */
                if (read < len) {
                        /* Update Page size */
@@ -2100,7 +2098,7 @@ index 0537fac..7d194cf 100644
                        column = 0;
                }
        }
-@@ -1135,12 +1182,12 @@ static int onenand_verify(struct mtd_info *mtd, const u_char *buf, loff_t addr,
+@@ -1135,12 +1182,12 @@ static int onenand_verify(struct mtd_inf
        int thislen, column;
  
        while (len != 0) {
@@ -2118,7 +2116,7 @@ index 0537fac..7d194cf 100644
  
                onenand_update_bufferram(mtd, addr, 0);
  
-@@ -1236,6 +1283,10 @@ static int onenand_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -1236,6 +1283,10 @@ static int onenand_write(struct mtd_info
  
                /* In partial page write we don't update bufferram */
                onenand_update_bufferram(mtd, to, !ret && !subpage);
@@ -2129,7 +2127,7 @@ index 0537fac..7d194cf 100644
  
                if (ret) {
                        printk(KERN_ERR "onenand_write: write filaed %d\n", ret);
-@@ -1384,6 +1435,10 @@ static int onenand_do_write_oob(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -1384,6 +1435,10 @@ static int onenand_do_write_oob(struct m
                this->command(mtd, ONENAND_CMD_PROGOOB, to, mtd->oobsize);
  
                onenand_update_bufferram(mtd, to, 0);
@@ -2140,7 +2138,7 @@ index 0537fac..7d194cf 100644
  
                ret = this->wait(mtd, FL_WRITING);
                if (ret) {
-@@ -2107,6 +2162,7 @@ static int onenand_lock_user_prot_reg(struct mtd_info *mtd, loff_t from,
+@@ -2107,6 +2162,7 @@ static int onenand_lock_user_prot_reg(st
   *
   * Check and set OneNAND features
   * - lock scheme
@@ -2148,7 +2146,7 @@ index 0537fac..7d194cf 100644
   */
  static void onenand_check_features(struct mtd_info *mtd)
  {
-@@ -2118,19 +2174,35 @@ static void onenand_check_features(struct mtd_info *mtd)
+@@ -2118,19 +2174,35 @@ static void onenand_check_features(struc
        process = this->version_id >> ONENAND_VERSION_PROCESS_SHIFT;
  
        /* Lock scheme */
@@ -2193,7 +2191,7 @@ index 0537fac..7d194cf 100644
  }
  
  /**
-@@ -2257,6 +2329,8 @@ static int onenand_probe(struct mtd_info *mtd)
+@@ -2257,6 +2329,8 @@ static int onenand_probe(struct mtd_info
        this->erase_shift = ffs(mtd->erasesize) - 1;
        this->page_shift = ffs(mtd->writesize) - 1;
        this->page_mask = (1 << (this->erase_shift - this->page_shift)) - 1;
@@ -2202,7 +2200,7 @@ index 0537fac..7d194cf 100644
  
        /* REVIST: Multichip handling */
  
-@@ -2265,6 +2339,17 @@ static int onenand_probe(struct mtd_info *mtd)
+@@ -2265,6 +2339,17 @@ static int onenand_probe(struct mtd_info
        /* Check OneNAND features */
        onenand_check_features(mtd);
  
@@ -2220,11 +2218,11 @@ index 0537fac..7d194cf 100644
        return 0;
  }
  
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 7dcaa09..eb69d4d 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -1390,6 +1390,17 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,    0x260a, quirk_intel_pcie_pm);
+Index: linux-2.6.23.17/drivers/pci/quirks.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/pci/quirks.c
++++ linux-2.6.23.17/drivers/pci/quirks.c
+@@ -1396,6 +1396,17 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,  0x260b, quirk_intel_pcie_pm);
  
  /*
@@ -2242,10 +2240,10 @@ index 7dcaa09..eb69d4d 100644
   * Toshiba TC86C001 IDE controller reports the standard 8-byte BAR0 size
   * but the PIO transfers won't work if BAR0 falls at the odd 8 bytes.
   * Re-allocate the region if needed...
-diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index 5216c11..3e3df7e 100644
---- a/drivers/video/Kconfig
-+++ b/drivers/video/Kconfig
+Index: linux-2.6.23.17/drivers/video/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/Kconfig
++++ linux-2.6.23.17/drivers/video/Kconfig
 @@ -594,7 +594,7 @@ config FB_TGA
  
  config FB_VESA
@@ -2289,11 +2287,11 @@ index 5216c11..3e3df7e 100644
  config FB_XILINX
        tristate "Xilinx frame buffer support"
        depends on FB && XILINX_VIRTEX
-diff --git a/drivers/video/Makefile b/drivers/video/Makefile
-index 06eec7b..fc535fb 100644
---- a/drivers/video/Makefile
-+++ b/drivers/video/Makefile
-@@ -111,6 +111,7 @@ obj-$(CONFIG_FB_PNX4008_DUM_RGB)  += pnx4008/
+Index: linux-2.6.23.17/drivers/video/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/Makefile
++++ linux-2.6.23.17/drivers/video/Makefile
+@@ -111,6 +111,7 @@ obj-$(CONFIG_FB_PNX4008_DUM_RGB)  += pnx
  obj-$(CONFIG_FB_IBM_GXT4500)    += gxt4500.o
  obj-$(CONFIG_FB_PS3)            += ps3fb.o
  obj-$(CONFIG_FB_SM501)            += sm501fb.o
@@ -2301,10 +2299,10 @@ index 06eec7b..fc535fb 100644
  obj-$(CONFIG_FB_XILINX)           += xilinxfb.o
  obj-$(CONFIG_FB_OMAP)             += omap/
  
-diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
-index 0740272..4ac6a95 100644
---- a/drivers/video/fbmem.c
-+++ b/drivers/video/fbmem.c
+Index: linux-2.6.23.17/drivers/video/fbmem.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/fbmem.c
++++ linux-2.6.23.17/drivers/video/fbmem.c
 @@ -820,6 +820,53 @@ static void try_to_load(int fb)
  #endif /* CONFIG_KMOD */
  
@@ -2359,10 +2357,10 @@ index 0740272..4ac6a95 100644
  fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var)
  {
        struct fb_fix_screeninfo *fix = &info->fix;
-diff --git a/drivers/video/geode/Makefile b/drivers/video/geode/Makefile
-index 957304b..5c98da1 100644
---- a/drivers/video/geode/Makefile
-+++ b/drivers/video/geode/Makefile
+Index: linux-2.6.23.17/drivers/video/geode/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/Makefile
++++ linux-2.6.23.17/drivers/video/geode/Makefile
 @@ -5,5 +5,5 @@ obj-$(CONFIG_FB_GEODE_GX)  += gxfb.o
  obj-$(CONFIG_FB_GEODE_LX)  += lxfb.o
  
@@ -2370,10 +2368,10 @@ index 957304b..5c98da1 100644
 -gxfb-objs  := gxfb_core.o display_gx.o video_gx.o
 +gxfb-objs  := gxfb_core.o display_gx.o video_gx.o suspend_gx.o
  lxfb-objs  := lxfb_core.o lxfb_ops.o
-diff --git a/drivers/video/geode/display_gx.c b/drivers/video/geode/display_gx.c
-index 0f16e4b..a432b99 100644
---- a/drivers/video/geode/display_gx.c
-+++ b/drivers/video/geode/display_gx.c
+Index: linux-2.6.23.17/drivers/video/geode/display_gx.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/display_gx.c
++++ linux-2.6.23.17/drivers/video/geode/display_gx.c
 @@ -11,26 +11,44 @@
   *   Free Software Foundation; either version 2 of the License, or * (at your
   *   option) any later version.
@@ -2431,44 +2429,48 @@ index 0f16e4b..a432b99 100644
  
  int gx_line_delta(int xres, int bpp)
  {
-@@ -63,23 +80,23 @@ static void gx_set_mode(struct fb_info *info)
+@@ -63,23 +80,23 @@ static void gx_set_mode(struct fb_info *
        gcfg = readl(par->dc_regs + DC_GENERAL_CFG);
        dcfg = readl(par->dc_regs + DC_DISPLAY_CFG);
  
 -      /* Disable the timing generator. */
 -      dcfg &= ~(DC_DCFG_TGEN);
 -      writel(dcfg, par->dc_regs + DC_DISPLAY_CFG);
-+      /* Programming the clock is costly and ugly, so avoid if if we can */
+-
 -      /* Wait for pending memory requests before disabling the FIFO load. */
 -      udelay(100);
+-
+-      /* Disable FIFO load and compression. */
+-      gcfg &= ~(DC_GCFG_DFLE | DC_GCFG_CMPE | DC_GCFG_DECE);
+-      writel(gcfg, par->dc_regs + DC_GENERAL_CFG);
+-
+-      /* Setup DCLK and its divisor. */
+-      par->vid_ops->set_dclk(info);
+-
+-      /*
+-       * Setup new mode.
+-       */
++      /* Programming the clock is costly and ugly, so avoid if if we can */
++
 +      if (par->curdclk != info->var.pixclock) {
 +              /* Disable the timing generator. */
 +              dcfg &= ~(DC_DCFG_TGEN);
 +              writel(dcfg, par->dc_regs + DC_DISPLAY_CFG);
--      /* Disable FIFO load and compression. */
--      gcfg &= ~(DC_GCFG_DFLE | DC_GCFG_CMPE | DC_GCFG_DECE);
--      writel(gcfg, par->dc_regs + DC_GENERAL_CFG);
++
 +              /* Wait for pending memory requests before disabling the FIFO load. */
 +              udelay(100);
--      /* Setup DCLK and its divisor. */
--      par->vid_ops->set_dclk(info);
++
 +              /* Disable FIFO load and compression. */
 +              gcfg &= ~(DC_GCFG_DFLE | DC_GCFG_CMPE | DC_GCFG_DECE);
 +              writel(gcfg, par->dc_regs + DC_GENERAL_CFG);
--      /*
--       * Setup new mode.
--       */
++
 +              /* Setup DCLK and its divisor. */
 +              par->vid_ops->set_dclk(info);
 +      }
  
        /* Clear all unused feature bits. */
        gcfg &= DC_GCFG_YUVM | DC_GCFG_VDSE;
-@@ -90,12 +107,13 @@ static void gx_set_mode(struct fb_info *info)
+@@ -90,12 +107,13 @@ static void gx_set_mode(struct fb_info *
        gcfg |= (6 << DC_GCFG_DFHPEL_POS) | (5 << DC_GCFG_DFHPSL_POS) | DC_GCFG_DFLE;
  
        /* Framebuffer start offset. */
@@ -2486,7 +2488,7 @@ index 0f16e4b..a432b99 100644
  
  
        /* Enable graphics and video data and unmask address lines. */
-@@ -134,17 +152,16 @@ static void gx_set_mode(struct fb_info *info)
+@@ -134,17 +152,16 @@ static void gx_set_mode(struct fb_info *
        vblankend = vsyncend + info->var.upper_margin;
        vtotal = vblankend;
  
@@ -2512,10 +2514,10 @@ index 0f16e4b..a432b99 100644
  
        par->vid_ops->configure_display(info);
  
-diff --git a/drivers/video/geode/display_gx.h b/drivers/video/geode/display_gx.h
-index 0af33f3..d20b877 100644
---- a/drivers/video/geode/display_gx.h
-+++ b/drivers/video/geode/display_gx.h
+Index: linux-2.6.23.17/drivers/video/geode/display_gx.h
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/display_gx.h
++++ linux-2.6.23.17/drivers/video/geode/display_gx.h
 @@ -20,6 +20,9 @@ extern struct geode_dc_ops gx_dc_ops;
  #define GLD_MSR_CONFIG   0xC0002001
  #define GLD_MSR_CONFIG_DM_FP 0x40
@@ -2526,10 +2528,10 @@ index 0af33f3..d20b877 100644
  /* Display controller registers */
  
  #define DC_UNLOCK 0x00
-diff --git a/drivers/video/geode/geodefb.h b/drivers/video/geode/geodefb.h
-index ae04820..0214d11 100644
---- a/drivers/video/geode/geodefb.h
-+++ b/drivers/video/geode/geodefb.h
+Index: linux-2.6.23.17/drivers/video/geode/geodefb.h
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/geodefb.h
++++ linux-2.6.23.17/drivers/video/geode/geodefb.h
 @@ -12,6 +12,10 @@
  #ifndef __GEODEFB_H__
  #define __GEODEFB_H__
@@ -2566,10 +2568,10 @@ index ae04820..0214d11 100644
  };
  
  #endif /* !__GEODEFB_H__ */
-diff --git a/drivers/video/geode/gxfb_core.c b/drivers/video/geode/gxfb_core.c
-index cf841ef..3eabc53 100644
---- a/drivers/video/geode/gxfb_core.c
-+++ b/drivers/video/geode/gxfb_core.c
+Index: linux-2.6.23.17/drivers/video/geode/gxfb_core.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/gxfb_core.c
++++ linux-2.6.23.17/drivers/video/geode/gxfb_core.c
 @@ -30,12 +30,31 @@
  #include <linux/fb.h>
  #include <linux/init.h>
@@ -2602,7 +2604,7 @@ index cf841ef..3eabc53 100644
  
  /* Modes relevant to the GX (taken from modedb.c) */
  static const struct fb_videomode gx_modedb[] __initdata = {
-@@ -103,8 +122,20 @@ static const struct fb_videomode gx_modedb[] __initdata = {
+@@ -103,8 +122,20 @@ static const struct fb_videomode gx_mode
        { NULL, 85, 1600, 1200, 4357, 304, 64, 46, 1, 192, 3,
          FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
          FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
@@ -2623,7 +2625,7 @@ index cf841ef..3eabc53 100644
  static int gxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
  {
        if (var->xres > 1600 || var->yres > 1200)
-@@ -137,7 +168,7 @@ static int gxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
+@@ -137,7 +168,7 @@ static int gxfb_check_var(struct fb_var_
        return 0;
  }
  
@@ -2632,7 +2634,7 @@ index cf841ef..3eabc53 100644
  {
        struct geodefb_par *par = info->par;
  
-@@ -204,16 +235,26 @@ static int gxfb_blank(int blank_mode, struct fb_info *info)
+@@ -204,16 +235,26 @@ static int gxfb_blank(int blank_mode, st
        return par->vid_ops->blank_display(info, blank_mode);
  }
  
@@ -2660,7 +2662,7 @@ index cf841ef..3eabc53 100644
        ret = pci_request_region(dev, 3, "gxfb (video processor)");
        if (ret < 0)
                return ret;
-@@ -232,36 +273,118 @@ static int __init gxfb_map_video_memory(struct fb_info *info, struct pci_dev *de
+@@ -232,36 +273,118 @@ static int __init gxfb_map_video_memory(
        ret = pci_request_region(dev, 0, "gxfb (framebuffer)");
        if (ret < 0)
                return ret;
@@ -2784,7 +2786,7 @@ index cf841ef..3eabc53 100644
  };
  
  static struct fb_info * __init gxfb_init_fbinfo(struct device *dev)
-@@ -303,23 +426,86 @@ static struct fb_info * __init gxfb_init_fbinfo(struct device *dev)
+@@ -303,23 +426,86 @@ static struct fb_info * __init gxfb_init
        return info;
  }
  
@@ -2877,7 +2879,7 @@ index cf841ef..3eabc53 100644
                dev_err(&pdev->dev, "failed to map frame buffer or controller registers\n");
                goto err;
        }
-@@ -333,32 +519,60 @@ static int __init gxfb_probe(struct pci_dev *pdev, const struct pci_device_id *i
+@@ -333,32 +519,60 @@ static int __init gxfb_probe(struct pci_
        else
                par->enable_crt = 1;
  
@@ -2949,7 +2951,7 @@ index cf841ef..3eabc53 100644
                pci_release_region(pdev, 0);
        }
        if (par->vid_regs) {
-@@ -370,8 +584,9 @@ static int __init gxfb_probe(struct pci_dev *pdev, const struct pci_device_id *i
+@@ -370,8 +584,9 @@ static int __init gxfb_probe(struct pci_
                pci_release_region(pdev, 2);
        }
  
@@ -2961,7 +2963,7 @@ index cf841ef..3eabc53 100644
        return ret;
  }
  
-@@ -397,9 +612,7 @@ static void gxfb_remove(struct pci_dev *pdev)
+@@ -397,9 +612,7 @@ static void gxfb_remove(struct pci_dev *
  }
  
  static struct pci_device_id gxfb_id_table[] = {
@@ -3024,10 +3026,10 @@ index cf841ef..3eabc53 100644
 +
  MODULE_DESCRIPTION("Framebuffer driver for the AMD Geode GX");
  MODULE_LICENSE("GPL");
-diff --git a/drivers/video/geode/lxfb.h b/drivers/video/geode/lxfb.h
-index 6c227f9..5be8a4d 100644
---- a/drivers/video/geode/lxfb.h
-+++ b/drivers/video/geode/lxfb.h
+Index: linux-2.6.23.17/drivers/video/geode/lxfb.h
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/lxfb.h
++++ linux-2.6.23.17/drivers/video/geode/lxfb.h
 @@ -25,10 +25,23 @@ void lx_set_mode(struct fb_info *);
  void lx_get_gamma(struct fb_info *, unsigned int *, int);
  void lx_set_gamma(struct fb_info *, unsigned int *, int);
@@ -3052,10 +3054,10 @@ index 6c227f9..5be8a4d 100644
  /* MSRS */
  
  #define MSR_LX_GLD_CONFIG    0x48002001
-diff --git a/drivers/video/geode/lxfb_core.c b/drivers/video/geode/lxfb_core.c
-index 5e30b40..c9060ed 100644
---- a/drivers/video/geode/lxfb_core.c
-+++ b/drivers/video/geode/lxfb_core.c
+Index: linux-2.6.23.17/drivers/video/geode/lxfb_core.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/lxfb_core.c
++++ linux-2.6.23.17/drivers/video/geode/lxfb_core.c
 @@ -22,6 +22,7 @@
  #include <linux/init.h>
  #include <linux/pci.h>
@@ -3081,6 +3083,45 @@ index 5e30b40..c9060ed 100644
 +        0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
 +      /* 800x600-60 VESA */
 +      { NULL, 60, 800, 600, 25000, 88, 40, 23, 01, 128, 4,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 800x600-75 VESA */
++      { NULL, 75, 800, 600, 20202, 160, 16, 21, 01, 80, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 800x600-85 VESA */
++      { NULL, 85, 800, 600, 17761, 152, 32, 27, 01, 64, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1024x768-60 VESA */
++      { NULL, 60, 1024, 768, 15384, 160, 24, 29, 3, 136, 6,
++        0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1024x768-75 VESA */
++      { NULL, 75, 1024, 768, 12690, 176, 16, 28, 1, 96, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1024x768-85 VESA */
++      { NULL, 85, 1024, 768, 10582, 208, 48, 36, 1, 96, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1280x960-60 VESA */
++      { NULL, 60, 1280, 960, 9259, 312, 96, 36, 1, 112, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1280x960-85 VESA */
++      { NULL, 85, 1280, 960, 6734, 224, 64, 47, 1, 160, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1280x1024-60 VESA */
++      { NULL, 60, 1280, 1024, 9259, 248, 48, 38, 1, 112, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1280x1024-75 VESA */
++      { NULL, 75, 1280, 1024, 7407, 248, 16, 38, 1, 144, 3,
++        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
++        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
++      /* 1280x1024-85 VESA */
++      { NULL, 85, 1280, 1024, 6349, 224, 64, 44, 1, 160, 3,
          FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x400-70 */
@@ -3092,27 +3133,15 @@ index 5e30b40..c9060ed 100644
 -        0, FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x480-72 */
 -      { NULL, 72, 640, 480, 32102, 120, 16, 20, 1, 40, 3,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 800x600-75 VESA */
-+      { NULL, 75, 800, 600, 20202, 160, 16, 21, 01, 80, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x480-75 */
 -      { NULL, 75, 640, 480, 31746, 120, 16, 16, 1, 64, 3,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 800x600-85 VESA */
-+      { NULL, 85, 800, 600, 17761, 152, 32, 27, 01, 64, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x480-85 */
 -      { NULL, 85, 640, 480, 27780, 80, 56, 25, 1, 56, 3,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1024x768-60 VESA */
-+      { NULL, 60, 1024, 768, 15384, 160, 24, 29, 3, 136, 6,
-+        0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1024x768-75 VESA */
-+      { NULL, 75, 1024, 768, 12690, 176, 16, 28, 1, 96, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x480-90 */
 -      { NULL, 90, 640, 480, 26392, 96, 32, 22, 1, 64, 3,
@@ -3122,10 +3151,7 @@ index 5e30b40..c9060ed 100644
 -        0, FB_VMODE_NONINTERLACED, 0 },
 -      /* 640x480-60 */
 -      { NULL, 60, 640, 480, 39682, 48, 16, 25, 10, 88, 2,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1024x768-85 VESA */
-+      { NULL, 85, 1024, 768, 10582, 208, 48, 36, 1, 96, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 800x600-56 */
 -      { NULL, 56, 800, 600, 27901, 128, 24, 22, 1, 72, 2,
@@ -3153,24 +3179,15 @@ index 5e30b40..c9060ed 100644
 -        0, FB_VMODE_NONINTERLACED, 0 },
 -      /* 800x600-60 */
 -      { NULL, 60, 800, 600, 25131, 88, 40, 23, 1, 128, 4,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1280x960-60 VESA */
-+      { NULL, 60, 1280, 960, 9259, 312, 96, 36, 1, 112, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 1024x768-60 */
 -      { NULL, 60, 1024, 768, 15385, 160, 24, 29, 3, 136, 6,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1280x960-85 VESA */
-+      { NULL, 85, 1280, 960, 6734, 224, 64, 47, 1, 160, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 1024x768-70 */
 -      { NULL, 70, 1024, 768, 13346, 144, 24, 29, 3, 136, 6,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1280x1024-60 VESA */
-+      { NULL, 60, 1280, 1024, 9259, 248, 48, 38, 1, 112, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 1024x768-72 */
 -      { NULL, 72, 1024, 768, 12702, 168, 56, 29, 4, 112, 3,
@@ -3189,10 +3206,7 @@ index 5e30b40..c9060ed 100644
 -        0, FB_VMODE_NONINTERLACED, 0 },
 -      /* 1024x768-60 */
 -      { NULL, 60, 1024, 768, 15385, 160, 24, 29, 3, 136, 6,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1280x1024-75 VESA */
-+      { NULL, 75, 1280, 1024, 7407, 248, 16, 38, 1, 144, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 1152x864-60 */
 -      { NULL, 60, 1152, 864, 12251, 184, 64, 27, 1, 120, 3,
@@ -3217,10 +3231,7 @@ index 5e30b40..c9060ed 100644
 -        0, FB_VMODE_NONINTERLACED, 0 },
 -      /* 1152x864-60 */
 -      { NULL, 60, 1152, 864, 12251, 184, 64, 27, 1, 120, 3,
-+        FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
-+      /* 1280x1024-85 VESA */
-+      { NULL, 85, 1280, 1024, 6349, 224, 64, 44, 1, 160, 3,
-         FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+-        FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
 -        FB_VMODE_NONINTERLACED, 0 },
 -      /* 1280x1024-60 */
 -      { NULL, 60, 1280, 1024, 9262, 248, 48, 38, 1, 112, 3,
@@ -3313,7 +3324,7 @@ index 5e30b40..c9060ed 100644
  static int lxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
  {
        if (var->xres > 1920 || var->yres > 1440)
-@@ -379,16 +278,55 @@ static int __init lxfb_map_video_memory(struct fb_info *info,
+@@ -379,16 +278,55 @@ static int __init lxfb_map_video_memory(
        return 0;
  }
  
@@ -3369,7 +3380,7 @@ index 5e30b40..c9060ed 100644
  };
  
  static struct fb_info * __init lxfb_init_fbinfo(struct device *dev)
-@@ -431,6 +369,45 @@ static struct fb_info * __init lxfb_init_fbinfo(struct device *dev)
+@@ -431,6 +369,45 @@ static struct fb_info * __init lxfb_init
        return info;
  }
  
@@ -3415,7 +3426,7 @@ index 5e30b40..c9060ed 100644
  static int __init lxfb_probe(struct pci_dev *pdev,
                             const struct pci_device_id *id)
  {
-@@ -467,6 +444,13 @@ static int __init lxfb_probe(struct pci_dev *pdev,
+@@ -467,6 +444,13 @@ static int __init lxfb_probe(struct pci_
        modedb_ptr = (struct fb_videomode *) geode_modedb;
        modedb_size = ARRAY_SIZE(geode_modedb);
  
@@ -3440,10 +3451,10 @@ index 5e30b40..c9060ed 100644
  };
  
  #ifndef MODULE
-diff --git a/drivers/video/geode/lxfb_ops.c b/drivers/video/geode/lxfb_ops.c
-index 4fbc99b..47ed9de 100644
---- a/drivers/video/geode/lxfb_ops.c
-+++ b/drivers/video/geode/lxfb_ops.c
+Index: linux-2.6.23.17/drivers/video/geode/lxfb_ops.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/lxfb_ops.c
++++ linux-2.6.23.17/drivers/video/geode/lxfb_ops.c
 @@ -13,9 +13,13 @@
  #include <linux/fb.h>
  #include <linux/uaccess.h>
@@ -3521,7 +3532,7 @@ index 4fbc99b..47ed9de 100644
        writel(DC_UNLOCK_CODE, par->dc_regs + DC_UNLOCK);
  
        lx_graphics_disable(info);
-@@ -534,3 +580,285 @@ int lx_blank_display(struct fb_info *info, int blank_mode)
+@@ -534,3 +580,285 @@ int lx_blank_display(struct fb_info *inf
  
        return 0;
  }
@@ -3807,10 +3818,10 @@ index 4fbc99b..47ed9de 100644
 +      lx_power_on = 1;
 +      return 0;
 +}
-diff --git a/drivers/video/geode/video_gx.c b/drivers/video/geode/video_gx.c
-index 7f3f18d..e282e74 100644
---- a/drivers/video/geode/video_gx.c
-+++ b/drivers/video/geode/video_gx.c
+Index: linux-2.6.23.17/drivers/video/geode/video_gx.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/video_gx.c
++++ linux-2.6.23.17/drivers/video/geode/video_gx.c
 @@ -16,10 +16,14 @@
  #include <asm/io.h>
  #include <asm/delay.h>
@@ -3826,7 +3837,7 @@ index 7f3f18d..e282e74 100644
  
  /*
   * Tables of register settings for various DOTCLKs.
-@@ -58,7 +62,7 @@ static const struct gx_pll_entry gx_pll_table_48MHz[] = {
+@@ -58,7 +62,7 @@ static const struct gx_pll_entry gx_pll_
        { 13888, POSTDIV3,          0x000007E1 },       /*  72.0000 */
        { 13426, PREMULT2,          0x00000F4A },       /*  74.4810 */
        { 13333, 0,                 0x00000052 },       /*  75.0000 */
@@ -3835,7 +3846,7 @@ index 7f3f18d..e282e74 100644
        { 12500, POSTDIV3|PREMULT2, 0x00000709 },       /*  80.0000 */
        { 11135, PREMULT2,          0x00000262 },       /*  89.8000 */
        { 10582, 0,                 0x000002D2 },       /*  94.5000 */
-@@ -117,8 +121,9 @@ static const struct gx_pll_entry gx_pll_table_14MHz[] = {
+@@ -117,8 +121,9 @@ static const struct gx_pll_entry gx_pll_
        {  4357, 0, 0x0000057D },       /* 229.5000 */
  };
  
@@ -3846,7 +3857,7 @@ index 7f3f18d..e282e74 100644
        const struct gx_pll_entry *pll_table;
        int pll_table_len;
        int i, best_i;
-@@ -173,115 +178,169 @@ static void gx_set_dclk_frequency(struct fb_info *info)
+@@ -173,115 +178,169 @@ static void gx_set_dclk_frequency(struct
        do {
                rdmsrl(MSR_GLCP_DOTPLL, dotpll);
        } while (timeout-- && !(dotpll & MSR_GLCP_DOTPLL_LOCK));
@@ -3889,35 +3900,35 @@ index 7f3f18d..e282e74 100644
 +              if (pll_table[i].dotpll_value == (u32) (dotpll >> 32))
 +                      break;
 +      }
++
++      return (i == pll_table_len) ? 0 : pll_table[i].pixclock;
++}
  
 -      fp = readl(par->vid_regs + GX_FP_PM);
 -      fp &= ~GX_FP_PM_P;
 -      writel(fp, par->vid_regs + GX_FP_PM);
-+      return (i == pll_table_len) ? 0 : pll_table[i].pixclock;
-+}
-+
-+
-+#define CMP(val, mask, res) (((val) & (mask)) == (res))
  
 -      /* Set timing 1 */
-+static void
-+gx_configure_tft(struct fb_info *info) {
++#define CMP(val, mask, res) (((val) & (mask)) == (res))
  
 -      fp = readl(par->vid_regs + GX_FP_PT1);
 -      fp &= GX_FP_PT1_VSIZE_MASK;
 -      fp |= info->var.yres << GX_FP_PT1_VSIZE_SHIFT;
 -      writel(fp, par->vid_regs + GX_FP_PT1);
-+      struct geodefb_par *par = info->par;
-+      u32 val, fp = 0, fp1, fp2, sync = 0;
++static void
++gx_configure_tft(struct fb_info *info) {
  
 -      /* Timing 2 */
 -      /* Set bits that are always on for TFT */
-+      /* Set up the DF pad select MSR */
++      struct geodefb_par *par = info->par;
++      u32 val, fp = 0, fp1, fp2, sync = 0;
  
 -      fp = 0x0F100000;
-+      rdmsrl(GX_VP_MSR_PAD_SELECT, val);
++      /* Set up the DF pad select MSR */
  
 -      /* Add sync polarity */
++      rdmsrl(GX_VP_MSR_PAD_SELECT, val);
++
 +      if ((val & GX_VP_PAD_SELECT_MASK) != GX_VP_PAD_SELECT_TFT) {
 +              val &= ~GX_VP_PAD_SELECT_MASK;
 +              val |= GX_VP_PAD_SELECT_TFT;
@@ -3942,28 +3953,28 @@ index 7f3f18d..e282e74 100644
 +
 +      if (!CMP(fp1, GX_FP_PT1_VSIZE_MASK, info->var.yres << GX_FP_PT1_VSIZE_SHIFT) ||
 +          (fp2 != (0x0F100000 | sync))) {
--      /* Enable the FP data and power (in case the BIOS didn't) */
++
 +              /* Turn off the panel */
--      fp = readl(par->vid_regs + GX_DCFG);
--      fp |= GX_DCFG_FP_PWR_EN | GX_DCFG_FP_DATA_EN;
--      writel(fp, par->vid_regs + GX_DCFG);
++
 +#ifdef NOTUSED
 +              /* Do we really need to turn off the panel? */
 +              /* Possibly - we have a glitch somewhere */
  
--      /* Unblank the panel */
+-      /* Enable the FP data and power (in case the BIOS didn't) */
 +              fp = readl(par->vid_regs + GX_FP_PM);
 +              fp &= ~GX_FP_PM_P;
 +              writel(fp, par->vid_regs + GX_FP_PM);
 +#endif
-+
+-      fp = readl(par->vid_regs + GX_DCFG);
+-      fp |= GX_DCFG_FP_PWR_EN | GX_DCFG_FP_DATA_EN;
+-      writel(fp, par->vid_regs + GX_DCFG);
 +              /* Timing 1 */
 +              fp1 &= GX_FP_PT1_VSIZE_MASK;
 +              fp1 |= info->var.yres << GX_FP_PT1_VSIZE_SHIFT;
 +              writel(fp, par->vid_regs + GX_FP_PT1);
-+
+-      /* Unblank the panel */
 +              /* Timing 2 */
 +              writel(0x0F100000 | sync, par->vid_regs + GX_FP_PT2);
 +      }
@@ -4081,7 +4092,7 @@ index 7f3f18d..e282e74 100644
  
        /* Set up the flat panel (if it is enabled) */
  
-@@ -289,6 +348,100 @@ static void gx_configure_display(struct fb_info *info)
+@@ -289,6 +348,100 @@ static void gx_configure_display(struct 
                gx_configure_tft(info);
  }
  
@@ -4182,7 +4193,7 @@ index 7f3f18d..e282e74 100644
  static int gx_blank_display(struct fb_info *info, int blank_mode)
  {
        struct geodefb_par *par = info->par;
-@@ -315,6 +468,7 @@ static int gx_blank_display(struct fb_info *info, int blank_mode)
+@@ -315,6 +468,7 @@ static int gx_blank_display(struct fb_in
        default:
                return -EINVAL;
        }
@@ -4190,7 +4201,7 @@ index 7f3f18d..e282e74 100644
        dcfg = readl(par->vid_regs + GX_DCFG);
        dcfg &= ~(GX_DCFG_DAC_BL_EN
                  | GX_DCFG_HSYNC_EN | GX_DCFG_VSYNC_EN);
-@@ -326,7 +480,7 @@ static int gx_blank_display(struct fb_info *info, int blank_mode)
+@@ -326,7 +480,7 @@ static int gx_blank_display(struct fb_in
                dcfg |= GX_DCFG_VSYNC_EN;
        writel(dcfg, par->vid_regs + GX_DCFG);
  
@@ -4199,7 +4210,7 @@ index 7f3f18d..e282e74 100644
  
        if (par->enable_crt == 0) {
                fp_pm = readl(par->vid_regs + GX_FP_PM);
-@@ -340,8 +494,37 @@ static int gx_blank_display(struct fb_info *info, int blank_mode)
+@@ -340,8 +494,37 @@ static int gx_blank_display(struct fb_in
        return 0;
  }
  
@@ -4237,10 +4248,10 @@ index 7f3f18d..e282e74 100644
        .configure_display = gx_configure_display,
        .blank_display     = gx_blank_display,
  };
-diff --git a/drivers/video/geode/video_gx.h b/drivers/video/geode/video_gx.h
-index ce28d8f..c57b36b 100644
---- a/drivers/video/geode/video_gx.h
-+++ b/drivers/video/geode/video_gx.h
+Index: linux-2.6.23.17/drivers/video/geode/video_gx.h
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/geode/video_gx.h
++++ linux-2.6.23.17/drivers/video/geode/video_gx.h
 @@ -11,6 +11,8 @@
  #ifndef __VIDEO_GX_H__
  #define __VIDEO_GX_H__
@@ -4288,10 +4299,10 @@ index ce28d8f..c57b36b 100644
 +void gx_restore_regs(struct fb_info *info, struct geoderegs *regs);
 +
  #endif /* !__VIDEO_GX_H__ */
-diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
-index 3741ad7..49f6db5 100644
---- a/drivers/video/modedb.c
-+++ b/drivers/video/modedb.c
+Index: linux-2.6.23.17/drivers/video/modedb.c
+===================================================================
+--- linux-2.6.23.17.orig/drivers/video/modedb.c
++++ linux-2.6.23.17/drivers/video/modedb.c
 @@ -33,6 +33,8 @@ const char *global_mode_option;
       *  Standard video mode definitions (taken from XFree86)
       */
@@ -4301,7 +4312,7 @@ index 3741ad7..49f6db5 100644
  static const struct fb_videomode modedb[] = {
      {
        /* 640x400 @ 70 Hz, 31.5 kHz hsync */
-@@ -504,7 +506,8 @@ int fb_find_mode(struct fb_var_screeninfo *var,
+@@ -504,7 +506,8 @@ int fb_find_mode(struct fb_var_screeninf
      }
  
      if (!default_mode)
@@ -4311,11 +4322,11 @@ index 3741ad7..49f6db5 100644
  
      if (!default_bpp)
        default_bpp = 8;
-diff --git a/fs/Kconfig b/fs/Kconfig
-index f9eed6d..6fa3ea2 100644
---- a/fs/Kconfig
-+++ b/fs/Kconfig
-@@ -999,6 +999,23 @@ config HUGETLBFS
+Index: linux-2.6.23.17/fs/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/fs/Kconfig
++++ linux-2.6.23.17/fs/Kconfig
+@@ -1003,6 +1003,23 @@ config HUGETLBFS
  config HUGETLB_PAGE
        def_bool HUGETLBFS
  
@@ -4339,7 +4350,7 @@ index f9eed6d..6fa3ea2 100644
  config RAMFS
        bool
        default y
-@@ -1225,6 +1242,14 @@ config JFFS2_FS_WRITEBUFFER
+@@ -1229,6 +1246,14 @@ config JFFS2_FS_WRITEBUFFER
            - NOR flash with transparent ECC
            - DataFlash
  
@@ -4354,7 +4365,7 @@ index f9eed6d..6fa3ea2 100644
  config JFFS2_SUMMARY
        bool "JFFS2 summary support (EXPERIMENTAL)"
        depends on JFFS2_FS && EXPERIMENTAL
-@@ -1295,52 +1320,52 @@ config JFFS2_ZLIB
+@@ -1299,52 +1324,52 @@ config JFFS2_ZLIB
        select ZLIB_DEFLATE
        depends on JFFS2_FS
        default y
@@ -4434,11 +4445,11 @@ index f9eed6d..6fa3ea2 100644
  
  endchoice
  
-diff --git a/fs/Makefile b/fs/Makefile
-index 720c29d..61f1a4d 100644
---- a/fs/Makefile
-+++ b/fs/Makefile
-@@ -108,6 +108,7 @@ obj-$(CONFIG_ADFS_FS)              += adfs/
+Index: linux-2.6.23.17/fs/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/fs/Makefile
++++ linux-2.6.23.17/fs/Makefile
+@@ -110,6 +110,7 @@ obj-$(CONFIG_ADFS_FS)              += adfs/
  obj-$(CONFIG_FUSE_FS)         += fuse/
  obj-$(CONFIG_UDF_FS)          += udf/
  obj-$(CONFIG_SUN_OPENPROMFS)  += openpromfs/
@@ -4446,11 +4457,11 @@ index 720c29d..61f1a4d 100644
  obj-$(CONFIG_JFS_FS)          += jfs/
  obj-$(CONFIG_XFS_FS)          += xfs/
  obj-$(CONFIG_9P_FS)           += 9p/
-diff --git a/fs/jffs2/background.c b/fs/jffs2/background.c
-index 504643f..d568ae8 100644
---- a/fs/jffs2/background.c
-+++ b/fs/jffs2/background.c
-@@ -23,8 +23,8 @@ static int jffs2_garbage_collect_thread(void *);
+Index: linux-2.6.23.17/fs/jffs2/background.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/background.c
++++ linux-2.6.23.17/fs/jffs2/background.c
+@@ -23,8 +23,8 @@ static int jffs2_garbage_collect_thread(
  void jffs2_garbage_collect_trigger(struct jffs2_sb_info *c)
  {
        spin_lock(&c->erase_completion_lock);
@@ -4461,10 +4472,10 @@ index 504643f..d568ae8 100644
        spin_unlock(&c->erase_completion_lock);
  }
  
-diff --git a/fs/jffs2/compr.c b/fs/jffs2/compr.c
-index 485d065..d90ca05 100644
---- a/fs/jffs2/compr.c
-+++ b/fs/jffs2/compr.c
+Index: linux-2.6.23.17/fs/jffs2/compr.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/compr.c
++++ linux-2.6.23.17/fs/jffs2/compr.c
 @@ -5,7 +5,7 @@
   * Created by Arjan van de Ven <arjanv@redhat.com>
   *
@@ -4474,7 +4485,7 @@ index 485d065..d90ca05 100644
   *
   * For licensing information, see the file 'LICENCE' in this directory.
   *
-@@ -43,121 +43,122 @@ static uint32_t none_stat_compr_blocks=0,none_stat_decompr_blocks=0,none_stat_co
+@@ -43,121 +43,122 @@ static uint32_t none_stat_compr_blocks=0
   * *datalen accordingly to show the amount of data which were compressed.
   */
  uint16_t jffs2_compress(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
@@ -4489,12 +4500,7 @@ index 485d065..d90ca05 100644
 -        unsigned char *output_buf = NULL, *tmp_buf;
 -        uint32_t orig_slen, orig_dlen;
 -        uint32_t best_slen=0, best_dlen=0;
-+      int compr_ret;
-+      struct jffs2_compressor *this, *best=NULL;
-+      unsigned char *output_buf = NULL, *tmp_buf;
-+      uint32_t orig_slen, orig_dlen;
-+      uint32_t best_slen=0, best_dlen=0;
+-
 -        switch (jffs2_compression_mode) {
 -        case JFFS2_COMPR_MODE_NONE:
 -                break;
@@ -4511,23 +4517,7 @@ index 485d065..d90ca05 100644
 -                        /* Skip decompress-only backwards-compatibility and disabled modules */
 -                        if ((!this->compress)||(this->disabled))
 -                                continue;
-+      switch (jffs2_compression_mode) {
-+      case JFFS2_COMPR_MODE_NONE:
-+              break;
-+      case JFFS2_COMPR_MODE_PRIORITY:
-+              output_buf = kmalloc(*cdatalen,GFP_KERNEL);
-+              if (!output_buf) {
-+                      printk(KERN_WARNING "JFFS2: No memory for compressor allocation. Compression failed.\n");
-+                      goto out;
-+              }
-+              orig_slen = *datalen;
-+              orig_dlen = *cdatalen;
-+              spin_lock(&jffs2_compressor_list_lock);
-+              list_for_each_entry(this, &jffs2_compressor_list, list) {
-+                      /* Skip decompress-only backwards-compatibility and disabled modules */
-+                      if ((!this->compress)||(this->disabled))
-+                              continue;
+-
 -                        this->usecount++;
 -                        spin_unlock(&jffs2_compressor_list_lock);
 -                        *datalen  = orig_slen;
@@ -4606,6 +4596,29 @@ index 485d065..d90ca05 100644
 -        default:
 -                printk(KERN_ERR "JFFS2: unknow compression mode.\n");
 -        }
++      int compr_ret;
++      struct jffs2_compressor *this, *best=NULL;
++      unsigned char *output_buf = NULL, *tmp_buf;
++      uint32_t orig_slen, orig_dlen;
++      uint32_t best_slen=0, best_dlen=0;
++
++      switch (jffs2_compression_mode) {
++      case JFFS2_COMPR_MODE_NONE:
++              break;
++      case JFFS2_COMPR_MODE_PRIORITY:
++              output_buf = kmalloc(*cdatalen,GFP_KERNEL);
++              if (!output_buf) {
++                      printk(KERN_WARNING "JFFS2: No memory for compressor allocation. Compression failed.\n");
++                      goto out;
++              }
++              orig_slen = *datalen;
++              orig_dlen = *cdatalen;
++              spin_lock(&jffs2_compressor_list_lock);
++              list_for_each_entry(this, &jffs2_compressor_list, list) {
++                      /* Skip decompress-only backwards-compatibility and disabled modules */
++                      if ((!this->compress)||(this->disabled))
++                              continue;
++
 +                      this->usecount++;
 +                      spin_unlock(&jffs2_compressor_list_lock);
 +                      *datalen  = orig_slen;
@@ -4707,7 +4720,7 @@ index 485d065..d90ca05 100644
        return ret;
  }
  
-@@ -165,8 +166,8 @@ int jffs2_decompress(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
+@@ -165,8 +166,8 @@ int jffs2_decompress(struct jffs2_sb_inf
                     uint16_t comprtype, unsigned char *cdata_in,
                     unsigned char *data_out, uint32_t cdatalen, uint32_t datalen)
  {
@@ -4718,7 +4731,7 @@ index 485d065..d90ca05 100644
  
        /* Older code had a bug where it would write non-zero 'usercompr'
           fields. Deal with it. */
-@@ -177,32 +178,32 @@ int jffs2_decompress(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
+@@ -177,32 +178,32 @@ int jffs2_decompress(struct jffs2_sb_inf
        case JFFS2_COMPR_NONE:
                /* This should be special-cased elsewhere, but we might as well deal with it */
                memcpy(data_out, cdata_in, datalen);
@@ -4771,7 +4784,7 @@ index 485d065..d90ca05 100644
                return -EIO;
        }
        return 0;
-@@ -210,108 +211,108 @@ int jffs2_decompress(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
+@@ -210,108 +211,108 @@ int jffs2_decompress(struct jffs2_sb_inf
  
  int jffs2_register_compressor(struct jffs2_compressor *comp)
  {
@@ -4790,6 +4803,16 @@ index 485d065..d90ca05 100644
 -        comp->stat_compr_blocks=0;
 -        comp->stat_decompr_blocks=0;
 -        D1(printk(KERN_DEBUG "Registering JFFS2 compressor \"%s\"\n", comp->name));
+-
+-        spin_lock(&jffs2_compressor_list_lock);
+-
+-        list_for_each_entry(this, &jffs2_compressor_list, list) {
+-                if (this->priority < comp->priority) {
+-                        list_add(&comp->list, this->list.prev);
+-                        goto out;
+-                }
+-        }
+-        list_add_tail(&comp->list, &jffs2_compressor_list);
 +      if (!comp->name) {
 +              printk(KERN_WARNING "NULL compressor name at registering JFFS2 compressor. Failed.\n");
 +              return -1;
@@ -4802,17 +4825,9 @@ index 485d065..d90ca05 100644
 +      comp->stat_compr_blocks=0;
 +      comp->stat_decompr_blocks=0;
 +      D1(printk(KERN_DEBUG "Registering JFFS2 compressor \"%s\"\n", comp->name));
--        spin_lock(&jffs2_compressor_list_lock);
++
 +      spin_lock(&jffs2_compressor_list_lock);
--        list_for_each_entry(this, &jffs2_compressor_list, list) {
--                if (this->priority < comp->priority) {
--                        list_add(&comp->list, this->list.prev);
--                        goto out;
--                }
--        }
--        list_add_tail(&comp->list, &jffs2_compressor_list);
++
 +      list_for_each_entry(this, &jffs2_compressor_list, list) {
 +              if (this->priority < comp->priority) {
 +                      list_add(&comp->list, this->list.prev);
@@ -4839,19 +4854,13 @@ index 485d065..d90ca05 100644
  {
 -        D2(struct jffs2_compressor *this;)
 +      D2(struct jffs2_compressor *this;)
--        D1(printk(KERN_DEBUG "Unregistering JFFS2 compressor \"%s\"\n", comp->name));
++
 +      D1(printk(KERN_DEBUG "Unregistering JFFS2 compressor \"%s\"\n", comp->name));
  
--        spin_lock(&jffs2_compressor_list_lock);
+-        D1(printk(KERN_DEBUG "Unregistering JFFS2 compressor \"%s\"\n", comp->name));
 +      spin_lock(&jffs2_compressor_list_lock);
  
--        if (comp->usecount) {
--                spin_unlock(&jffs2_compressor_list_lock);
--                printk(KERN_WARNING "JFFS2: Compressor modul is in use. Unregister failed.\n");
--                return -1;
--        }
--        list_del(&comp->list);
+-        spin_lock(&jffs2_compressor_list_lock);
 +      if (comp->usecount) {
 +              spin_unlock(&jffs2_compressor_list_lock);
 +              printk(KERN_WARNING "JFFS2: Compressor modul is in use. Unregister failed.\n");
@@ -4859,6 +4868,13 @@ index 485d065..d90ca05 100644
 +      }
 +      list_del(&comp->list);
  
+-        if (comp->usecount) {
+-                spin_unlock(&jffs2_compressor_list_lock);
+-                printk(KERN_WARNING "JFFS2: Compressor modul is in use. Unregister failed.\n");
+-                return -1;
+-        }
+-        list_del(&comp->list);
+-
 -        D2(list_for_each_entry(this, &jffs2_compressor_list, list) {
 -                printk(KERN_DEBUG "Compressor \"%s\", prio %d\n", this->name, this->priority);
 -        })
@@ -4937,10 +4953,10 @@ index 485d065..d90ca05 100644
 -        return 0;
 +      return 0;
  }
-diff --git a/fs/jffs2/compr.h b/fs/jffs2/compr.h
-index 68cc701..1070275 100644
---- a/fs/jffs2/compr.h
-+++ b/fs/jffs2/compr.h
+Index: linux-2.6.23.17/fs/jffs2/compr.h
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/compr.h
++++ linux-2.6.23.17/fs/jffs2/compr.h
 @@ -2,7 +2,7 @@
   * JFFS2 -- Journalling Flash File System, Version 2.
   *
@@ -5014,11 +5030,11 @@ index 68cc701..1070275 100644
  
  void jffs2_free_comprbuf(unsigned char *comprbuf, unsigned char *orig);
  
-diff --git a/fs/jffs2/compr_rtime.c b/fs/jffs2/compr_rtime.c
-index 0d0bfd2..546d153 100644
---- a/fs/jffs2/compr_rtime.c
-+++ b/fs/jffs2/compr_rtime.c
-@@ -104,7 +104,7 @@ static int jffs2_rtime_decompress(unsigned char *data_in,
+Index: linux-2.6.23.17/fs/jffs2/compr_rtime.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/compr_rtime.c
++++ linux-2.6.23.17/fs/jffs2/compr_rtime.c
+@@ -104,7 +104,7 @@ static int jffs2_rtime_decompress(unsign
                        }
                }
        }
@@ -5027,11 +5043,11 @@ index 0d0bfd2..546d153 100644
  }
  
  static struct jffs2_compressor jffs2_rtime_comp = {
-diff --git a/fs/jffs2/compr_rubin.c b/fs/jffs2/compr_rubin.c
-index ea0431e..c73fa89 100644
---- a/fs/jffs2/compr_rubin.c
-+++ b/fs/jffs2/compr_rubin.c
-@@ -384,7 +384,7 @@ static int jffs2_rubinmips_decompress(unsigned char *data_in,
+Index: linux-2.6.23.17/fs/jffs2/compr_rubin.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/compr_rubin.c
++++ linux-2.6.23.17/fs/jffs2/compr_rubin.c
+@@ -384,7 +384,7 @@ static int jffs2_rubinmips_decompress(un
                                      void *model)
  {
        rubin_do_decompress(BIT_DIVIDER_MIPS, bits_mips, data_in, cpage_out, sourcelen, dstlen);
@@ -5040,7 +5056,7 @@ index ea0431e..c73fa89 100644
  }
  
  static int jffs2_dynrubin_decompress(unsigned char *data_in,
-@@ -399,7 +399,7 @@ static int jffs2_dynrubin_decompress(unsigned char *data_in,
+@@ -399,7 +399,7 @@ static int jffs2_dynrubin_decompress(uns
                bits[c] = data_in[c];
  
        rubin_do_decompress(256, bits, data_in+8, cpage_out, sourcelen-8, dstlen);
@@ -5049,11 +5065,11 @@ index ea0431e..c73fa89 100644
  }
  
  static struct jffs2_compressor jffs2_rubinmips_comp = {
-diff --git a/fs/jffs2/compr_zlib.c b/fs/jffs2/compr_zlib.c
-index 2b87fcc..cfd301a 100644
---- a/fs/jffs2/compr_zlib.c
-+++ b/fs/jffs2/compr_zlib.c
-@@ -181,7 +181,7 @@ static int jffs2_zlib_decompress(unsigned char *data_in,
+Index: linux-2.6.23.17/fs/jffs2/compr_zlib.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/compr_zlib.c
++++ linux-2.6.23.17/fs/jffs2/compr_zlib.c
+@@ -181,7 +181,7 @@ static int jffs2_zlib_decompress(unsigne
        }
        zlib_inflateEnd(&inf_strm);
        mutex_unlock(&inflate_mutex);
@@ -5076,11 +5092,11 @@ index 2b87fcc..cfd301a 100644
  
      return ret;
  }
-diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c
-index c1dfca3..d293a1f 100644
---- a/fs/jffs2/dir.c
-+++ b/fs/jffs2/dir.c
-@@ -32,7 +32,7 @@ static int jffs2_mkdir (struct inode *,struct dentry *,int);
+Index: linux-2.6.23.17/fs/jffs2/dir.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/dir.c
++++ linux-2.6.23.17/fs/jffs2/dir.c
+@@ -32,7 +32,7 @@ static int jffs2_mkdir (struct inode *,s
  static int jffs2_rmdir (struct inode *,struct dentry *);
  static int jffs2_mknod (struct inode *,struct dentry *,int,dev_t);
  static int jffs2_rename (struct inode *, struct dentry *,
@@ -5089,7 +5105,7 @@ index c1dfca3..d293a1f 100644
  
  const struct file_operations jffs2_dir_operations =
  {
-@@ -770,7 +770,7 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de
+@@ -770,7 +770,7 @@ static int jffs2_mknod (struct inode *di
  }
  
  static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry,
@@ -5098,11 +5114,11 @@ index c1dfca3..d293a1f 100644
  {
        int ret;
        struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
-diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
-index 66e7c2f..efd83f3 100644
---- a/fs/jffs2/erase.c
-+++ b/fs/jffs2/erase.c
-@@ -38,8 +38,8 @@ static void jffs2_erase_block(struct jffs2_sb_info *c,
+Index: linux-2.6.23.17/fs/jffs2/erase.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/erase.c
++++ linux-2.6.23.17/fs/jffs2/erase.c
+@@ -38,8 +38,8 @@ static void jffs2_erase_block(struct jff
  #ifdef __ECOS
         ret = jffs2_flash_erase(c, jeb);
         if (!ret) {
@@ -5113,7 +5129,7 @@ index 66e7c2f..efd83f3 100644
         }
         bad_offset = jeb->offset;
  #else /* Linux */
-@@ -50,12 +50,14 @@ static void jffs2_erase_block(struct jffs2_sb_info *c,
+@@ -50,12 +50,14 @@ static void jffs2_erase_block(struct jff
        instr = kmalloc(sizeof(struct erase_info) + sizeof(struct erase_priv_struct), GFP_KERNEL);
        if (!instr) {
                printk(KERN_WARNING "kmalloc for struct erase_info in jffs2_erase_block failed. Refiling block for later\n");
@@ -5128,7 +5144,7 @@ index 66e7c2f..efd83f3 100644
                return;
        }
  
-@@ -82,12 +84,14 @@ static void jffs2_erase_block(struct jffs2_sb_info *c,
+@@ -82,12 +84,14 @@ static void jffs2_erase_block(struct jff
        if (ret == -ENOMEM || ret == -EAGAIN) {
                /* Erase failed immediately. Refile it on the list */
                D1(printk(KERN_DEBUG "Erase at 0x%08x failed: %d. Refiling on erase_pending_list\n", jeb->offset, ret));
@@ -5143,7 +5159,7 @@ index 66e7c2f..efd83f3 100644
                return;
        }
  
-@@ -114,6 +118,7 @@ void jffs2_erase_pending_blocks(struct jffs2_sb_info *c, int count)
+@@ -114,6 +118,7 @@ void jffs2_erase_pending_blocks(struct j
                        jeb = list_entry(c->erase_complete_list.next, struct jffs2_eraseblock, list);
                        list_del(&jeb->list);
                        spin_unlock(&c->erase_completion_lock);
@@ -5151,7 +5167,7 @@ index 66e7c2f..efd83f3 100644
                        jffs2_mark_erased_block(c, jeb);
  
                        if (!--count) {
-@@ -134,6 +139,7 @@ void jffs2_erase_pending_blocks(struct jffs2_sb_info *c, int count)
+@@ -134,6 +139,7 @@ void jffs2_erase_pending_blocks(struct j
                        jffs2_free_jeb_node_refs(c, jeb);
                        list_add(&jeb->list, &c->erasing_list);
                        spin_unlock(&c->erase_completion_lock);
@@ -5159,7 +5175,7 @@ index 66e7c2f..efd83f3 100644
  
                        jffs2_erase_block(c, jeb);
  
-@@ -142,23 +148,25 @@ void jffs2_erase_pending_blocks(struct jffs2_sb_info *c, int count)
+@@ -142,23 +148,25 @@ void jffs2_erase_pending_blocks(struct j
                }
  
                /* Be nice */
@@ -5188,7 +5204,7 @@ index 66e7c2f..efd83f3 100644
        /* Ensure that kupdated calls us again to mark them clean */
        jffs2_erase_pending_trigger(c);
  }
-@@ -172,22 +180,26 @@ static void jffs2_erase_failed(struct jffs2_sb_info *c, struct jffs2_eraseblock
+@@ -172,22 +180,26 @@ static void jffs2_erase_failed(struct jf
                   failed too many times. */
                if (!jffs2_write_nand_badblock(c, jeb, bad_offset)) {
                        /* We'd like to give this block another try. */
@@ -5215,7 +5231,7 @@ index 66e7c2f..efd83f3 100644
        wake_up(&c->erase_wait);
  }
  
-@@ -317,6 +329,33 @@ static int jffs2_block_check_erase(struct jffs2_sb_info *c, struct jffs2_erasebl
+@@ -317,6 +329,33 @@ static int jffs2_block_check_erase(struc
        size_t retlen;
        int ret = -EIO;
  
@@ -5249,7 +5265,7 @@ index 66e7c2f..efd83f3 100644
        ebuf = kmalloc(PAGE_SIZE, GFP_KERNEL);
        if (!ebuf) {
                printk(KERN_WARNING "Failed to allocate page buffer for verifying erase at 0x%08x. Refiling\n", jeb->offset);
-@@ -417,6 +456,7 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
+@@ -417,6 +456,7 @@ static void jffs2_mark_erased_block(stru
                jffs2_link_node_ref(c, jeb, jeb->offset | REF_NORMAL, c->cleanmarker_size, NULL);
        }
  
@@ -5257,7 +5273,7 @@ index 66e7c2f..efd83f3 100644
        spin_lock(&c->erase_completion_lock);
        c->erasing_size -= c->sector_size;
        c->free_size += jeb->free_size;
-@@ -429,23 +469,28 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
+@@ -429,23 +469,28 @@ static void jffs2_mark_erased_block(stru
        c->nr_erasing_blocks--;
        c->nr_free_blocks++;
        spin_unlock(&c->erase_completion_lock);
@@ -5286,11 +5302,11 @@ index 66e7c2f..efd83f3 100644
 +      up(&c->erase_free_sem);
        return;
  }
-diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c
-index 2d99e06..eded819 100644
---- a/fs/jffs2/gc.c
-+++ b/fs/jffs2/gc.c
-@@ -556,7 +556,7 @@ static int jffs2_garbage_collect_pristine(struct jffs2_sb_info *c,
+Index: linux-2.6.23.17/fs/jffs2/gc.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/gc.c
++++ linux-2.6.23.17/fs/jffs2/gc.c
+@@ -556,7 +556,7 @@ static int jffs2_garbage_collect_pristin
  
        node = kmalloc(rawlen, GFP_KERNEL);
        if (!node)
@@ -5299,7 +5315,7 @@ index 2d99e06..eded819 100644
  
        ret = jffs2_flash_read(c, ref_offset(raw), rawlen, &retlen, (char *)node);
        if (!ret && retlen != rawlen)
-@@ -624,7 +624,7 @@ static int jffs2_garbage_collect_pristine(struct jffs2_sb_info *c,
+@@ -624,7 +624,7 @@ static int jffs2_garbage_collect_pristin
  
        if (ret || (retlen != rawlen)) {
                printk(KERN_NOTICE "Write of %d bytes at 0x%08x failed. returned %d, retlen %zd\n",
@@ -5308,10 +5324,10 @@ index 2d99e06..eded819 100644
                if (retlen) {
                        jffs2_add_physical_node_ref(c, phys_ofs | REF_OBSOLETE, rawlen, NULL);
                } else {
-diff --git a/fs/jffs2/jffs2_fs_sb.h b/fs/jffs2/jffs2_fs_sb.h
-index b13298a..ae99cd7 100644
---- a/fs/jffs2/jffs2_fs_sb.h
-+++ b/fs/jffs2/jffs2_fs_sb.h
+Index: linux-2.6.23.17/fs/jffs2/jffs2_fs_sb.h
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/jffs2_fs_sb.h
++++ linux-2.6.23.17/fs/jffs2/jffs2_fs_sb.h
 @@ -106,6 +106,9 @@ struct jffs2_sb_info {
  
        uint32_t wbuf_pagesize; /* 0 for NOR and other flashes with no wbuf */
@@ -5322,11 +5338,11 @@ index b13298a..ae99cd7 100644
  #ifdef CONFIG_JFFS2_FS_WRITEBUFFER
        unsigned char *wbuf; /* Write-behind buffer for NAND flash */
        uint32_t wbuf_ofs;
-diff --git a/fs/jffs2/nodelist.h b/fs/jffs2/nodelist.h
-index bc5509f..8b4955a 100644
---- a/fs/jffs2/nodelist.h
-+++ b/fs/jffs2/nodelist.h
-@@ -127,7 +127,7 @@ static inline struct jffs2_inode_cache *jffs2_raw_ref_to_ic(struct jffs2_raw_nod
+Index: linux-2.6.23.17/fs/jffs2/nodelist.h
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/nodelist.h
++++ linux-2.6.23.17/fs/jffs2/nodelist.h
+@@ -127,7 +127,7 @@ static inline struct jffs2_inode_cache *
        return ((struct jffs2_inode_cache *)raw);
  }
  
@@ -5344,11 +5360,11 @@ index bc5509f..8b4955a 100644
  
  #define write_ofs(c) ((c)->nextblock->offset + (c)->sector_size - (c)->nextblock->free_size)
  
-diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c
-index dbc908a..5b49bff 100644
---- a/fs/jffs2/nodemgmt.c
-+++ b/fs/jffs2/nodemgmt.c
-@@ -154,7 +154,7 @@ int jffs2_reserve_space_gc(struct jffs2_sb_info *c, uint32_t minsize,
+Index: linux-2.6.23.17/fs/jffs2/nodemgmt.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/nodemgmt.c
++++ linux-2.6.23.17/fs/jffs2/nodemgmt.c
+@@ -154,7 +154,7 @@ int jffs2_reserve_space_gc(struct jffs2_
        while(ret == -EAGAIN) {
                ret = jffs2_do_reserve_space(c, minsize, len, sumsize);
                if (ret) {
@@ -5357,7 +5373,7 @@ index dbc908a..5b49bff 100644
                }
        }
        spin_unlock(&c->erase_completion_lock);
-@@ -423,7 +423,12 @@ struct jffs2_raw_node_ref *jffs2_add_physical_node_ref(struct jffs2_sb_info *c,
+@@ -423,7 +423,12 @@ struct jffs2_raw_node_ref *jffs2_add_phy
           even after refiling c->nextblock */
        if ((c->nextblock || ((ofs & 3) != REF_OBSOLETE))
            && (jeb != c->nextblock || (ofs & ~3) != jeb->offset + (c->sector_size - jeb->free_size))) {
@@ -5371,11 +5387,11 @@ index dbc908a..5b49bff 100644
                return ERR_PTR(-EINVAL);
        }
  #endif
-diff --git a/fs/jffs2/readinode.c b/fs/jffs2/readinode.c
-index b5baa35..8d4319c 100644
---- a/fs/jffs2/readinode.c
-+++ b/fs/jffs2/readinode.c
-@@ -211,7 +211,7 @@ static void jffs2_kill_tn(struct jffs2_sb_info *c, struct jffs2_tmp_dnode_info *
+Index: linux-2.6.23.17/fs/jffs2/readinode.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/readinode.c
++++ linux-2.6.23.17/fs/jffs2/readinode.c
+@@ -211,7 +211,7 @@ static void jffs2_kill_tn(struct jffs2_s
   * ordering.
   *
   * Returns 0 if the node was handled (including marking it obsolete)
@@ -5384,7 +5400,7 @@ index b5baa35..8d4319c 100644
   */
  static int jffs2_add_tn_to_tree(struct jffs2_sb_info *c,
                                struct jffs2_readinode_info *rii,
-@@ -862,8 +862,8 @@ static inline int read_unknown(struct jffs2_sb_info *c, struct jffs2_raw_node_re
+@@ -862,8 +862,8 @@ static inline int read_unknown(struct jf
                JFFS2_ERROR("REF_UNCHECKED but unknown node at %#08x\n",
                            ref_offset(ref));
                JFFS2_ERROR("Node is {%04x,%04x,%08x,%08x}. Please report this error.\n",
@@ -5395,11 +5411,11 @@ index b5baa35..8d4319c 100644
                jffs2_mark_node_obsolete(c, ref);
                return 0;
        }
-diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
-index 6c75cd4..59dd408 100644
---- a/fs/jffs2/scan.c
-+++ b/fs/jffs2/scan.c
-@@ -863,7 +863,7 @@ scan_more:
+Index: linux-2.6.23.17/fs/jffs2/scan.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/scan.c
++++ linux-2.6.23.17/fs/jffs2/scan.c
+@@ -877,7 +877,7 @@ scan_more:
                        switch (je16_to_cpu(node->nodetype) & JFFS2_COMPAT_MASK) {
                        case JFFS2_FEATURE_ROCOMPAT:
                                printk(KERN_NOTICE "Read-only compatible feature node (0x%04x) found at offset 0x%08x\n", je16_to_cpu(node->nodetype), ofs);
@@ -5408,11 +5424,11 @@ index 6c75cd4..59dd408 100644
                                if (!(jffs2_is_readonly(c)))
                                        return -EROFS;
                                if ((err = jffs2_scan_dirty_space(c, jeb, PAD(je32_to_cpu(node->totlen)))))
-diff --git a/fs/jffs2/security.c b/fs/jffs2/security.c
-index bc9f6ba..02c39c6 100644
---- a/fs/jffs2/security.c
-+++ b/fs/jffs2/security.c
-@@ -38,9 +38,9 @@ int jffs2_init_security(struct inode *inode, struct inode *dir)
+Index: linux-2.6.23.17/fs/jffs2/security.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/security.c
++++ linux-2.6.23.17/fs/jffs2/security.c
+@@ -38,9 +38,9 @@ int jffs2_init_security(struct inode *in
        }
        rc = do_jffs2_setxattr(inode, JFFS2_XPREFIX_SECURITY, name, value, len, 0);
  
@@ -5425,10 +5441,10 @@ index bc9f6ba..02c39c6 100644
  }
  
  /* ---- XATTR Handler for "security.*" ----------------- */
-diff --git a/fs/jffs2/summary.c b/fs/jffs2/summary.c
-index d828b29..2a77d3f 100644
---- a/fs/jffs2/summary.c
-+++ b/fs/jffs2/summary.c
+Index: linux-2.6.23.17/fs/jffs2/summary.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/summary.c
++++ linux-2.6.23.17/fs/jffs2/summary.c
 @@ -2,10 +2,10 @@
   * JFFS2 -- Journalling Flash File System, Version 2.
   *
@@ -5444,10 +5460,10 @@ index d828b29..2a77d3f 100644
   *
   * For licensing information, see the file 'LICENCE' in this directory.
   *
-diff --git a/fs/jffs2/summary.h b/fs/jffs2/summary.h
-index 0c6669e..8bf34f2 100644
---- a/fs/jffs2/summary.h
-+++ b/fs/jffs2/summary.h
+Index: linux-2.6.23.17/fs/jffs2/summary.h
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/summary.h
++++ linux-2.6.23.17/fs/jffs2/summary.h
 @@ -2,9 +2,9 @@
   * JFFS2 -- Journalling Flash File System, Version 2.
   *
@@ -5461,11 +5477,11 @@ index 0c6669e..8bf34f2 100644
   *
   * For licensing information, see the file 'LICENCE' in this directory.
   *
-diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
-index 91d1d0f..d1d4f27 100644
---- a/fs/jffs2/wbuf.c
-+++ b/fs/jffs2/wbuf.c
-@@ -220,6 +220,47 @@ static struct jffs2_raw_node_ref **jffs2_incore_replace_raw(struct jffs2_sb_info
+Index: linux-2.6.23.17/fs/jffs2/wbuf.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/wbuf.c
++++ linux-2.6.23.17/fs/jffs2/wbuf.c
+@@ -220,6 +220,47 @@ static struct jffs2_raw_node_ref **jffs2
        return NULL;
  }
  
@@ -5513,7 +5529,7 @@ index 91d1d0f..d1d4f27 100644
  /* Recover from failure to write wbuf. Recover the nodes up to the
   * wbuf, not the one which we were starting to try to write. */
  
-@@ -380,7 +421,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c)
+@@ -380,7 +421,7 @@ static void jffs2_wbuf_recover(struct jf
                        ret = c->mtd->write(c->mtd, ofs, towrite, &retlen,
                                            rewrite_buf);
  
@@ -5522,7 +5538,7 @@ index 91d1d0f..d1d4f27 100644
                        /* Argh. We tried. Really we did. */
                        printk(KERN_CRIT "Recovery of wbuf failed due to a second write error\n");
                        kfree(buf);
-@@ -587,15 +628,16 @@ static int __jffs2_flush_wbuf(struct jffs2_sb_info *c, int pad)
+@@ -587,15 +628,16 @@ static int __jffs2_flush_wbuf(struct jff
  
                ret = c->mtd->write(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, &retlen, c->wbuf);
  
@@ -5559,7 +5575,7 @@ index 91d1d0f..d1d4f27 100644
  
  static const struct jffs2_unknown_node oob_cleanmarker =
  {
-@@ -1021,8 +1063,8 @@ int jffs2_check_oob_empty(struct jffs2_sb_info *c,
+@@ -1021,8 +1063,8 @@ int jffs2_check_oob_empty(struct jffs2_s
  /*
   * Check for a valid cleanmarker.
   * Returns: 0 if a valid cleanmarker was found
@@ -5570,7 +5586,7 @@ index 91d1d0f..d1d4f27 100644
   */
  int jffs2_check_nand_cleanmarker(struct jffs2_sb_info *c,
                                 struct jffs2_eraseblock *jeb)
-@@ -1138,11 +1180,22 @@ int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
+@@ -1138,11 +1180,22 @@ int jffs2_nand_flash_setup(struct jffs2_
                return -ENOMEM;
        }
  
@@ -5593,11 +5609,11 @@ index 91d1d0f..d1d4f27 100644
        kfree(c->wbuf);
        kfree(c->oobbuf);
  }
-diff --git a/fs/jffs2/xattr.h b/fs/jffs2/xattr.h
-index 3b0ff29..6e3b5dd 100644
---- a/fs/jffs2/xattr.h
-+++ b/fs/jffs2/xattr.h
-@@ -75,7 +75,7 @@ extern void jffs2_build_xattr_subsystem(struct jffs2_sb_info *c);
+Index: linux-2.6.23.17/fs/jffs2/xattr.h
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/xattr.h
++++ linux-2.6.23.17/fs/jffs2/xattr.h
+@@ -75,7 +75,7 @@ extern void jffs2_build_xattr_subsystem(
  extern void jffs2_clear_xattr_subsystem(struct jffs2_sb_info *c);
  
  extern struct jffs2_xattr_datum *jffs2_setup_xattr_datum(struct jffs2_sb_info *c,
@@ -5606,10 +5622,10 @@ index 3b0ff29..6e3b5dd 100644
  
  extern void jffs2_xattr_delete_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic);
  extern void jffs2_xattr_free_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic);
-diff --git a/fs/jffs2/xattr_user.c b/fs/jffs2/xattr_user.c
-index 40942bc..8bbeab9 100644
---- a/fs/jffs2/xattr_user.c
-+++ b/fs/jffs2/xattr_user.c
+Index: linux-2.6.23.17/fs/jffs2/xattr_user.c
+===================================================================
+--- linux-2.6.23.17.orig/fs/jffs2/xattr_user.c
++++ linux-2.6.23.17/fs/jffs2/xattr_user.c
 @@ -17,7 +17,7 @@
  #include "nodelist.h"
  
@@ -5619,7 +5635,7 @@ index 40942bc..8bbeab9 100644
  {
        if (!strcmp(name, ""))
                return -EINVAL;
-@@ -25,7 +25,7 @@ static int jffs2_user_getxattr(struct inode *inode, const char *name,
+@@ -25,7 +25,7 @@ static int jffs2_user_getxattr(struct in
  }
  
  static int jffs2_user_setxattr(struct inode *inode, const char *name, const void *buffer,
@@ -5628,11 +5644,11 @@ index 40942bc..8bbeab9 100644
  {
        if (!strcmp(name, ""))
                return -EINVAL;
-diff --git a/include/asm-i386/geode.h b/include/asm-i386/geode.h
-index 6da4bbb..f18ebe2 100644
---- a/include/asm-i386/geode.h
-+++ b/include/asm-i386/geode.h
-@@ -135,6 +135,55 @@ static inline void geode_gpio_event_pme(unsigned int gpio, int pair)
+Index: linux-2.6.23.17/include/asm-i386/geode.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-i386/geode.h
++++ linux-2.6.23.17/include/asm-i386/geode.h
+@@ -135,6 +135,55 @@ static inline void geode_gpio_event_pme(
        geode_gpio_setup_event(gpio, pair, 1);
  }
  
@@ -5688,11 +5704,10 @@ index 6da4bbb..f18ebe2 100644
  /* Specific geode tests */
  
  static inline int is_geode_gx(void)
-
-diff --git a/include/asm-i386/setup.h b/include/asm-i386/setup.h
-index 7862fe8..d7146c0 100644
---- a/include/asm-i386/setup.h
-+++ b/include/asm-i386/setup.h
+Index: linux-2.6.23.17/include/asm-i386/setup.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-i386/setup.h
++++ linux-2.6.23.17/include/asm-i386/setup.h
 @@ -24,6 +24,7 @@
  #define OLD_CL_BASE_ADDR      0x90000
  #define OLD_CL_OFFSET         0x90022
@@ -5701,11 +5716,11 @@ index 7862fe8..d7146c0 100644
  
  #ifndef __ASSEMBLY__
  
-diff --git a/include/linux/console.h b/include/linux/console.h
-index 56a7bcd..1a8b034 100644
---- a/include/linux/console.h
-+++ b/include/linux/console.h
-@@ -121,14 +121,11 @@ extern void console_stop(struct console *);
+Index: linux-2.6.23.17/include/linux/console.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/console.h
++++ linux-2.6.23.17/include/linux/console.h
+@@ -121,14 +121,11 @@ extern void console_stop(struct console 
  extern void console_start(struct console *);
  extern int is_console_locked(void);
  
@@ -5722,10 +5737,10 @@ index 56a7bcd..1a8b034 100644
  
  int mda_console_init(void);
  void prom_con_init(void);
-diff --git a/include/linux/fb.h b/include/linux/fb.h
-index cec5410..6b59db5 100644
---- a/include/linux/fb.h
-+++ b/include/linux/fb.h
+Index: linux-2.6.23.17/include/linux/fb.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/fb.h
++++ linux-2.6.23.17/include/linux/fb.h
 @@ -664,6 +664,12 @@ struct fb_ops {
        /* restore saved state */
        void (*fb_restore_state)(struct fb_info *info);
@@ -5739,7 +5754,7 @@ index cec5410..6b59db5 100644
        /* get capability given var */
        void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps,
                            struct fb_var_screeninfo *var);
-@@ -943,6 +949,9 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
+@@ -943,6 +949,9 @@ extern int fb_get_color_depth(struct fb_
  extern int fb_get_options(char *name, char **option);
  extern int fb_new_modelist(struct fb_info *info);
  
@@ -5749,10 +5764,10 @@ index cec5410..6b59db5 100644
  extern struct fb_info *registered_fb[FB_MAX];
  extern int num_registered_fb;
  extern struct class *fb_class;
-diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h
-index a56d24a..fd0a260 100644
---- a/include/linux/mtd/onenand.h
-+++ b/include/linux/mtd/onenand.h
+Index: linux-2.6.23.17/include/linux/mtd/onenand.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/mtd/onenand.h
++++ linux-2.6.23.17/include/linux/mtd/onenand.h
 @@ -60,6 +60,7 @@ struct onenand_bufferram {
   * @erase_shift:      [INTERN] number of address bits in a block
   * @page_shift:               [INTERN] number of address bits in a page
@@ -5800,10 +5815,10 @@ index a56d24a..fd0a260 100644
  #define ONENAND_PAGEBUF_ALLOC         (0x1000)
  #define ONENAND_OOBBUF_ALLOC          (0x2000)
  
-diff --git a/include/linux/mtd/onenand_regs.h b/include/linux/mtd/onenand_regs.h
-index af94719..c46161f 100644
---- a/include/linux/mtd/onenand_regs.h
-+++ b/include/linux/mtd/onenand_regs.h
+Index: linux-2.6.23.17/include/linux/mtd/onenand_regs.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/mtd/onenand_regs.h
++++ linux-2.6.23.17/include/linux/mtd/onenand_regs.h
 @@ -74,6 +74,8 @@
  
  #define ONENAND_DEVICE_DENSITY_512Mb  (0x002)
@@ -5822,10 +5837,10 @@ index af94719..c46161f 100644
  #define ONENAND_CMD_UNLOCK            (0x23)
  #define ONENAND_CMD_LOCK              (0x2A)
  #define ONENAND_CMD_LOCK_TIGHT                (0x2C)
-diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
-index 699b7e9..b44facf 100644
---- a/include/linux/vt_kern.h
-+++ b/include/linux/vt_kern.h
+Index: linux-2.6.23.17/include/linux/vt_kern.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/vt_kern.h
++++ linux-2.6.23.17/include/linux/vt_kern.h
 @@ -95,4 +95,23 @@ struct vt_spawn_console {
  };
  extern struct vt_spawn_console vt_spawn_con;
@@ -5850,10 +5865,10 @@ index 699b7e9..b44facf 100644
 +}
 +
  #endif /* _VT_KERN_H */
-diff --git a/kernel/power/console.c b/kernel/power/console.c
-index 89bcf49..dca98f5 100644
---- a/kernel/power/console.c
-+++ b/kernel/power/console.c
+Index: linux-2.6.23.17/kernel/power/console.c
+===================================================================
+--- linux-2.6.23.17.orig/kernel/power/console.c
++++ linux-2.6.23.17/kernel/power/console.c
 @@ -9,7 +9,7 @@
  #include <linux/console.h>
  #include "power.h"
index 421ab283bc7237de84b96537d8cad1ffcf6e3f93..c322e46f535651ab372b92cf3f6470a837fd7af1 100644 (file)
@@ -1,7 +1,7 @@
-diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
-index 246ac23..874a2c8 100644
---- a/include/sound/ac97_codec.h
-+++ b/include/sound/ac97_codec.h
+Index: linux-2.6.23.17/include/sound/ac97_codec.h
+===================================================================
+--- linux-2.6.23.17.orig/include/sound/ac97_codec.h
++++ linux-2.6.23.17/include/sound/ac97_codec.h
 @@ -281,10 +281,12 @@
  /* specific - Analog Devices */
  #define AC97_AD_TEST          0x5a    /* test register */
@@ -15,11 +15,11 @@ index 246ac23..874a2c8 100644
  
  /* specific - Cirrus Logic */
  #define AC97_CSR_ACMODE               0x5e    /* AC Mode Register */
-diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
-index bbed644..090e852 100644
---- a/sound/pci/ac97/ac97_codec.c
-+++ b/sound/pci/ac97/ac97_codec.c
-@@ -49,7 +49,7 @@ module_param(enable_loopback, bool, 0444);
+Index: linux-2.6.23.17/sound/pci/ac97/ac97_codec.c
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/ac97/ac97_codec.c
++++ linux-2.6.23.17/sound/pci/ac97/ac97_codec.c
+@@ -49,7 +49,7 @@ module_param(enable_loopback, bool, 0444
  MODULE_PARM_DESC(enable_loopback, "Enable AC97 ADC/DAC Loopback Control");
  
  #ifdef CONFIG_SND_AC97_POWER_SAVE
@@ -28,11 +28,11 @@ index bbed644..090e852 100644
  module_param(power_save, bool, 0644);
  MODULE_PARM_DESC(power_save, "Enable AC97 power-saving control");
  #endif
-diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
-index 581ebba..06637f7 100644
---- a/sound/pci/ac97/ac97_patch.c
-+++ b/sound/pci/ac97/ac97_patch.c
-@@ -1973,8 +1973,9 @@ static const struct snd_kcontrol_new snd_ac97_ad1888_controls[] = {
+Index: linux-2.6.23.17/sound/pci/ac97/ac97_patch.c
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/ac97/ac97_patch.c
++++ linux-2.6.23.17/sound/pci/ac97/ac97_patch.c
+@@ -1973,8 +1973,9 @@ static const struct snd_kcontrol_new snd
                .get = snd_ac97_ad1888_lohpsel_get,
                .put = snd_ac97_ad1888_lohpsel_put
        },
@@ -44,10 +44,10 @@ index 581ebba..06637f7 100644
        AC97_SINGLE("Spread Front to Surround and Center/LFE", AC97_AD_MISC, 7, 1, 0),
        {
                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-diff --git a/sound/pci/cs5535audio/Makefile b/sound/pci/cs5535audio/Makefile
-index ad947b4..3866c4d 100644
---- a/sound/pci/cs5535audio/Makefile
-+++ b/sound/pci/cs5535audio/Makefile
+Index: linux-2.6.23.17/sound/pci/cs5535audio/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/cs5535audio/Makefile
++++ linux-2.6.23.17/sound/pci/cs5535audio/Makefile
 @@ -8,5 +8,9 @@ ifeq ($(CONFIG_PM),y)
  snd-cs5535audio-objs += cs5535audio_pm.o
  endif
@@ -58,11 +58,11 @@ index ad947b4..3866c4d 100644
 +
  # Toplevel Module Dependency
  obj-$(CONFIG_SND_CS5535AUDIO) += snd-cs5535audio.o
-diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
-index b8e75ef..389d9da 100644
---- a/sound/pci/cs5535audio/cs5535audio.c
-+++ b/sound/pci/cs5535audio/cs5535audio.c
-@@ -145,7 +145,7 @@ static unsigned short snd_cs5535audio_ac97_codec_read(struct snd_ac97 *ac97,
+Index: linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio.c
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/cs5535audio/cs5535audio.c
++++ linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio.c
+@@ -145,7 +145,7 @@ static unsigned short snd_cs5535audio_ac
        return snd_cs5535audio_codec_read(cs5535au, reg);
  }
  
@@ -71,7 +71,7 @@ index b8e75ef..389d9da 100644
  {
        struct snd_card *card = cs5535au->card;
        struct snd_ac97_bus *pbus;
-@@ -160,10 +160,14 @@ static int snd_cs5535audio_mixer(struct cs5535audio *cs5535au)
+@@ -160,10 +160,14 @@ static int snd_cs5535audio_mixer(struct 
                return err;
  
        memset(&ac97, 0, sizeof(ac97));
@@ -87,7 +87,7 @@ index b8e75ef..389d9da 100644
        if ((err = snd_ac97_mixer(pbus, &ac97, &cs5535au->ac97)) < 0) {
                snd_printk(KERN_ERR "mixer failed\n");
                return err;
-@@ -171,6 +175,12 @@ static int snd_cs5535audio_mixer(struct cs5535audio *cs5535au)
+@@ -171,6 +175,12 @@ static int snd_cs5535audio_mixer(struct 
  
        snd_ac97_tune_hardware(cs5535au->ac97, ac97_quirks, ac97_quirk);
  
@@ -100,7 +100,7 @@ index b8e75ef..389d9da 100644
        return 0;
  }
  
-@@ -206,7 +216,6 @@ static void process_bm1_irq(struct cs5535audio *cs5535au)
+@@ -206,7 +216,6 @@ static void process_bm1_irq(struct cs553
  static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id)
  {
        u16 acc_irq_stat;
@@ -108,7 +108,7 @@ index b8e75ef..389d9da 100644
        unsigned char count;
        struct cs5535audio *cs5535au = dev_id;
  
-@@ -217,7 +226,7 @@ static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id)
+@@ -217,7 +226,7 @@ static irqreturn_t snd_cs5535audio_inter
  
        if (!acc_irq_stat)
                return IRQ_NONE;
@@ -117,7 +117,7 @@ index b8e75ef..389d9da 100644
                if (acc_irq_stat & (1 << count)) {
                        switch (count) {
                        case IRQ_STS:
-@@ -232,26 +241,9 @@ static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id)
+@@ -232,26 +241,9 @@ static irqreturn_t snd_cs5535audio_inter
                        case BM1_IRQ_STS:
                                process_bm1_irq(cs5535au);
                                break;
@@ -146,10 +146,10 @@ index b8e75ef..389d9da 100644
                                break;
                        }
                }
-diff --git a/sound/pci/cs5535audio/cs5535audio.h b/sound/pci/cs5535audio/cs5535audio.h
-index 4fd1f31..ff82f10 100644
---- a/sound/pci/cs5535audio/cs5535audio.h
-+++ b/sound/pci/cs5535audio/cs5535audio.h
+Index: linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio.h
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/cs5535audio/cs5535audio.h
++++ linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio.h
 @@ -16,57 +16,28 @@
  #define ACC_IRQ_STATUS                        0x12
  #define ACC_BM0_CMD                   0x20
@@ -246,11 +246,11 @@ index 4fd1f31..ff82f10 100644
  int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535audio);
  
  #endif /* __SOUND_CS5535AUDIO_H */
-diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c
-index 5450a9e..d23f8ea 100644
---- a/sound/pci/cs5535audio/cs5535audio_pcm.c
-+++ b/sound/pci/cs5535audio/cs5535audio_pcm.c
-@@ -164,6 +164,7 @@ static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au,
+Index: linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio_pcm.c
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/cs5535audio/cs5535audio_pcm.c
++++ linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio_pcm.c
+@@ -164,6 +164,7 @@ static int cs5535audio_build_dma_packets
        jmpprd_addr = cpu_to_le32(lastdesc->addr +
                                  (sizeof(struct cs5535audio_dma_desc)*periods));
  
@@ -258,7 +258,7 @@ index 5450a9e..d23f8ea 100644
        dma->period_bytes = period_bytes;
        dma->periods = periods;
        spin_lock_irq(&cs5535au->reg_lock);
-@@ -241,6 +242,7 @@ static void cs5535audio_clear_dma_packets(struct cs5535audio *cs5535au,
+@@ -241,6 +242,7 @@ static void cs5535audio_clear_dma_packet
  {
        snd_dma_free_pages(&dma->desc_buf);
        dma->desc_buf.area = NULL;
@@ -266,7 +266,7 @@ index 5450a9e..d23f8ea 100644
  }
  
  static int snd_cs5535audio_hw_params(struct snd_pcm_substream *substream,
-@@ -260,6 +262,9 @@ static int snd_cs5535audio_hw_params(struct snd_pcm_substream *substream,
+@@ -260,6 +262,9 @@ static int snd_cs5535audio_hw_params(str
        err = cs5535audio_build_dma_packets(cs5535au, dma, substream,
                                            params_periods(hw_params),
                                            params_period_bytes(hw_params));
@@ -276,7 +276,7 @@ index 5450a9e..d23f8ea 100644
        return err;
  }
  
-@@ -268,6 +273,15 @@ static int snd_cs5535audio_hw_free(struct snd_pcm_substream *substream)
+@@ -268,6 +273,15 @@ static int snd_cs5535audio_hw_free(struc
        struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream);
        struct cs5535audio_dma *dma = substream->runtime->private_data;
  
@@ -292,7 +292,7 @@ index 5450a9e..d23f8ea 100644
        cs5535audio_clear_dma_packets(cs5535au, dma, substream);
        return snd_pcm_lib_free_pages(substream);
  }
-@@ -298,14 +312,12 @@ static int snd_cs5535audio_trigger(struct snd_pcm_substream *substream, int cmd)
+@@ -298,14 +312,12 @@ static int snd_cs5535audio_trigger(struc
                break;
        case SNDRV_PCM_TRIGGER_RESUME:
                dma->ops->enable_dma(cs5535au);
@@ -307,7 +307,7 @@ index 5450a9e..d23f8ea 100644
                break;
        default:
                snd_printk(KERN_ERR "unhandled trigger\n");
-@@ -344,6 +356,7 @@ static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream)
+@@ -344,6 +356,7 @@ static int snd_cs5535audio_capture_open(
        int err;
        struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream);
        struct snd_pcm_runtime *runtime = substream->runtime;
@@ -315,7 +315,7 @@ index 5450a9e..d23f8ea 100644
  
        runtime->hw = snd_cs5535audio_capture;
        cs5535au->capture_substream = substream;
-@@ -352,11 +365,29 @@ static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream)
+@@ -352,11 +365,29 @@ static int snd_cs5535audio_capture_open(
        if ((err = snd_pcm_hw_constraint_integer(runtime,
                                         SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
                return err;
@@ -346,11 +346,11 @@ index 5450a9e..d23f8ea 100644
        return 0;
  }
  
-diff --git a/sound/pci/cs5535audio/cs5535audio_pm.c b/sound/pci/cs5535audio/cs5535audio_pm.c
-index 3e4d198..838708f 100644
---- a/sound/pci/cs5535audio/cs5535audio_pm.c
-+++ b/sound/pci/cs5535audio/cs5535audio_pm.c
-@@ -64,18 +64,21 @@ int snd_cs5535audio_suspend(struct pci_dev *pci, pm_message_t state)
+Index: linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio_pm.c
+===================================================================
+--- linux-2.6.23.17.orig/sound/pci/cs5535audio/cs5535audio_pm.c
++++ linux-2.6.23.17/sound/pci/cs5535audio/cs5535audio_pm.c
+@@ -64,18 +64,21 @@ int snd_cs5535audio_suspend(struct pci_d
        int i;
  
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
@@ -376,7 +376,7 @@ index 3e4d198..838708f 100644
        pci_set_power_state(pci, pci_choose_state(pci, state));
        return 0;
  }
-@@ -89,7 +92,12 @@ int snd_cs5535audio_resume(struct pci_dev *pci)
+@@ -89,7 +92,12 @@ int snd_cs5535audio_resume(struct pci_de
        int i;
  
        pci_set_power_state(pci, PCI_D0);
@@ -390,7 +390,7 @@ index 3e4d198..838708f 100644
        if (pci_enable_device(pci) < 0) {
                printk(KERN_ERR "cs5535audio: pci_enable_device failed, "
                       "disabling device\n");
-@@ -112,17 +120,17 @@ int snd_cs5535audio_resume(struct pci_dev *pci)
+@@ -112,17 +120,17 @@ int snd_cs5535audio_resume(struct pci_de
        if (!timeout)
                snd_printk(KERN_ERR "Failure getting AC Link ready\n");
  
index 5a130f496d04e980ecf752d47c4394d667bd09cc..73860f9b84acf39b4cebac9bcde1557f2da4259f 100644 (file)
@@ -1,6 +1,7 @@
-diff -purN -purN a/include/linux/i2c-id.h b/include/linux/i2c-id.h
---- a/include/linux/i2c-id.h       2007-08-21 06:33:06.000000000 +0200
-+++ b/include/linux/i2c-id.h     2007-09-10 09:20:58.000000000 +0200
+Index: linux-2.6.23.17/include/linux/i2c-id.h
+===================================================================
+--- linux-2.6.23.17.orig/include/linux/i2c-id.h
++++ linux-2.6.23.17/include/linux/i2c-id.h
 @@ -119,6 +119,7 @@
  #define I2C_DRIVERID_WM8750   90      /* Wolfson WM8750 audio codec */
  #define I2C_DRIVERID_WM8753   91      /* Wolfson WM8753 audio codec */
index 5e731311cd4a9edae295d09da10e7248298973a9..a922b4e2a96723e40c2b335705058f421e1588ab 100644 (file)
@@ -1,7 +1,7 @@
-Index: linux-2.6.23/drivers/mtd/devices/block2mtd.c
+Index: linux-2.6.23.17/drivers/mtd/devices/block2mtd.c
 ===================================================================
---- linux-2.6.23.orig/drivers/mtd/devices/block2mtd.c  2007-12-06 23:30:31.583285849 +0100
-+++ linux-2.6.23/drivers/mtd/devices/block2mtd.c       2007-12-06 23:31:29.970613152 +0100
+--- linux-2.6.23.17.orig/drivers/mtd/devices/block2mtd.c
++++ linux-2.6.23.17/drivers/mtd/devices/block2mtd.c
 @@ -20,6 +20,8 @@
  #include <linux/buffer_head.h>
  #include <linux/mutex.h>
@@ -24,7 +24,7 @@ Index: linux-2.6.23/drivers/mtd/devices/block2mtd.c
  
  /* Info for the block device */
  struct block2mtd_dev {
-@@ -38,10 +46,36 @@
+@@ -38,10 +46,36 @@ struct block2mtd_dev {
        char devname[0];
  };
  
@@ -61,7 +61,7 @@ Index: linux-2.6.23/drivers/mtd/devices/block2mtd.c
  
  static struct page *page_read(struct address_space *mapping, int index)
  {
-@@ -518,7 +552,10 @@
+@@ -518,7 +552,10 @@ static int block2mtd_setup2(const char *
        if (token[2] && (strlen(token[2]) + 1 > 80))
                parse_err("mtd device name too long");
  
@@ -73,7 +73,7 @@ Index: linux-2.6.23/drivers/mtd/devices/block2mtd.c
  
        return 0;
  }
-@@ -534,8 +571,11 @@
+@@ -534,8 +571,11 @@ static int block2mtd_setup(const char *v
           and block2mtd_init() has already been called,
           we can parse the argument now. */
  
@@ -86,11 +86,11 @@ Index: linux-2.6.23/drivers/mtd/devices/block2mtd.c
  
        /* During early boot stage, we only save the parameters
           here. We must parse them later: if the param passed
-Index: linux-2.6.23/init/do_mounts.c
+Index: linux-2.6.23.17/init/do_mounts.c
 ===================================================================
---- linux-2.6.23.orig/init/do_mounts.c 2007-12-06 23:30:28.019082737 +0100
-+++ linux-2.6.23/init/do_mounts.c      2007-12-06 23:30:32.459335774 +0100
-@@ -241,16 +241,8 @@
+--- linux-2.6.23.17.orig/init/do_mounts.c
++++ linux-2.6.23.17/init/do_mounts.c
+@@ -241,16 +241,8 @@ static int __init fs_names_setup(char *s
        return 1;
  }
  
@@ -107,7 +107,7 @@ Index: linux-2.6.23/init/do_mounts.c
  
  static void __init get_fs_names(char *page)
  {
-@@ -426,18 +418,6 @@
+@@ -426,18 +418,6 @@ void __init prepare_namespace(void)
  {
        int is_floppy;
  
@@ -126,10 +126,10 @@ Index: linux-2.6.23/init/do_mounts.c
        if (saved_root_name[0]) {
                root_device_name = saved_root_name;
                if (!strncmp(root_device_name, "mtd", 3)) {
-Index: linux-2.6.23/init/main.c
+Index: linux-2.6.23.17/init/main.c
 ===================================================================
---- linux-2.6.23.orig/init/main.c      2007-12-06 23:30:28.023082962 +0100
-+++ linux-2.6.23/init/main.c   2007-12-06 23:30:32.463336000 +0100
+--- linux-2.6.23.17.orig/init/main.c
++++ linux-2.6.23.17/init/main.c
 @@ -65,6 +65,7 @@
  #ifdef CONFIG_X86_LOCAL_APIC
  #include <asm/smp.h>
@@ -138,7 +138,7 @@ Index: linux-2.6.23/init/main.c
  
  /*
   * This is one of the first .c files built. Error out early if we have compiler
-@@ -662,13 +663,14 @@
+@@ -662,13 +663,14 @@ static int __init initcall_debug_setup(c
  __setup("initcall_debug", initcall_debug_setup);
  
  extern initcall_t __initcall_start[], __initcall_end[];
@@ -155,7 +155,7 @@ Index: linux-2.6.23/init/main.c
                ktime_t t0, t1, delta;
                char *msg = NULL;
                char msgbuf[40];
-@@ -737,7 +739,7 @@
+@@ -737,7 +739,7 @@ static void __init do_basic_setup(void)
        usermodehelper_init();
        driver_init();
        init_irq_proc();
@@ -164,7 +164,7 @@ Index: linux-2.6.23/init/main.c
  }
  
  static int __initdata nosoftlockup;
-@@ -810,6 +812,14 @@
+@@ -810,6 +812,14 @@ static int noinline init_post(void)
        panic("No init found.  Try passing init= option to kernel.");
  }
  
@@ -179,7 +179,7 @@ Index: linux-2.6.23/init/main.c
  static int __init kernel_init(void * unused)
  {
        lock_kernel();
-@@ -851,6 +861,17 @@
+@@ -851,6 +861,17 @@ static int __init kernel_init(void * unu
  
        if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
                ramdisk_execute_command = NULL;
@@ -197,11 +197,11 @@ Index: linux-2.6.23/init/main.c
                prepare_namespace();
        }
  
-Index: linux-2.6.23/arch/i386/kernel/vmlinux.lds.S
+Index: linux-2.6.23.17/arch/i386/kernel/vmlinux.lds.S
 ===================================================================
---- linux-2.6.23.orig/arch/i386/kernel/vmlinux.lds.S   2007-12-06 23:30:28.035083650 +0100
-+++ linux-2.6.23/arch/i386/kernel/vmlinux.lds.S        2007-12-06 23:30:32.467336225 +0100
-@@ -146,6 +146,11 @@
+--- linux-2.6.23.17.orig/arch/i386/kernel/vmlinux.lds.S
++++ linux-2.6.23.17/arch/i386/kernel/vmlinux.lds.S
+@@ -146,6 +146,11 @@ SECTIONS
        INITCALLS
        __initcall_end = .;
    }
@@ -213,10 +213,10 @@ Index: linux-2.6.23/arch/i386/kernel/vmlinux.lds.S
    .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
        __con_initcall_start = .;
        *(.con_initcall.init)
-Index: linux-2.6.23/include/asm-generic/vmlinux.lds.h
+Index: linux-2.6.23.17/include/asm-generic/vmlinux.lds.h
 ===================================================================
---- linux-2.6.23.orig/include/asm-generic/vmlinux.lds.h        2007-12-06 23:30:28.043084102 +0100
-+++ linux-2.6.23/include/asm-generic/vmlinux.lds.h     2007-12-06 23:30:32.467336225 +0100
+--- linux-2.6.23.17.orig/include/asm-generic/vmlinux.lds.h
++++ linux-2.6.23.17/include/asm-generic/vmlinux.lds.h
 @@ -243,12 +243,14 @@
        *(.initcall4s.init)                                             \
        *(.initcall5.init)                                              \