diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2008-05-19 11:28:12 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2008-05-19 11:28:12 +0000 |
commit | a4574c18074a6a8214629bd7e0acfa9b63fd3186 (patch) | |
tree | fd361d9d63060825cc180e8d30e915e27fbb0b49 /target/linux/olpc | |
parent | 8708fc6371e22fc40562d8fc92106aee7ad570a7 (diff) | |
download | upstream-a4574c18074a6a8214629bd7e0acfa9b63fd3186.tar.gz upstream-a4574c18074a6a8214629bd7e0acfa9b63fd3186.tar.bz2 upstream-a4574c18074a6a8214629bd7e0acfa9b63fd3186.zip |
[olpc] refresh kernel patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11206 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/olpc')
-rw-r--r-- | target/linux/olpc/patches-2.6.24/100-olpc.patch | 715 | ||||
-rw-r--r-- | target/linux/olpc/patches/100-olpc.patch | 1249 | ||||
-rw-r--r-- | target/linux/olpc/patches/110-olpc_sound.patch | 100 | ||||
-rw-r--r-- | target/linux/olpc/patches/200-fix_dcon_id.patch | 7 | ||||
-rw-r--r-- | target/linux/olpc/patches/300-block2mtd_init.patch | 50 |
5 files changed, 1118 insertions, 1003 deletions
diff --git a/target/linux/olpc/patches-2.6.24/100-olpc.patch b/target/linux/olpc/patches-2.6.24/100-olpc.patch index b694ef4e36..caea6012ad 100644 --- a/target/linux/olpc/patches-2.6.24/100-olpc.patch +++ b/target/linux/olpc/patches-2.6.24/100-olpc.patch @@ -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 diff --git a/target/linux/olpc/patches/100-olpc.patch b/target/linux/olpc/patches/100-olpc.patch index 0d163e6f2b..4607aeda68 100644 --- a/target/linux/olpc/patches/100-olpc.patch +++ b/target/linux/olpc/patches/100-olpc.patch @@ -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" diff --git a/target/linux/olpc/patches/110-olpc_sound.patch b/target/linux/olpc/patches/110-olpc_sound.patch index 421ab283bc..c322e46f53 100644 --- a/target/linux/olpc/patches/110-olpc_sound.patch +++ b/target/linux/olpc/patches/110-olpc_sound.patch @@ -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"); diff --git a/target/linux/olpc/patches/200-fix_dcon_id.patch b/target/linux/olpc/patches/200-fix_dcon_id.patch index 5a130f496d..73860f9b84 100644 --- a/target/linux/olpc/patches/200-fix_dcon_id.patch +++ b/target/linux/olpc/patches/200-fix_dcon_id.patch @@ -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 */ diff --git a/target/linux/olpc/patches/300-block2mtd_init.patch b/target/linux/olpc/patches/300-block2mtd_init.patch index 5e731311cd..a922b4e2a9 100644 --- a/target/linux/olpc/patches/300-block2mtd_init.patch +++ b/target/linux/olpc/patches/300-block2mtd_init.patch @@ -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) \ |