From 6576d07d925308b1a3eb1362cc302f7a968d4567 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Fri, 10 Jul 2009 16:24:24 +0200 Subject: [PATCH] refresh 2.6.28 patches Signed-off-by: Florian Fainelli --- .../xburst/patches-2.6.28/001-Changelog.patch | 4 +- .../xburst/patches-2.6.28/002-README-JZ.patch | 4 +- .../xburst/patches-2.6.28/100-arch.patch | 430 +++---- .../xburst/patches-2.6.28/200-drivers.patch | 1010 ++++++++--------- .../xburst/patches-2.6.28/400-include.patch | 370 +++--- .../xburst/patches-2.6.28/450-init.patch | 12 +- .../xburst/patches-2.6.28/500-sound.patch | 196 ++-- 7 files changed, 1007 insertions(+), 1019 deletions(-) diff --git a/target/linux/xburst/patches-2.6.28/001-Changelog.patch b/target/linux/xburst/patches-2.6.28/001-Changelog.patch index 9b48fade8..d955a90dc 100644 --- a/target/linux/xburst/patches-2.6.28/001-Changelog.patch +++ b/target/linux/xburst/patches-2.6.28/001-Changelog.patch @@ -1,5 +1,5 @@ ---- linux-2.6.24.7.old/Changelog 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/Changelog 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/Changelog @@ -0,0 +1,364 @@ +2009.02.17 +* Modify oss driver to support jz4750 i2s codec. diff --git a/target/linux/xburst/patches-2.6.28/002-README-JZ.patch b/target/linux/xburst/patches-2.6.28/002-README-JZ.patch index eb67f135e..794e75e14 100644 --- a/target/linux/xburst/patches-2.6.28/002-README-JZ.patch +++ b/target/linux/xburst/patches-2.6.28/002-README-JZ.patch @@ -1,5 +1,5 @@ ---- linux-2.6.24.7.old/README-JZ 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/README-JZ 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/README-JZ @@ -0,0 +1,1181 @@ + + Linux 2.6 Kernel Release for Ingenic diff --git a/target/linux/xburst/patches-2.6.28/100-arch.patch b/target/linux/xburst/patches-2.6.28/100-arch.patch index b7df15508..2d691618d 100644 --- a/target/linux/xburst/patches-2.6.28/100-arch.patch +++ b/target/linux/xburst/patches-2.6.28/100-arch.patch @@ -1,9 +1,9 @@ ---- linux-2.6.24.7.old/arch/mips/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -16,6 +16,82 @@ +--- a/arch/mips/Kconfig ++++ b/arch/mips/Kconfig +@@ -19,6 +19,82 @@ choice prompt "System type" default SGI_IP22 - + +config JZ4730_PMP + bool "Ingenic JZ4730 PMP board" + select DMA_NONCOHERENT @@ -82,11 +82,11 @@ + config MACH_ALCHEMY bool "Alchemy processor based machines" - -@@ -701,6 +777,48 @@ - + +@@ -610,6 +686,48 @@ source "arch/mips/vr41xx/Kconfig" + endmenu - + +##################################################### +# Ingenic SOC series +##################################################### @@ -132,10 +132,10 @@ config RWSEM_GENERIC_SPINLOCK bool default y -@@ -1770,6 +1888,14 @@ - +@@ -1776,6 +1894,14 @@ config NR_CPUS + source "kernel/time/Kconfig" - + +# the value of (max order + 1) +config FORCE_MAX_ZONEORDER + prompt "MAX_ZONEORDER" @@ -147,10 +147,10 @@ # # Timer Interrupt Frequency Configuration # -@@ -2046,6 +2172,23 @@ - +@@ -2051,6 +2177,23 @@ config BINFMT_ELF32 + endmenu - + +menu "CPU Frequency scaling" + +config CPU_FREQ_JZ @@ -169,13 +169,13 @@ +endmenu + menu "Power management options" - - source "kernel/power/Kconfig" ---- linux-2.6.24.7.old/arch/mips/Makefile 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -159,6 +159,37 @@ + + config ARCH_SUSPEND_POSSIBLE +--- a/arch/mips/Makefile ++++ b/arch/mips/Makefile +@@ -176,6 +176,37 @@ libs-$(CONFIG_SIBYTE_CFE) += arch/mips/s # - + # +# Commond Ingenic JZ4730 series +# @@ -211,10 +211,10 @@ # Acer PICA 61, Mips Magnum 4000 and Olivetti M700. # core-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ -@@ -673,6 +704,12 @@ - +@@ -692,6 +723,12 @@ makeboot =$(Q)$(MAKE) $(build)=arch/mips + all: $(all-y) - + +uImage: $(vmlinux-32) + +@$(call makeboot,$@) + @@ -223,14 +223,14 @@ + vmlinux.bin: $(vmlinux-32) +@$(call makeboot,$@) - -@@ -697,12 +734,13 @@ - + +@@ -716,12 +753,13 @@ endif + archclean: @$(MAKE) $(clean)=arch/mips/boot + @$(MAKE) $(clean)=arch/mips/boot/compressed @$(MAKE) $(clean)=arch/mips/lasat - + define archhelp - echo ' vmlinux.ecoff - ECOFF boot image' - echo ' vmlinux.bin - Raw binary boot image' @@ -241,31 +241,31 @@ echo echo ' These will be default as apropriate for a configured platform.' endef ---- linux-2.6.24.7.old/arch/mips/boot/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/boot/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- a/arch/mips/boot/Makefile ++++ b/arch/mips/boot/Makefile @@ -7,6 +7,9 @@ # Copyright (C) 2004 Maciej W. Rozycki # - + +# This one must match the LOADADDR in arch/mips/Makefile! +LOADADDR=0x80010000 + # # Some DECstations need all possible sections of an ECOFF executable # -@@ -25,7 +28,7 @@ - +@@ -25,7 +28,7 @@ strip-flags = $(addprefix --remove-secti + VMLINUX = vmlinux - + -all: vmlinux.ecoff vmlinux.srec addinitrd +all: vmlinux.ecoff vmlinux.srec addinitrd uImage zImage - + vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) $(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS) -@@ -42,8 +45,24 @@ +@@ -42,8 +45,24 @@ vmlinux.srec: $(VMLINUX) $(obj)/addinitrd: $(obj)/addinitrd.c $(HOSTCC) -o $@ $^ - + +uImage: $(VMLINUX) vmlinux.bin + rm -f $(obj)/vmlinux.bin.gz + gzip -9 $(obj)/vmlinux.bin @@ -288,8 +288,8 @@ + vmlinux.bin.gz \ + uImage \ + zImage ---- linux-2.6.24.7.old/arch/mips/boot/compressed/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/compressed/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/compressed/Makefile @@ -0,0 +1,42 @@ +# +# linux/arch/mips/boot/compressed/Makefile @@ -333,15 +333,15 @@ + +zImage: $(obj)/vmlinuz + $(OBJCOPY) -O binary $(obj)/vmlinuz $(obj)/zImage ---- linux-2.6.24.7.old/arch/mips/boot/compressed/dummy.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/compressed/dummy.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/compressed/dummy.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} ---- linux-2.6.24.7.old/arch/mips/boot/compressed/head.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/compressed/head.S 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/compressed/head.S @@ -0,0 +1,85 @@ +/* + * linux/arch/mips/boot/compressed/head.S @@ -428,8 +428,8 @@ + END(flushcaches) + + .comm .stack,4096*2,4 ---- linux-2.6.24.7.old/arch/mips/boot/compressed/ld.script 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/compressed/ld.script 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/compressed/ld.script @@ -0,0 +1,151 @@ +OUTPUT_ARCH(mips) +ENTRY(startup) @@ -582,8 +582,8 @@ + .comment : { *(.comment) } + .note : { *(.note) } +} ---- linux-2.6.24.7.old/arch/mips/boot/compressed/misc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/compressed/misc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/compressed/misc.c @@ -0,0 +1,242 @@ +/* + * linux/arch/mips/boot/compressed/misc.c @@ -827,8 +827,8 @@ + flushcaches(); + puts("Ok, booting the kernel."); +} ---- linux-2.6.24.7.old/arch/mips/boot/tools/entry 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/tools/entry 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/tools/entry @@ -0,0 +1,12 @@ +#!/bin/sh + @@ -842,8 +842,8 @@ +else + echo "0x"`$1 $2 | grep kernel_entry | cut -c1- | awk '{print $1}'` +fi ---- linux-2.6.24.7.old/arch/mips/boot/tools/filesize 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/boot/tools/filesize 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/boot/tools/filesize @@ -0,0 +1,7 @@ +#!/bin/sh +HOSTNAME=`uname` @@ -852,8 +852,8 @@ +else +echo `ls -l $1 | awk '{print $6}'` +fi ---- linux-2.6.24.7.old/arch/mips/configs/apus_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/apus_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/apus_defconfig @@ -0,0 +1,1205 @@ +# +# Automatically generated make config: don't edit @@ -2060,8 +2060,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/dipper_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/dipper_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/dipper_defconfig @@ -0,0 +1,1281 @@ +# +# Automatically generated make config: don't edit @@ -3344,8 +3344,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/fuwa_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/fuwa_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/fuwa_defconfig @@ -0,0 +1,928 @@ +# +# Automatically generated make config: don't edit @@ -4275,8 +4275,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/leo_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/leo_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/leo_defconfig @@ -0,0 +1,1256 @@ +# +# Automatically generated make config: don't edit @@ -5534,8 +5534,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/lyra_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/lyra_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/lyra_defconfig @@ -0,0 +1,981 @@ +# +# Automatically generated make config: don't edit @@ -6518,8 +6518,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/pavo_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/pavo_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/pavo_defconfig @@ -0,0 +1,1293 @@ +# +# Automatically generated make config: don't edit @@ -7814,8 +7814,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/pmp_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/pmp_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/pmp_defconfig @@ -0,0 +1,1212 @@ +# +# Automatically generated make config: don't edit @@ -9029,8 +9029,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/slt50_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/slt50_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/slt50_defconfig @@ -0,0 +1,1036 @@ +# +# Automatically generated make config: don't edit @@ -10068,8 +10068,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/configs/virgo_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/configs/virgo_defconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/configs/virgo_defconfig @@ -0,0 +1,1281 @@ +# +# Automatically generated make config: don't edit @@ -11352,8 +11352,8 @@ +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y ---- linux-2.6.24.7.old/arch/mips/jz4730/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/Makefile @@ -0,0 +1,22 @@ +# +# Makefile for the Ingenic JZ4730. @@ -11377,8 +11377,8 @@ +# PM support + +obj-$(CONFIG_PM_LEGACY) +=pm.o sleep.o ---- linux-2.6.24.7.old/arch/mips/jz4730/board-pmp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/board-pmp.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/board-pmp.c @@ -0,0 +1,109 @@ +/* + * linux/arch/mips/jz4730/board-pmp.c @@ -11489,8 +11489,8 @@ + + jz_timer_callback = pmp_timer_ack; +} ---- linux-2.6.24.7.old/arch/mips/jz4730/cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/cpufreq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/cpufreq.c @@ -0,0 +1,596 @@ + +/* @@ -12088,8 +12088,8 @@ +MODULE_DESCRIPTION("cpufreq driver for Jz4730"); +MODULE_LICENSE("GPL"); + ---- linux-2.6.24.7.old/arch/mips/jz4730/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/dma.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/dma.c @@ -0,0 +1,509 @@ +/* + * linux/arch/mips/jz4730/dma.c @@ -12600,8 +12600,8 @@ +EXPORT_SYMBOL(enable_dma); +EXPORT_SYMBOL(disable_dma); +EXPORT_SYMBOL(dump_jz_dma_channel); ---- linux-2.6.24.7.old/arch/mips/jz4730/i2c.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/i2c.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/i2c.c @@ -0,0 +1,214 @@ +/* + * linux/arch/mips/jz4730/i2c.c @@ -12817,8 +12817,8 @@ +EXPORT_SYMBOL(i2c_setclk); +EXPORT_SYMBOL(i2c_read); +EXPORT_SYMBOL(i2c_write); ---- linux-2.6.24.7.old/arch/mips/jz4730/irq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/irq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/irq.c @@ -0,0 +1,266 @@ +/* + * linux/arch/mips/jz4730/irq.c @@ -13086,8 +13086,8 @@ + + do_IRQ(irq); +} ---- linux-2.6.24.7.old/arch/mips/jz4730/platform.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/platform.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/platform.c @@ -0,0 +1,140 @@ +/* + * Platform device support for Jz4730 SoC. @@ -13229,8 +13229,8 @@ +} + +arch_initcall(jz_platform_init); ---- linux-2.6.24.7.old/arch/mips/jz4730/pm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/pm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/pm.c @@ -0,0 +1,1098 @@ +/* + * linux/arch/mips/jz4730/pm.c @@ -14330,8 +14330,8 @@ +} + +module_init(jz_pm_init); ---- linux-2.6.24.7.old/arch/mips/jz4730/proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/proc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/proc.c @@ -0,0 +1,292 @@ +/* + * linux/arch/mips/jz4730/proc.c @@ -14625,8 +14625,8 @@ +} + +__initcall(jz_proc_init); ---- linux-2.6.24.7.old/arch/mips/jz4730/prom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/prom.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/prom.c @@ -0,0 +1,198 @@ +/* + * @@ -14826,8 +14826,8 @@ +EXPORT_SYMBOL(prom_getcmdline); +EXPORT_SYMBOL(get_ethernet_addr); +EXPORT_SYMBOL(str2eaddr); ---- linux-2.6.24.7.old/arch/mips/jz4730/reset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/reset.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/reset.c @@ -0,0 +1,40 @@ +/* + * linux/arch/mips/jz4730/reset.c @@ -14869,8 +14869,8 @@ +{ + jz_halt(); +} ---- linux-2.6.24.7.old/arch/mips/jz4730/setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/setup.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/setup.c @@ -0,0 +1,182 @@ +/* + * linux/arch/mips/jz4730/setup.c @@ -15054,8 +15054,8 @@ + jz_serial_setup(); /* serial port setup */ + jz_board_setup(); /* board specific setup */ +} ---- linux-2.6.24.7.old/arch/mips/jz4730/sleep.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/sleep.S 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/sleep.S @@ -0,0 +1,307 @@ +/* + * linux/arch/mips/jz4730/sleep.S @@ -15364,8 +15364,8 @@ + .word 0 /* preserve sp here */ + + .set reorder ---- linux-2.6.24.7.old/arch/mips/jz4730/time.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4730/time.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4730/time.c @@ -0,0 +1,129 @@ +/* + * linux/arch/mips/jz4730/time.c @@ -15496,8 +15496,8 @@ + + jz_timer_setup(); +} ---- linux-2.6.24.7.old/arch/mips/jz4740/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/Makefile @@ -0,0 +1,26 @@ +# +# Makefile for the Ingenic JZ4740. @@ -15525,8 +15525,8 @@ +# CPU Frequency scaling support + +obj-$(CONFIG_CPU_FREQ_JZ) +=cpufreq.o ---- linux-2.6.24.7.old/arch/mips/jz4740/board-dipper.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/board-dipper.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/board-dipper.c @@ -0,0 +1,117 @@ +/* + * linux/arch/mips/jz4740/board-dipper.c @@ -15645,8 +15645,8 @@ + + jz_timer_callback = dipper_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4740/board-leo.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/board-leo.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/board-leo.c @@ -0,0 +1,67 @@ +/* + * linux/arch/mips/jz4740/board-leo.c @@ -15715,8 +15715,8 @@ + printk(" BOARD SETUP"); + jz_timer_callback = leo_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4740/board-lyra.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/board-lyra.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/board-lyra.c @@ -0,0 +1,114 @@ +/* + * linux/arch/mips/jz4740/board-lyra.c @@ -15832,8 +15832,8 @@ + + jz_timer_callback = lyra_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4740/board-pavo.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/board-pavo.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/board-pavo.c @@ -0,0 +1,114 @@ +/* + * linux/arch/mips/jz4740/board-pavo.c @@ -15949,8 +15949,8 @@ + + jz_timer_callback = pavo_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4740/board-virgo.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/board-virgo.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/board-virgo.c @@ -0,0 +1,114 @@ +/* + * linux/arch/mips/jz4740/board-virgo.c @@ -16066,8 +16066,8 @@ + + jz_timer_callback = virgo_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4740/cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/cpufreq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/cpufreq.c @@ -0,0 +1,602 @@ +/* + * linux/arch/mips/jz4740/cpufreq.c @@ -16671,8 +16671,8 @@ +MODULE_DESCRIPTION("cpufreq driver for Jz4740"); +MODULE_LICENSE("GPL"); + ---- linux-2.6.24.7.old/arch/mips/jz4740/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/dma.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/dma.c @@ -0,0 +1,768 @@ +/* + * linux/arch/mips/jz4740/dma.c @@ -17442,8 +17442,8 @@ +EXPORT_SYMBOL(enable_dma); +EXPORT_SYMBOL(disable_dma); +EXPORT_SYMBOL(dump_jz_dma_channel); ---- linux-2.6.24.7.old/arch/mips/jz4740/i2c.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/i2c.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/i2c.c @@ -0,0 +1,273 @@ +/* + * linux/arch/mips/jz4740/i2c.c @@ -17718,8 +17718,8 @@ +EXPORT_SYMBOL(i2c_setclk); +EXPORT_SYMBOL(i2c_read); +EXPORT_SYMBOL(i2c_write); ---- linux-2.6.24.7.old/arch/mips/jz4740/irq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/irq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/irq.c @@ -0,0 +1,265 @@ +/* + * linux/arch/mips/jz4740/irq.c @@ -17986,8 +17986,8 @@ + irq = plat_real_irq(irq); + do_IRQ(irq); +} ---- linux-2.6.24.7.old/arch/mips/jz4740/platform.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/platform.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/platform.c @@ -0,0 +1,169 @@ +/* + * Platform device support for Jz4740 SoC. @@ -18158,8 +18158,8 @@ +} + +arch_initcall(jz_platform_init); ---- linux-2.6.24.7.old/arch/mips/jz4740/pm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/pm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/pm.c @@ -0,0 +1,462 @@ +/* + * linux/arch/mips/jz4740/common/pm.c @@ -18623,8 +18623,8 @@ + +module_init(jz_pm_init); + ---- linux-2.6.24.7.old/arch/mips/jz4740/proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/proc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/proc.c @@ -0,0 +1,887 @@ +/* + * linux/arch/mips/jz4740/proc.c @@ -19513,8 +19513,8 @@ +} + +__initcall(jz_proc_init); ---- linux-2.6.24.7.old/arch/mips/jz4740/prom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/prom.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/prom.c @@ -0,0 +1,198 @@ +/* + * @@ -19714,8 +19714,8 @@ +EXPORT_SYMBOL(prom_getcmdline); +EXPORT_SYMBOL(get_ethernet_addr); +EXPORT_SYMBOL(str2eaddr); ---- linux-2.6.24.7.old/arch/mips/jz4740/reset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/reset.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/reset.c @@ -0,0 +1,46 @@ +/* + * linux/arch/mips/jz4740/reset.c @@ -19763,8 +19763,8 @@ +{ + jz_halt(); +} ---- linux-2.6.24.7.old/arch/mips/jz4740/setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/setup.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/setup.c @@ -0,0 +1,182 @@ +/* + * linux/arch/mips/jz4740/common/setup.c @@ -19948,8 +19948,8 @@ + jz_board_setup(); +} + ---- linux-2.6.24.7.old/arch/mips/jz4740/time.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4740/time.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4740/time.c @@ -0,0 +1,158 @@ +/* + * linux/arch/mips/jz4740/time.c @@ -20109,8 +20109,8 @@ + + jz_timer_setup(); +} ---- linux-2.6.24.7.old/arch/mips/jz4750/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/Makefile @@ -0,0 +1,23 @@ +# +# Makefile for the Ingenic JZ4750. @@ -20135,8 +20135,8 @@ +# CPU Frequency scaling support + +obj-$(CONFIG_CPU_FREQ_JZ) +=cpufreq.o ---- linux-2.6.24.7.old/arch/mips/jz4750/board-apus.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/board-apus.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/board-apus.c @@ -0,0 +1,64 @@ +/* + * linux/arch/mips/jz4750/board-apus.c @@ -20202,8 +20202,8 @@ + + jz_timer_callback = apus_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4750/board-fuwa.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/board-fuwa.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/board-fuwa.c @@ -0,0 +1,105 @@ +/* + * linux/arch/mips/jz4750/board-fuwa.c @@ -20310,8 +20310,8 @@ + + jz_timer_callback = fuwa_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4750/board-slt50.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/board-slt50.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/board-slt50.c @@ -0,0 +1,64 @@ +/* + * linux/arch/mips/jz4750/board-apus.c @@ -20377,8 +20377,8 @@ + + jz_timer_callback = apus_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4750/cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/cpufreq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/cpufreq.c @@ -0,0 +1,601 @@ +/* + * linux/arch/mips/jz4750/cpufreq.c @@ -20981,8 +20981,8 @@ +MODULE_AUTHOR("Regen "); +MODULE_DESCRIPTION("cpufreq driver for Jz4750"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/arch/mips/jz4750/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/dma.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/dma.c @@ -0,0 +1,836 @@ +/* + * linux/arch/mips/jz4750/dma.c @@ -21820,8 +21820,8 @@ +EXPORT_SYMBOL(enable_dma); +EXPORT_SYMBOL(disable_dma); +EXPORT_SYMBOL(dump_jz_dma_channel); ---- linux-2.6.24.7.old/arch/mips/jz4750/i2c.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/i2c.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/i2c.c @@ -0,0 +1,273 @@ +/* + * linux/arch/mips/jz4750/i2c.c @@ -22096,8 +22096,8 @@ +EXPORT_SYMBOL(i2c_setclk); +EXPORT_SYMBOL(i2c_read); +EXPORT_SYMBOL(i2c_write); ---- linux-2.6.24.7.old/arch/mips/jz4750/irq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/irq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/irq.c @@ -0,0 +1,299 @@ +/* + * linux/arch/mips/jz4750/irq.c @@ -22398,8 +22398,8 @@ + irq = plat_real_irq(irq); + do_IRQ(irq); +} ---- linux-2.6.24.7.old/arch/mips/jz4750/platform.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/platform.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/platform.c @@ -0,0 +1,141 @@ +/* + * Platform device support for Jz4740 SoC. @@ -22542,8 +22542,8 @@ +} + +arch_initcall(jz_platform_init); ---- linux-2.6.24.7.old/arch/mips/jz4750/pm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/pm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/pm.c @@ -0,0 +1,461 @@ +/* + * linux/arch/mips/jz4750/common/pm.c @@ -23006,8 +23006,8 @@ +} + +module_init(jz_pm_init); ---- linux-2.6.24.7.old/arch/mips/jz4750/proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/proc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/proc.c @@ -0,0 +1,905 @@ +/* + * linux/arch/mips/jz4750/proc.c @@ -23914,8 +23914,8 @@ +} + +__initcall(jz_proc_init); ---- linux-2.6.24.7.old/arch/mips/jz4750/prom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/prom.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/prom.c @@ -0,0 +1,198 @@ +/* + * @@ -24115,8 +24115,8 @@ +EXPORT_SYMBOL(prom_getcmdline); +EXPORT_SYMBOL(get_ethernet_addr); +EXPORT_SYMBOL(str2eaddr); ---- linux-2.6.24.7.old/arch/mips/jz4750/reset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/reset.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/reset.c @@ -0,0 +1,46 @@ +/* + * linux/arch/mips/jz4750/reset.c @@ -24164,8 +24164,8 @@ +{ + jz_halt(); +} ---- linux-2.6.24.7.old/arch/mips/jz4750/setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/setup.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/setup.c @@ -0,0 +1,197 @@ +/* + * linux/arch/mips/jz4750/common/setup.c @@ -24364,8 +24364,8 @@ + jz_board_setup(); +} + ---- linux-2.6.24.7.old/arch/mips/jz4750/time.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750/time.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750/time.c @@ -0,0 +1,156 @@ +/* + * linux/arch/mips/jz4750/time.c @@ -24523,8 +24523,8 @@ + + jz_timer_setup(); +} ---- linux-2.6.24.7.old/arch/mips/jz4750d/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/Makefile @@ -0,0 +1,22 @@ +# +# Makefile for the Ingenic JZ4750D. @@ -24548,8 +24548,8 @@ +# CPU Frequency scaling support + +obj-$(CONFIG_CPU_FREQ_JZ) +=cpufreq.o ---- linux-2.6.24.7.old/arch/mips/jz4750d/board-fuwa1.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/board-fuwa1.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/board-fuwa1.c @@ -0,0 +1,72 @@ +/* + * linux/arch/mips/jz4750d/board-fuwa1.c @@ -24623,8 +24623,8 @@ + + jz_timer_callback = fuwa1_timer_callback; +} ---- linux-2.6.24.7.old/arch/mips/jz4750d/cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/cpufreq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/cpufreq.c @@ -0,0 +1,601 @@ +/* + * linux/arch/mips/jz4750d/cpufreq.c @@ -25227,8 +25227,8 @@ +MODULE_AUTHOR("Regen "); +MODULE_DESCRIPTION("cpufreq driver for Jz4750d"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/arch/mips/jz4750d/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/dma.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/dma.c @@ -0,0 +1,822 @@ +/* + * linux/arch/mips/jz4750d/dma.c @@ -26052,8 +26052,8 @@ +EXPORT_SYMBOL(enable_dma); +EXPORT_SYMBOL(disable_dma); +EXPORT_SYMBOL(dump_jz_dma_channel); ---- linux-2.6.24.7.old/arch/mips/jz4750d/i2c.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/i2c.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/i2c.c @@ -0,0 +1,273 @@ +/* + * linux/arch/mips/jz4750d/i2c.c @@ -26328,8 +26328,8 @@ +EXPORT_SYMBOL(i2c_setclk); +EXPORT_SYMBOL(i2c_read); +EXPORT_SYMBOL(i2c_write); ---- linux-2.6.24.7.old/arch/mips/jz4750d/irq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/irq.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/irq.c @@ -0,0 +1,299 @@ +/* + * linux/arch/mips/jz4750d/irq.c @@ -26630,8 +26630,8 @@ + irq = plat_real_irq(irq); + do_IRQ(irq); +} ---- linux-2.6.24.7.old/arch/mips/jz4750d/platform.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/platform.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/platform.c @@ -0,0 +1,141 @@ +/* + * Platform device support for Jz4740 SoC. @@ -26774,8 +26774,8 @@ +} + +arch_initcall(jz_platform_init); ---- linux-2.6.24.7.old/arch/mips/jz4750d/pm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/pm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/pm.c @@ -0,0 +1,461 @@ +/* + * linux/arch/mips/jz4750d/common/pm.c @@ -27238,8 +27238,8 @@ +} + +module_init(jz_pm_init); ---- linux-2.6.24.7.old/arch/mips/jz4750d/proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/proc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/proc.c @@ -0,0 +1,877 @@ +/* + * linux/arch/mips/jz4750d/proc.c @@ -28118,8 +28118,8 @@ +} + +__initcall(jz_proc_init); ---- linux-2.6.24.7.old/arch/mips/jz4750d/prom.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/prom.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/prom.c @@ -0,0 +1,198 @@ +/* + * @@ -28319,8 +28319,8 @@ +EXPORT_SYMBOL(prom_getcmdline); +EXPORT_SYMBOL(get_ethernet_addr); +EXPORT_SYMBOL(str2eaddr); ---- linux-2.6.24.7.old/arch/mips/jz4750d/reset.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/reset.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/reset.c @@ -0,0 +1,46 @@ +/* + * linux/arch/mips/jz4750/reset.c @@ -28368,8 +28368,8 @@ +{ + jz_halt(); +} ---- linux-2.6.24.7.old/arch/mips/jz4750d/setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/setup.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/setup.c @@ -0,0 +1,199 @@ +/* + * linux/arch/mips/jz4750d/common/setup.c @@ -28570,8 +28570,8 @@ + jz_board_setup(); +} + ---- linux-2.6.24.7.old/arch/mips/jz4750d/time.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/jz4750d/time.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/jz4750d/time.c @@ -0,0 +1,156 @@ +/* + * linux/arch/mips/jz4750d/time.c @@ -28729,20 +28729,20 @@ + + jz_timer_setup(); +} ---- linux-2.6.24.7.old/arch/mips/kernel/cpu-probe.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/kernel/cpu-probe.c 2009-04-12 18:13:57.000000000 +0200 -@@ -160,6 +160,7 @@ +--- a/arch/mips/kernel/cpu-probe.c ++++ b/arch/mips/kernel/cpu-probe.c +@@ -154,6 +154,7 @@ void __init check_wait(void) case CPU_25KF: case CPU_PR4450: case CPU_BCM3302: + case CPU_JZRISC: cpu_wait = r4k_wait; break; - -@@ -860,6 +860,23 @@ - } + +@@ -860,6 +861,23 @@ static inline void cpu_probe_nxp(struct + } } - + +static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu) +{ + decode_configs(c); @@ -28762,23 +28762,23 @@ + static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu) { - decode_configs(c); -@@ -909,6 +926,9 @@ - case PRID_COMP_NXP: - cpu_probe_nxp(c, cpu); - break; + decode_configs(c); +@@ -909,6 +927,9 @@ __cpuinit void cpu_probe(void) + case PRID_COMP_NXP: + cpu_probe_nxp(c, cpu); + break; + case PRID_COMP_INGENIC: + cpu_probe_ingenic(c, cpu); + break; - } - - BUG_ON(!__cpu_name[cpu]); ---- linux-2.6.24.7.old/arch/mips/mm/c-r4k.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/mm/c-r4k.c 2009-04-12 18:13:57.000000000 +0200 -@@ -874,6 +874,36 @@ + } + + BUG_ON(!__cpu_name[cpu]); +--- a/arch/mips/mm/c-r4k.c ++++ b/arch/mips/mm/c-r4k.c +@@ -895,6 +895,36 @@ static void __cpuinit probe_pcache(void) c->dcache.waybit = 0; break; - + + case CPU_JZRISC: + config1 = read_c0_config1(); + config1 = (config1 >> 22) & 0x07; @@ -28812,23 +28812,23 @@ default: if (!(config & MIPS_CONF_M)) panic("Don't know how to probe P-caches on this cpu."); ---- linux-2.6.24.7.old/arch/mips/mm/cache.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/mm/cache.c 2009-04-12 18:13:57.000000000 +0200 -@@ -47,6 +47,8 @@ +--- a/arch/mips/mm/cache.c ++++ b/arch/mips/mm/cache.c +@@ -51,6 +51,8 @@ void (*_dma_cache_wback)(unsigned long s void (*_dma_cache_inv)(unsigned long start, unsigned long size); - + EXPORT_SYMBOL(_dma_cache_wback_inv); +EXPORT_SYMBOL(_dma_cache_wback); +EXPORT_SYMBOL(_dma_cache_inv); - + #endif /* CONFIG_DMA_NONCOHERENT */ - ---- linux-2.6.24.7.old/arch/mips/mm/tlbex.c 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/mm/tlbex.c 2009-04-12 18:13:57.000000000 +0200 -@@ -981,6 +981,11 @@ + +--- a/arch/mips/mm/tlbex.c ++++ b/arch/mips/mm/tlbex.c +@@ -379,6 +379,11 @@ static void __cpuinit build_tlb_write_en tlbw(p); break; - + + case CPU_JZRISC: + tlbw(p); + uasm_i_nop(p); diff --git a/target/linux/xburst/patches-2.6.28/200-drivers.patch b/target/linux/xburst/patches-2.6.28/200-drivers.patch index dc7702ce0..d00d76c41 100644 --- a/target/linux/xburst/patches-2.6.28/200-drivers.patch +++ b/target/linux/xburst/patches-2.6.28/200-drivers.patch @@ -1,9 +1,9 @@ ---- linux-2.6.24.7.old/drivers/char/Kconfig 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/drivers/char/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -731,6 +731,16 @@ +--- a/drivers/char/Kconfig ++++ b/drivers/char/Kconfig +@@ -790,6 +790,16 @@ config RTC To compile this driver as a module, choose M here: the module will be called rtc. - + +config RTC_PCF8563 + bool 'Philips PCF8563 Real Time Clock (I2C Bus)' + help @@ -17,29 +17,29 @@ config JS_RTC tristate "Enhanced Real Time Clock Support" depends on SPARC32 && PCI -@@ -1046,6 +1056,7 @@ +@@ -1079,6 +1089,7 @@ config DEVPORT default y - + source "drivers/s390/char/Kconfig" +source "drivers/char/jzchar/Kconfig" - + endmenu - ---- linux-2.6.24.7.old/drivers/char/Makefile 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/drivers/char/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -98,6 +98,10 @@ + +--- a/drivers/char/Makefile ++++ b/drivers/char/Makefile +@@ -97,6 +97,10 @@ obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu. obj-$(CONFIG_GPIO_TB0219) += tb0219.o obj-$(CONFIG_TELCLOCK) += tlclk.o - + +obj-$(CONFIG_RTC_PCF8563) += rtc_pcf8563.o +obj-$(CONFIG_RTC_JZ) += rtc_jz.o +obj-$(CONFIG_JZCHAR) += jzchar/ + obj-$(CONFIG_MWAVE) += mwave/ obj-$(CONFIG_AGP) += agp/ - obj-$(CONFIG_DRM) += drm/ ---- linux-2.6.24.7.old/drivers/char/jzchar/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/Kconfig 2009-04-12 18:13:57.000000000 +0200 + obj-$(CONFIG_PCMCIA) += pcmcia/ +--- /dev/null ++++ b/drivers/char/jzchar/Kconfig @@ -0,0 +1,70 @@ +# +# JzSOC char devices configuration @@ -111,8 +111,8 @@ + +endmenu + ---- linux-2.6.24.7.old/drivers/char/jzchar/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/Makefile @@ -0,0 +1,24 @@ +# +# Makefile for jzchar @@ -138,8 +138,8 @@ +obj-$(CONFIG_JZ_OW) += jz_ow.o +obj-$(CONFIG_JZ_TCSM) += tcsm.o +obj-$(CONFIG_JZ_TSSI) += jz_tssi.o ---- linux-2.6.24.7.old/drivers/char/jzchar/ak4182.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/ak4182.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/ak4182.c @@ -0,0 +1,657 @@ +/* + * ak4182.c using national microwire protocol @@ -798,8 +798,8 @@ +module_init(ak4182_init); +module_exit(ak4182_cleanup); + ---- linux-2.6.24.7.old/drivers/char/jzchar/ak4182.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/ak4182.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/ak4182.h @@ -0,0 +1,16 @@ +#ifndef __AK4182_H__ +#define __AK4182_H__ @@ -817,8 +817,8 @@ +}; + +#endif /* __AK4182_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/ata2508.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/ata2508.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/ata2508.c @@ -0,0 +1,227 @@ + +#include @@ -1047,8 +1047,8 @@ + +module_init(init_ata2508); +module_exit(exit_ata2508); ---- linux-2.6.24.7.old/drivers/char/jzchar/cim.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/cim.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/cim.c @@ -0,0 +1,366 @@ +/* + * linux/drivers/char/jzchar/cim.c @@ -1416,8 +1416,8 @@ + +module_init(cim_init); +module_exit(cim_exit); ---- linux-2.6.24.7.old/drivers/char/jzchar/cim.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/cim.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/cim.h @@ -0,0 +1,36 @@ +/* + * JzSOC CIM driver @@ -1455,8 +1455,8 @@ +#define IOCTL_SET_IMG_PARAM 0 // arg type: IMG_PARAM * + +#endif /* __CIM_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/jz_ow.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jz_ow.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jz_ow.c @@ -0,0 +1,497 @@ +/* + * linux/drivers/char/jzchar/jz_ow.c @@ -1955,8 +1955,8 @@ +MODULE_AUTHOR("Yurong Tan"); +MODULE_DESCRIPTION("One Wire Bus test Driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/char/jzchar/jz_ts.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jz_ts.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jz_ts.c @@ -0,0 +1,443 @@ +/* + * jz_ts.c @@ -2401,8 +2401,8 @@ + +module_init(jzts_init_module); +module_exit(jzts_cleanup_module); ---- linux-2.6.24.7.old/drivers/char/jzchar/jz_ts.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jz_ts.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jz_ts.h @@ -0,0 +1,54 @@ +#ifndef __JZ_TS_H__ +#define __JZ_TS_H__ @@ -2458,8 +2458,8 @@ +extern void ts_data_ready(void); + +#endif /* __JZ_TS_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/jz_tssi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jz_tssi.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jz_tssi.c @@ -0,0 +1,457 @@ +/* + * jz_tssi.c @@ -2918,8 +2918,8 @@ + +module_init(jztssi_init_module); +module_exit(jztssi_cleanup_module); ---- linux-2.6.24.7.old/drivers/char/jzchar/jz_tssi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jz_tssi.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jz_tssi.h @@ -0,0 +1,76 @@ +#ifndef __JZ_TSSI_H__ +#define __JZ_TSSI_H__ @@ -2997,8 +2997,8 @@ +}; + +#endif /* __JZ_TSSI_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/jzchars.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jzchars.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jzchars.c @@ -0,0 +1,158 @@ +/* + * linux/drivers/char/jzchar/jzchars.c @@ -3158,8 +3158,8 @@ + +EXPORT_SYMBOL(jz_register_chrdev); +EXPORT_SYMBOL(jz_unregister_chrdev); ---- linux-2.6.24.7.old/drivers/char/jzchar/jzchars.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/jzchars.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/jzchars.h @@ -0,0 +1,47 @@ +#ifndef __JZ_CHARS_H__ +#define __JZ_CHARS_H__ @@ -3208,8 +3208,8 @@ +extern int jz_unregister_chrdev(unsigned char minor, const char *name); + +#endif /* __JZ_CHARS_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/poweroff.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/poweroff.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/poweroff.c @@ -0,0 +1,383 @@ +/* + * linux/drivers/char/jzchar/poweroff.c @@ -3594,8 +3594,8 @@ +module_init(poweroff_init); +module_exit(poweroff_exit); + ---- linux-2.6.24.7.old/drivers/char/jzchar/sadc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/sadc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/sadc.c @@ -0,0 +1,580 @@ +/* + * linux/drivers/char/jzchar/sadc.c @@ -4177,8 +4177,8 @@ + +module_init(sadc_init); +module_exit(sadc_exit); ---- linux-2.6.24.7.old/drivers/char/jzchar/sensor.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/sensor.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/sensor.c @@ -0,0 +1,182 @@ +/* + * linux/drivers/char/jzchar/sensor.c @@ -4362,8 +4362,8 @@ + +module_init(sensor_init); +module_exit(sensor_exit); ---- linux-2.6.24.7.old/drivers/char/jzchar/tcsm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/tcsm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/tcsm.c @@ -0,0 +1,123 @@ +/* + * linux/drivers/char/jzchar/tcsm.c @@ -4488,8 +4488,8 @@ + +module_init(tcsm_init); +module_exit(tcsm_exit); ---- linux-2.6.24.7.old/drivers/char/jzchar/ucb1400.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/ucb1400.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/ucb1400.c @@ -0,0 +1,585 @@ +/* + * ucb1400.c @@ -5076,8 +5076,8 @@ + +module_init(ucb1400_init); +module_exit(ucb1400_cleanup); ---- linux-2.6.24.7.old/drivers/char/jzchar/ucb1400.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/ucb1400.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/ucb1400.h @@ -0,0 +1,113 @@ +#ifndef __UCB1400_H__ +#define __UCB1400_H__ @@ -5192,8 +5192,8 @@ +}; + +#endif /* __UCB1400_H__ */ ---- linux-2.6.24.7.old/drivers/char/jzchar/udc_hotplug.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/udc_hotplug.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/udc_hotplug.c @@ -0,0 +1,451 @@ +/* + * linux/drivers/char/jzchar/udc_hotplug.c @@ -5646,8 +5646,8 @@ +MODULE_AUTHOR("Lucifer "); +MODULE_DESCRIPTION("JzSOC OnChip udc hotplug driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/char/jzchar/wm9712.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/wm9712.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/wm9712.c @@ -0,0 +1,334 @@ +/* + * wm9712.c @@ -5983,8 +5983,8 @@ +module_init(wm9712_init); +module_exit(wm9712_cleanup); + ---- linux-2.6.24.7.old/drivers/char/jzchar/wm9712.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/jzchar/wm9712.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/jzchar/wm9712.h @@ -0,0 +1,58 @@ +#ifndef __WM9712_H__ +#define __WM9712_H__ @@ -6044,8 +6044,8 @@ + +#endif /* __WM9712_H__ */ + ---- linux-2.6.24.7.old/drivers/char/rtc_jz.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/rtc_jz.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/rtc_jz.c @@ -0,0 +1,503 @@ +/* + * Jz OnChip Real Time Clock interface for Linux @@ -6550,8 +6550,8 @@ +module_init(Jz_rtc_init); +module_exit(Jz_rtc_exit); + ---- linux-2.6.24.7.old/drivers/char/rtc_jz.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/rtc_jz.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/rtc_jz.h @@ -0,0 +1,74 @@ +#ifndef __RTC_JZ_H__ +#define __RTC_JZ_H__ @@ -6627,8 +6627,8 @@ +#define RTC_EN 0 /* ... */ + +#endif /* #define __RTC_JZ_H__ */ ---- linux-2.6.24.7.old/drivers/char/rtc_pcf8563.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/char/rtc_pcf8563.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/char/rtc_pcf8563.c @@ -0,0 +1,448 @@ +/* + * PCF8563 Real Time Clock interface for Linux @@ -7078,12 +7078,12 @@ + +module_init(pcf_rtc_init); +module_exit(pcf_rtc_exit); ---- linux-2.6.24.7.old/drivers/i2c/busses/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/i2c/busses/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -4,6 +4,14 @@ - - menu "I2C Hardware Bus support" - +--- a/drivers/i2c/busses/Kconfig ++++ b/drivers/i2c/busses/Kconfig +@@ -7,6 +7,14 @@ menu "I2C Hardware Bus support" + comment "PC SMBus host controller drivers" + depends on PCI + +config I2C_JZ47XX + tristate "JZ47XX I2C Interface support" + depends on SOC_JZ4730 || SOC_JZ4740 @@ -7095,18 +7095,18 @@ config I2C_ALI1535 tristate "ALI 1535" depends on PCI ---- linux-2.6.24.7.old/drivers/i2c/busses/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/i2c/busses/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -47,6 +47,7 @@ +--- a/drivers/i2c/busses/Makefile ++++ b/drivers/i2c/busses/Makefile +@@ -47,6 +47,7 @@ obj-$(CONFIG_I2C_SH7760) += i2c-sh7760.o obj-$(CONFIG_I2C_SH_MOBILE) += i2c-sh_mobile.o obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o obj-$(CONFIG_I2C_VERSATILE) += i2c-versatile.o +obj-$(CONFIG_I2C_JZ47XX) += i2c-jz47xx.o - + # External I2C/SMBus adapter drivers - obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o ---- linux-2.6.24.7.old/drivers/i2c/busses/i2c-jz47xx.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/i2c/busses/i2c-jz47xx.c 2009-04-12 18:13:57.000000000 +0200 + obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o +--- /dev/null ++++ b/drivers/i2c/busses/i2c-jz47xx.c @@ -0,0 +1,330 @@ +/* + * i2c_jz47xx.c @@ -7438,8 +7438,8 @@ + +module_init(i2c_adap_jz_init); +module_exit(i2c_adap_jz_exit); ---- linux-2.6.24.7.old/drivers/i2c/busses/i2c-jz47xx.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/i2c/busses/i2c-jz47xx.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/i2c/busses/i2c-jz47xx.h @@ -0,0 +1,20 @@ +/* + * i2c_jz47xx.h @@ -7461,12 +7461,12 @@ + +extern void jz_set_i2c_info(struct i2c_jz_platform_data *info); +#endif ---- linux-2.6.24.7.old/drivers/i2c/i2c-dev.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/i2c/i2c-dev.c 2009-04-12 18:13:57.000000000 +0200 -@@ -36,8 +36,9 @@ - #include +--- a/drivers/i2c/i2c-dev.c ++++ b/drivers/i2c/i2c-dev.c +@@ -37,8 +37,9 @@ + #include #include - + +extern unsigned short sub_addr; +extern int addr_val; static struct i2c_driver i2cdev_driver; @@ -7474,7 +7474,7 @@ /* * An i2c_dev represents an i2c_adapter ... an I2C or SMBus master, not a * slave (i2c_client) with which messages will be exchanged. It's coupled -@@ -422,6 +423,14 @@ +@@ -424,6 +425,14 @@ static long i2cdev_ioctl(struct file *fi case I2C_TIMEOUT: client->adapter->timeout = arg; break; @@ -7489,12 +7489,12 @@ default: /* NOTE: returning a fault code here could cause trouble * in buggy userspace code. Some old kernel bugs returned ---- linux-2.6.24.7.old/drivers/input/keyboard/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/input/keyboard/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -259,9 +259,27 @@ +--- a/drivers/input/keyboard/Kconfig ++++ b/drivers/input/keyboard/Kconfig +@@ -280,9 +280,27 @@ config KEYBOARD_AAED2000 To compile this driver as a module, choose M here: the module will be called aaed2000_kbd. - + +config KEYBOARD_JZ + tristate "JZ keypad support" + depends on JZSOC @@ -7521,26 +7521,25 @@ help This driver implements support for buttons connected to GPIO pins of various CPUs (and some other chips). -@@ -272,7 +290,7 @@ +@@ -293,7 +311,7 @@ config KEYBOARD_GPIO with configuration data saying which GPIOs are used. - + To compile this driver as a module, choose M here: the - module will be called gpio-keys. + module will be called gpio_keys. - + config KEYBOARD_MAPLE tristate "Maple bus keyboard" ---- linux-2.6.24.7.old/drivers/input/keyboard/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/input/keyboard/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -27,3 +27,5 @@ +--- a/drivers/input/keyboard/Makefile ++++ b/drivers/input/keyboard/Makefile +@@ -27,3 +27,5 @@ obj-$(CONFIG_KEYBOARD_HP7XX) += jornada obj-$(CONFIG_KEYBOARD_MAPLE) += maple_keyb.o obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o obj-$(CONFIG_KEYBOARD_SH_KEYSC) += sh_keysc.o +obj-$(CONFIG_KEYBOARD_JZ) += jz_keypad.o +obj-$(CONFIG_5x5_KEYBOARD_JZ) += jz_keypad_5x5.o - ---- linux-2.6.24.7.old/drivers/input/keyboard/jz_keypad.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/input/keyboard/jz_keypad.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/input/keyboard/jz_keypad.c @@ -0,0 +1,357 @@ +/* + * linux/drivers/input/keyboard/jz_keypad.c @@ -7899,8 +7898,8 @@ +MODULE_AUTHOR("Richard"); +MODULE_DESCRIPTION("JZ keypad driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/input/keyboard/jz_keypad_5x5.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/input/keyboard/jz_keypad_5x5.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/input/keyboard/jz_keypad_5x5.c @@ -0,0 +1,329 @@ +/* + * JZ Keypad ( 5 x 5 ) Driver @@ -8231,12 +8230,12 @@ +MODULE_AUTHOR("Jason "); +MODULE_DESCRIPTION("JZ 5x5 keypad driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/media/video/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/media/video/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -514,6 +514,15 @@ +--- a/drivers/media/video/Kconfig ++++ b/drivers/media/video/Kconfig +@@ -597,6 +597,15 @@ config VIDEO_VINO Say Y here to build in support for the Vino video input system found on SGI Indy machines. - + +config VIDEO_JZ_CIM + tristate 'JzSOC Camera Interface Module (CIM) support' + depends on VIDEO_V4L2 @@ -8249,20 +8248,20 @@ config VIDEO_STRADIS tristate "Stradis 4:2:2 MPEG-2 video driver (EXPERIMENTAL)" depends on EXPERIMENTAL && PCI && VIDEO_V4L1 && VIRT_TO_BUS ---- linux-2.6.24.7.old/drivers/media/video/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/media/video/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -15,6 +15,9 @@ - obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o - endif - +--- a/drivers/media/video/Makefile ++++ b/drivers/media/video/Makefile +@@ -20,6 +20,9 @@ endif + + obj-$(CONFIG_VIDEO_TUNER) += tuner.o + +obj-$(CONFIG_VIDEO_JZ_CIM) += jz_cim.o +obj-$(CONFIG_VIDEO_JZ_SENSOR) += jz_sensor.o + obj-$(CONFIG_VIDEO_BT848) += bt8xx/ obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o ---- linux-2.6.24.7.old/drivers/media/video/jz_cim.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/media/video/jz_cim.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/media/video/jz_cim.c @@ -0,0 +1,622 @@ +/* + * linux/drivers/char/jzchar/cim.c @@ -8886,8 +8885,8 @@ + +module_init(jz_cim_init); +module_exit(jz_cim_exit); ---- linux-2.6.24.7.old/drivers/media/video/jz_cim.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/media/video/jz_cim.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/media/video/jz_cim.h @@ -0,0 +1,36 @@ +/* + * JzSOC CIM driver @@ -8925,8 +8924,8 @@ +#define IOCTL_SET_IMG_PARAM 0 // arg type: IMG_PARAM * + +#endif /* __JZ__CIM_H__ */ ---- linux-2.6.24.7.old/drivers/media/video/jz_sensor.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/media/video/jz_sensor.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/media/video/jz_sensor.c @@ -0,0 +1,202 @@ +/* + * linux/drivers/char/jzchar/sensor.c @@ -9130,12 +9129,12 @@ + +module_init(jz_sensor_init); +module_exit(jz_sensor_exit); ---- linux-2.6.24.7.old/drivers/mmc/card/block.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mmc/card/block.c 2009-04-12 18:13:57.000000000 +0200 -@@ -225,7 +225,11 @@ +--- a/drivers/mmc/card/block.c ++++ b/drivers/mmc/card/block.c +@@ -226,7 +226,11 @@ static int mmc_blk_issue_rq(struct mmc_q brq.mrq.cmd = &brq.cmd; brq.mrq.data = &brq.data; - + +#ifdef CONFIG_JZ4750_BOOT_FROM_MSC0 + brq.cmd.arg = req->sector + 8192; +#else @@ -9144,14 +9143,14 @@ if (!mmc_card_blockaddr(card)) brq.cmd.arg <<= 9; brq.cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; ---- linux-2.6.24.7.old/drivers/mmc/core/mmc.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mmc/core/mmc.c 2009-04-12 18:13:57.000000000 +0200 -@@ -141,8 +141,13 @@ - +--- a/drivers/mmc/core/mmc.c ++++ b/drivers/mmc/core/mmc.c +@@ -140,8 +140,13 @@ static int mmc_decode_csd(struct mmc_car + e = UNSTUFF_BITS(resp, 47, 3); m = UNSTUFF_BITS(resp, 62, 12); - csd->capacity = (1 + m) << (e + 2); - + +#ifdef CONFIG_JZ4750_BOOT_FROM_MSC0 + csd->capacity = (1 + m) << (e + 2); + csd->capacity -= 8192; @@ -9161,26 +9160,24 @@ csd->read_blkbits = UNSTUFF_BITS(resp, 80, 4); csd->read_partial = UNSTUFF_BITS(resp, 79, 1); csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); -@@ -402,8 +407,9 @@ - EXT_CSD_BUS_WIDTH, EXT_CSD_BUS_WIDTH_4); +@@ -440,7 +445,8 @@ static int mmc_init_card(struct mmc_host if (err) goto free_card; -- + - mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4); -+ + /* all mmc v4 support 8 bit mmc card */ + mmc_set_bus_width(card->host, MMC_BUS_WIDTH_8); } - + if (!oldcard) ---- linux-2.6.24.7.old/drivers/mmc/core/sd.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mmc/core/sd.c 2009-04-12 18:13:57.000000000 +0200 -@@ -110,8 +110,13 @@ - +--- a/drivers/mmc/core/sd.c ++++ b/drivers/mmc/core/sd.c +@@ -109,8 +109,13 @@ static int mmc_decode_csd(struct mmc_car + e = UNSTUFF_BITS(resp, 47, 3); m = UNSTUFF_BITS(resp, 62, 12); - csd->capacity = (1 + m) << (e + 2); - + +#ifdef CONFIG_JZ4750_BOOT_FROM_MSC0 + csd->capacity = (1 + m) << (e + 2); + csd->capacity -= 8192; @@ -9190,12 +9187,12 @@ csd->read_blkbits = UNSTUFF_BITS(resp, 80, 4); csd->read_partial = UNSTUFF_BITS(resp, 79, 1); csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); -@@ -138,8 +143,13 @@ +@@ -137,8 +142,13 @@ static int mmc_decode_csd(struct mmc_car csd->cmdclass = UNSTUFF_BITS(resp, 84, 12); - + m = UNSTUFF_BITS(resp, 48, 22); - csd->capacity = (1 + m) << 10; - + +#ifdef CONFIG_JZ4750_BOOT_FROM_MSC0 + csd->capacity = (1 + m) << 10; + csd->capacity -= 8192; @@ -9205,9 +9202,9 @@ csd->read_blkbits = 9; csd->read_partial = 0; csd->write_misalign = 0; -@@ -269,9 +279,11 @@ +@@ -268,9 +278,11 @@ static int mmc_switch_hs(struct mmc_card goto out; - + if ((status[16] & 0xF) != 1) { +#if 0 printk(KERN_WARNING "%s: Problem switching card " @@ -9217,22 +9214,22 @@ } else { mmc_card_set_highspeed(card); mmc_set_timing(card->host, MMC_TIMING_SD_HS); -@@ -386,6 +398,9 @@ +@@ -426,6 +438,9 @@ static int mmc_sd_init_card(struct mmc_h goto free_card; - + mmc_decode_cid(card); + + /* set 24MHz clock again, why?? */ + mmc_set_clock(host, 24000000); } - + /* ---- linux-2.6.24.7.old/drivers/mmc/host/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mmc/host/Kconfig 2009-04-12 18:13:57.000000000 +0200 +--- a/drivers/mmc/host/Kconfig ++++ b/drivers/mmc/host/Kconfig @@ -4,6 +4,104 @@ - - comment "MMC/SD Host Controller Drivers" - + + comment "MMC/SD/SDIO Host Controller Drivers" + +config MMC_JZ + tristate "JZ SD/Multimedia Card Interface support" + depends on SOC_JZ4730 || SOC_JZ4740 @@ -9334,20 +9331,20 @@ config MMC_ARMMMCI tristate "ARM AMBA Multimedia Card Interface support" depends on ARM_AMBA ---- linux-2.6.24.7.old/drivers/mmc/host/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mmc/host/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -6,6 +6,9 @@ +--- a/drivers/mmc/host/Makefile ++++ b/drivers/mmc/host/Makefile +@@ -6,6 +6,9 @@ ifeq ($(CONFIG_MMC_DEBUG),y) EXTRA_CFLAGS += -DDEBUG endif - + +obj-$(CONFIG_MMC_JZ) += jz_mmc.o +obj-$(CONFIG_MSC0_JZ4750) += jz4750_mmc.o +obj-$(CONFIG_MSC1_JZ4750) += jz4750_mmc.o obj-$(CONFIG_MMC_ARMMMCI) += mmci.o obj-$(CONFIG_MMC_PXA) += pxamci.o obj-$(CONFIG_MMC_IMX) += imxmmc.o ---- linux-2.6.24.7.old/drivers/mmc/host/jz4750_mmc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mmc/host/jz4750_mmc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mmc/host/jz4750_mmc.c @@ -0,0 +1,1051 @@ +/* + * linux/drivers/mmc/jz_mmc.c - JZ SD/MMC driver @@ -10400,8 +10397,8 @@ + +MODULE_DESCRIPTION("JZ47XX SD/Multimedia Card Interface Driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/mmc/host/jz4750_mmc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mmc/host/jz4750_mmc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mmc/host/jz4750_mmc.h @@ -0,0 +1,88 @@ +#ifndef __JZ4750_MMC_H__ +#define __JZ4750_MMC_H__ @@ -10491,8 +10488,8 @@ +}; + +#endif /* __JZ4750_MMC_H__ */ ---- linux-2.6.24.7.old/drivers/mmc/host/jz_mmc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mmc/host/jz_mmc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mmc/host/jz_mmc.c @@ -0,0 +1,1026 @@ +/* + * linux/drivers/mmc/jz_mmc.c - JZ SD/MMC driver @@ -11520,8 +11517,8 @@ + +MODULE_DESCRIPTION("JZ47XX SD/Multimedia Card Interface Driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/mmc/host/jz_mmc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mmc/host/jz_mmc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mmc/host/jz_mmc.h @@ -0,0 +1,65 @@ +#ifndef __JZ_MMC_H__ +#define __JZ_MMC_H__ @@ -11588,8 +11585,8 @@ + + +#endif /* __JZ_MMC_H__ */ ---- linux-2.6.24.7.old/drivers/mtd/mtdblock-jz.uu 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mtd/mtdblock-jz.uu 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mtd/mtdblock-jz.uu @@ -0,0 +1,535 @@ +begin 644 mtdblock-jz.o +M?T5,1@$!`0````````````$`"``!```````````````T-0```1``4#0````` @@ -12126,9 +12123,9 @@ +%7V1E=@`` +` +end ---- linux-2.6.24.7.old/drivers/mtd/mtdblock.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/mtdblock.c 2009-04-12 18:13:57.000000000 +0200 -@@ -15,7 +15,7 @@ +--- a/drivers/mtd/mtdblock.c ++++ b/drivers/mtd/mtdblock.c +@@ -13,7 +13,7 @@ #include #include #include @@ -12137,10 +12134,10 @@ #include #include #include -@@ -361,12 +361,27 @@ +@@ -359,12 +359,27 @@ static void mtdblock_remove_dev(struct m kfree(dev); } - + + +static int mtdblock_getgeo(struct mtd_blktrans_dev *dev, struct hd_geometry *geo) +{ @@ -12165,17 +12162,17 @@ .flush = mtdblock_flush, .release = mtdblock_release, .readsect = mtdblock_readsect, ---- linux-2.6.24.7.old/drivers/mtd/mtdchar.c 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/mtdchar.c 2009-04-12 18:13:57.000000000 +0200 -@@ -7,7 +7,6 @@ - +--- a/drivers/mtd/mtdchar.c ++++ b/drivers/mtd/mtdchar.c +@@ -5,7 +5,6 @@ + #include #include -#include #include #include #include -@@ -157,7 +153,7 @@ +@@ -164,7 +163,7 @@ static ssize_t mtd_read(struct file *fil { struct mtd_file_info *mfi = file->private_data; struct mtd_info *mtd = mfi->mtd; @@ -12184,7 +12181,7 @@ size_t total_retlen=0; int ret=0; int len; -@@ -251,7 +247,7 @@ +@@ -258,7 +257,7 @@ static ssize_t mtd_write(struct file *fi struct mtd_file_info *mfi = file->private_data; struct mtd_info *mtd = mfi->mtd; char *kbuf; @@ -12193,19 +12190,10 @@ size_t total_retlen=0; int ret=0; int len; -@@ -536,7 +532,7 @@ - { - struct mtd_oob_buf buf; - struct mtd_oob_ops ops; -- -+ - if (copy_from_user(&buf, argp, sizeof(struct mtd_oob_buf))) - return -EFAULT; - -@@ -576,6 +572,73 @@ +@@ -591,6 +590,73 @@ static int mtd_ioctl(struct inode *inode break; } - + + case MEMWRITEPAGE: + { + struct mtd_page_buf buf; @@ -12275,34 +12263,34 @@ + case MEMLOCK: { - struct erase_info_user info; -@@ -627,9 +690,9 @@ - + struct erase_info_user einfo; +@@ -642,9 +708,9 @@ static int mtd_ioctl(struct inode *inode + case MEMGETBADBLOCK: { - loff_t offs; + loff_mtd_t offs; - + - if (copy_from_user(&offs, argp, sizeof(loff_t))) + if (copy_from_user(&offs, argp, sizeof(loff_mtd_t))) return -EFAULT; if (!mtd->block_isbad) ret = -EOPNOTSUPP; -@@ -640,9 +703,9 @@ - +@@ -655,9 +721,9 @@ static int mtd_ioctl(struct inode *inode + case MEMSETBADBLOCK: { - loff_t offs; + loff_mtd_t offs; - + - if (copy_from_user(&offs, argp, sizeof(loff_t))) + if (copy_from_user(&offs, argp, sizeof(loff_mtd_t))) return -EFAULT; if (!mtd->block_markbad) ret = -EOPNOTSUPP; -@@ -764,9 +827,9 @@ +@@ -779,9 +845,9 @@ static int mtd_ioctl(struct inode *inode #endif - + default: + printk("line : %d\n", __LINE__); ret = -ENOTTY; @@ -12310,13 +12298,13 @@ - return ret; } /* memory_ioctl */ - ---- linux-2.6.24.7.old/drivers/mtd/nand/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/nand/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -306,4 +306,127 @@ + +--- a/drivers/mtd/nand/Kconfig ++++ b/drivers/mtd/nand/Kconfig +@@ -420,4 +420,127 @@ config MTD_NAND_SH_FLCTL Several Renesas SuperH CPU has FLCTL. This option enables support for NAND Flash using FLCTL. This driver support SH7723. - + +config MTD_NAND_JZ4730 + tristate "Support NAND Flash device on Jz4730 board" + depends on SOC_JZ4730 @@ -12441,19 +12429,19 @@ + most modern MLC NANDs store it in the last page of a block. + endif # MTD_NAND ---- linux-2.6.24.7.old/drivers/mtd/nand/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/nand/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -29,5 +29,8 @@ +--- a/drivers/mtd/nand/Makefile ++++ b/drivers/mtd/nand/Makefile +@@ -36,5 +36,8 @@ obj-$(CONFIG_MTD_NAND_FSL_ELBC) += fsl_ obj-$(CONFIG_MTD_NAND_FSL_UPM) += fsl_upm.o obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_flctl.o obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o +obj-$(CONFIG_MTD_NAND_JZ4730) += jz4730_nand.o +obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740_nand.o +obj-$(CONFIG_MTD_NAND_JZ4750) += jz4750_nand.o - + nand-objs := nand_base.o nand_bbt.o ---- linux-2.6.24.7.old/drivers/mtd/nand/jz4730_nand.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mtd/nand/jz4730_nand.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mtd/nand/jz4730_nand.c @@ -0,0 +1,367 @@ +/* + * linux/drivers/mtd/nand/jz4730_nand.c @@ -12822,8 +12810,8 @@ +} +module_exit(jznand_cleanup); +#endif ---- linux-2.6.24.7.old/drivers/mtd/nand/jz4740_nand.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mtd/nand/jz4740_nand.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mtd/nand/jz4740_nand.c @@ -0,0 +1,1037 @@ +/* + * linux/drivers/mtd/nand/jz4740_nand.c @@ -13862,8 +13850,8 @@ +} +module_exit(jznand_cleanup); +#endif ---- linux-2.6.24.7.old/drivers/mtd/nand/jz4750_nand.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mtd/nand/jz4750_nand.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mtd/nand/jz4750_nand.c @@ -0,0 +1,1746 @@ +/* + * linux/drivers/mtd/nand/jz4750_nand.c @@ -15611,12 +15599,12 @@ + +module_exit(jznand_cleanup); +#endif ---- linux-2.6.24.7.old/drivers/mtd/nand/nand_base.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/nand/nand_base.c 2009-04-12 18:13:57.000000000 +0200 +--- a/drivers/mtd/nand/nand_base.c ++++ b/drivers/mtd/nand/nand_base.c @@ -52,6 +52,16 @@ #include #endif - + +#include + +u8 nand_nce; /* indicates which chip select on JZSOC is used for @@ -15630,9 +15618,9 @@ /* Define default oob placement schemes for large and small page devices */ static struct nand_ecclayout nand_oob_8 = { .eccbytes = 3, -@@ -72,6 +82,20 @@ +@@ -72,6 +82,20 @@ static struct nand_ecclayout nand_oob_16 }; - + static struct nand_ecclayout nand_oob_64 = { +#if defined(CONFIG_MTD_HW_RS_ECC) || defined(CONFIG_MTD_HW_BCH_ECC) +/* Reed-Solomon ECC or BCH ECC */ @@ -15651,7 +15639,7 @@ .eccbytes = 24, .eccpos = { 40, 41, 42, 43, 44, 45, 46, 47, -@@ -80,12 +104,85 @@ +@@ -80,12 +104,85 @@ static struct nand_ecclayout nand_oob_64 .oobfree = { {.offset = 2, .length = 38}} @@ -15729,18 +15717,18 @@ + .length = 78}} +#endif }; - + static int nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state); - + -static int nand_do_write_oob(struct mtd_info *mtd, loff_t to, +static int nand_do_write_oob(struct mtd_info *mtd, loff_mtd_t to, struct mtd_oob_ops *ops); - + /* -@@ -95,6 +192,35 @@ +@@ -95,6 +192,35 @@ static int nand_do_write_oob(struct mtd_ DEFINE_LED_TRIGGER(nand_led_trigger); - + /** + * ffs_ll - find first bit set in a 64bit word. + * @word: The word to search @@ -15774,7 +15762,7 @@ * nand_release_device - [GENERIC] release chip * @mtd: MTD device structure * -@@ -169,6 +295,20 @@ +@@ -169,6 +295,20 @@ static void nand_select_chip(struct mtd_ chip->cmd_ctrl(mtd, NAND_CMD_NONE, 0 | NAND_CTRL_CHANGE); break; case 0: @@ -15793,9 +15781,9 @@ + nand_nce = NAND_NCE4; + chip->cmd_ctrl(mtd, NAND_CMD_NONE, NAND_NCE | NAND_CTRL_CHANGE); break; - + default: -@@ -298,13 +438,19 @@ +@@ -298,13 +438,19 @@ static int nand_verify_buf16(struct mtd_ * * Check, if the block is bad. */ @@ -15806,7 +15794,7 @@ + int page, page1 = 0, chipnr, res = 0; struct nand_chip *chip = mtd->priv; u16 bad; - + - page = (int)(ofs >> chip->page_shift) & chip->pagemask; + if (chip->planenum > 1) { + page = ((int)(ofs >> chip->page_shift) * chip->planenum + CONFIG_MTD_BADBLOCK_FLAG_PAGE); @@ -15815,10 +15803,10 @@ + page1 &= chip->pagemask; + } else + page = ((int)(ofs >> chip->page_shift) + CONFIG_MTD_BADBLOCK_FLAG_PAGE) & chip->pagemask; - + if (getchip) { chipnr = (int)(ofs >> chip->chip_shift); -@@ -327,6 +473,11 @@ +@@ -327,6 +473,11 @@ static int nand_block_bad(struct mtd_inf chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos, page); if (chip->read_byte(mtd) != 0xff) res = 1; @@ -15828,9 +15816,9 @@ + res = 1; + } } - + if (getchip) -@@ -343,7 +494,7 @@ +@@ -343,7 +494,7 @@ static int nand_block_bad(struct mtd_inf * This is the default implementation, which can be overridden by * a hardware specific driver. */ @@ -15839,7 +15827,7 @@ { struct nand_chip *chip = mtd->priv; uint8_t buf[2] = { 0, 0 }; -@@ -363,6 +514,7 @@ +@@ -363,6 +514,7 @@ static int nand_default_block_markbad(st */ nand_get_device(chip, mtd, FL_WRITING); ofs += mtd->oobsize; @@ -15847,7 +15835,7 @@ chip->ops.len = chip->ops.ooblen = 2; chip->ops.datbuf = NULL; chip->ops.oobbuf = buf; -@@ -402,7 +554,7 @@ +@@ -402,7 +554,7 @@ static int nand_check_wp(struct mtd_info * Check, if the block is bad. Either by reading the bad block table or * calling of the scan function. */ @@ -15856,8 +15844,8 @@ int allowbbt) { struct nand_chip *chip = mtd->priv; -@@ -554,7 +706,10 @@ - +@@ -554,7 +706,10 @@ static void nand_command_lp(struct mtd_i + /* Emulate NAND_CMD_READOOB */ if (command == NAND_CMD_READOOB) { - column += mtd->writesize; @@ -15867,36 +15855,36 @@ + column += mtd->writesize; command = NAND_CMD_READ0; } - -@@ -600,6 +755,8 @@ + +@@ -600,6 +755,8 @@ static void nand_command_lp(struct mtd_i case NAND_CMD_RNDIN: case NAND_CMD_STATUS: case NAND_CMD_DEPLETE1: + case 0x81: /* for two-plane page program */ + case 0x11: /* for two-plane page program */ return; - + /* -@@ -675,7 +832,6 @@ +@@ -675,7 +832,6 @@ nand_get_device(struct nand_chip *chip, spin_lock(lock); - + /* Hardware controller shared among independend devices */ - /* Hardware controller shared among independend devices */ if (!chip->controller->active) chip->controller->active = chip; - -@@ -797,6 +953,7 @@ + +@@ -878,6 +1034,7 @@ static int nand_read_subpage(struct mtd_ return 0; } - + +#ifndef CONFIG_MTD_HW_RS_ECC /* HW&SW Hamming ECC */ /** * nand_read_page_hwecc - [REPLACABLE] hardware ecc based page read function * @mtd: mtd info structure -@@ -841,6 +998,63 @@ +@@ -922,6 +1079,63 @@ static int nand_read_page_hwecc(struct m return 0; } - + +#else /* CONFIG_MTD_HW_RS_ECC */ + +/** @@ -15957,7 +15945,7 @@ /** * nand_read_page_syndrome - [REPLACABLE] hardware ecc syndrom based page read * @mtd: mtd info structure -@@ -903,7 +1117,7 @@ +@@ -984,7 +1198,7 @@ static int nand_read_page_syndrome(struc * @len: size of oob to transfer */ static uint8_t *nand_transfer_oob(struct nand_chip *chip, uint8_t *oob, @@ -15965,17 +15953,17 @@ + struct mtd_oob_ops *ops, size_mtd_t len) { switch(ops->mode) { - -@@ -915,7 +1129,7 @@ + +@@ -996,7 +1210,7 @@ static uint8_t *nand_transfer_oob(struct case MTD_OOB_AUTO: { struct nand_oobfree *free = chip->ecc.layout->oobfree; uint32_t boffs = 0, roffs = ops->ooboffs; - size_t bytes = 0; + size_mtd_t bytes = 0; - + for(; free->length && len; free++, len -= bytes) { /* Read request not from offset 0 ? */ -@@ -925,11 +1139,11 @@ +@@ -1006,11 +1220,11 @@ static uint8_t *nand_transfer_oob(struct continue; } boffs = free->offset + roffs; @@ -15989,7 +15977,7 @@ boffs = free->offset; } memcpy(oob, chip->oob_poi + boffs, bytes); -@@ -952,7 +1166,7 @@ +@@ -1033,7 +1247,7 @@ static uint8_t *nand_transfer_oob(struct * * Internal function. Called with chip held. */ @@ -15998,10 +15986,10 @@ struct mtd_oob_ops *ops) { int chipnr, page, realpage, col, bytes, aligned; -@@ -986,10 +1200,18 @@ +@@ -1067,10 +1281,18 @@ static int nand_do_read_ops(struct mtd_i if (realpage != chip->pagebuf || oob) { bufpoi = aligned ? buf : chip->buffers->databuf; - + + global_page = page; +#if defined(CONFIG_MTD_HW_RS_ECC) || defined(CONFIG_MTD_NAND_DMA) + bufpoi[0] = (uint8_t)page; @@ -16014,19 +16002,19 @@ sndcmd = 0; } +#endif - + /* Now read the page into the buffer */ if (unlikely(ops->mode == MTD_OOB_RAW)) -@@ -1065,7 +1287,7 @@ +@@ -1149,7 +1371,7 @@ static int nand_do_read_ops(struct mtd_i sndcmd = 1; } - + - ops->retlen = ops->len - (size_t) readlen; + ops->retlen = ops->len - (size_mtd_t) readlen; if (oob) ops->oobretlen = ops->ooblen - oobreadlen; - -@@ -1088,8 +1310,8 @@ + +@@ -1172,8 +1394,8 @@ static int nand_do_read_ops(struct mtd_i * * Get hold of the chip and call nand_do_read */ @@ -16037,7 +16025,7 @@ { struct nand_chip *chip = mtd->priv; int ret; -@@ -1262,7 +1484,7 @@ +@@ -1346,7 +1568,7 @@ static int nand_write_oob_syndrome(struc * * NAND read out-of-band data from the spare area */ @@ -16046,7 +16034,7 @@ struct mtd_oob_ops *ops) { int page, realpage, chipnr, sndcmd = 1; -@@ -1355,7 +1577,7 @@ +@@ -1439,7 +1661,7 @@ static int nand_do_read_oob(struct mtd_i * * NAND read data and/or out-of-band data */ @@ -16055,10 +16043,10 @@ struct mtd_oob_ops *ops) { struct nand_chip *chip = mtd->priv; -@@ -1518,12 +1740,17 @@ +@@ -1602,12 +1824,17 @@ static int nand_write_page(struct mtd_in { int status; - + - chip->cmdfunc(mtd, NAND_CMD_SEQIN, 0x00, page); - - if (unlikely(raw)) @@ -16075,12 +16063,12 @@ + else + chip->ecc.write_page(mtd, chip, buf); + } - + /* * Cached progamming disabled for now, Not sure if its worth the -@@ -1532,9 +1759,17 @@ +@@ -1616,9 +1843,17 @@ static int nand_write_page(struct mtd_in cached = 0; - + if (!cached || !(chip->options & NAND_CACHEPRG)) { - - chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); @@ -16098,25 +16086,25 @@ /* * See if operation failed and additional status checks are * available -@@ -1569,7 +1804,7 @@ +@@ -1653,7 +1888,7 @@ static int nand_write_page(struct mtd_in static uint8_t *nand_fill_oob(struct nand_chip *chip, uint8_t *oob, struct mtd_oob_ops *ops) { - size_t len = ops->ooblen; + size_mtd_t len = ops->ooblen; - + switch(ops->mode) { - -@@ -1581,7 +1816,7 @@ + +@@ -1665,7 +1900,7 @@ static uint8_t *nand_fill_oob(struct nan case MTD_OOB_AUTO: { struct nand_oobfree *free = chip->ecc.layout->oobfree; uint32_t boffs = 0, woffs = ops->ooboffs; - size_t bytes = 0; + size_mtd_t bytes = 0; - + for(; free->length && len; free++, len -= bytes) { /* Write request not from offset 0 ? */ -@@ -1591,11 +1826,11 @@ +@@ -1675,11 +1910,11 @@ static uint8_t *nand_fill_oob(struct nan continue; } boffs = free->offset + woffs; @@ -16130,7 +16118,7 @@ boffs = free->offset; } memcpy(chip->oob_poi + boffs, oob, bytes); -@@ -1619,7 +1854,7 @@ +@@ -1703,7 +1938,7 @@ static uint8_t *nand_fill_oob(struct nan * * NAND write with ECC */ @@ -16139,7 +16127,7 @@ struct mtd_oob_ops *ops) { int chipnr, realpage, page, blockmask, column; -@@ -1722,8 +1957,8 @@ +@@ -1806,8 +2041,8 @@ static int nand_do_write_ops(struct mtd_ * * NAND write with ECC */ @@ -16150,7 +16138,7 @@ { struct nand_chip *chip = mtd->priv; int ret; -@@ -1757,7 +1992,7 @@ +@@ -1841,7 +2076,7 @@ static int nand_write(struct mtd_info *m * * NAND write out-of-band */ @@ -16159,7 +16147,7 @@ struct mtd_oob_ops *ops) { int chipnr, page, status, len; -@@ -1835,7 +2070,7 @@ +@@ -1919,7 +2154,7 @@ static int nand_do_write_oob(struct mtd_ * @to: offset to write to * @ops: oob operation description structure */ @@ -16168,7 +16156,7 @@ struct mtd_oob_ops *ops) { struct nand_chip *chip = mtd->priv; -@@ -1999,7 +2234,7 @@ +@@ -2083,7 +2318,7 @@ int nand_erase_nand(struct mtd_info *mtd /* * heck if we have a bad block, we do not erase bad blocks ! */ @@ -16177,7 +16165,7 @@ chip->page_shift, 0, allowbbt)) { printk(KERN_WARNING "nand_erase: attempt to erase a " "bad block at page 0x%08x\n", page); -@@ -2121,7 +2356,7 @@ +@@ -2205,7 +2440,7 @@ static void nand_sync(struct mtd_info *m * @mtd: MTD device structure * @offs: offset relative to mtd start */ @@ -16186,7 +16174,7 @@ { /* Check for invalid offset */ if (offs > mtd->size) -@@ -2135,7 +2370,7 @@ +@@ -2219,7 +2454,7 @@ static int nand_block_isbad(struct mtd_i * @mtd: MTD device structure * @ofs: offset relative to mtd start */ @@ -16195,7 +16183,7 @@ { struct nand_chip *chip = mtd->priv; int ret; -@@ -2274,7 +2509,21 @@ +@@ -2385,7 +2620,21 @@ static struct nand_flash_dev *nand_get_f extid >>= 2; /* Get buswidth information */ busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0; @@ -16206,7 +16194,7 @@ +#else + chip->realplanenum = 1; +#endif - + + if (chip->realplanenum > 1) { /* use muti planes mode */ + chip->planenum = 2; + mtd->writesize *= 2; /* two pages as one page */ @@ -16217,36 +16205,36 @@ } else { /* * Old devices have chip data hardcoded in the device id table -@@ -2312,7 +2561,7 @@ - +@@ -2423,7 +2672,7 @@ static struct nand_flash_dev *nand_get_f + chip->bbt_erase_shift = chip->phys_erase_shift = ffs(mtd->erasesize) - 1; - chip->chip_shift = ffs(chip->chipsize) - 1; + chip->chip_shift = ffs_ll(chip->chipsize) - 1; - + /* Set the bad block position */ chip->badblockpos = mtd->writesize > 512 ? -@@ -2344,8 +2593,8 @@ +@@ -2455,8 +2704,8 @@ static struct nand_flash_dev *nand_get_f chip->cmdfunc = nand_command_lp; - + printk(KERN_INFO "NAND device: Manufacturer ID:" - " 0x%02x, Chip ID: 0x%02x (%s %s)\n", *maf_id, dev_id, - nand_manuf_ids[maf_idx].name, type->name); + " 0x%02x, Chip ID: 0x%02x (%s %s) planenum:%d\n", *maf_id, dev_id, + nand_manuf_ids[maf_idx].name, type->name, chip->realplanenum); - + return type; } -@@ -2412,7 +2661,7 @@ +@@ -2525,7 +2774,7 @@ int nand_scan_ident(struct mtd_info *mtd */ int nand_scan_tail(struct mtd_info *mtd) { - int i; + int i, res; struct nand_chip *chip = mtd->priv; - + if (!(chip->options & NAND_OWN_BUFFERS)) -@@ -2437,6 +2686,16 @@ +@@ -2550,6 +2799,16 @@ int nand_scan_tail(struct mtd_info *mtd) case 64: chip->ecc.layout = &nand_oob_64; break; @@ -16263,7 +16251,7 @@ default: printk(KERN_WARNING "No oob scheme defined for " "oobsize %d\n", mtd->oobsize); -@@ -2459,8 +2718,13 @@ +@@ -2572,8 +2831,13 @@ int nand_scan_tail(struct mtd_info *mtd) switch (chip->ecc.mode) { case NAND_ECC_HW: /* Use standard hwecc read page function ? */ @@ -16278,10 +16266,10 @@ if (!chip->ecc.write_page) chip->ecc.write_page = nand_write_page_hwecc; if (!chip->ecc.read_oob) -@@ -2593,8 +2857,58 @@ +@@ -2711,8 +2975,58 @@ int nand_scan_tail(struct mtd_info *mtd) if (chip->options & NAND_SKIP_BBTSCAN) return 0; - + - /* Build bad block table */ - return chip->scan_bbt(mtd); + /* Create jz_mtd1 for one plane operation if the NAND support multiple @@ -16337,11 +16325,11 @@ + + return res; } - + /* module_text_address() isn't exported, and it's mostly a pointless ---- linux-2.6.24.7.old/drivers/mtd/nand/nand_bbt.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/nand/nand_bbt.c 2009-04-12 18:13:57.000000000 +0200 -@@ -147,15 +147,15 @@ +--- a/drivers/mtd/nand/nand_bbt.c ++++ b/drivers/mtd/nand/nand_bbt.c +@@ -145,15 +145,15 @@ static int read_bbt(struct mtd_info *mtd { int res, i, j, act = 0; struct nand_chip *this = mtd->priv; @@ -16350,18 +16338,18 @@ + size_mtd_t retlen, len, totlen; + loff_mtd_t from; uint8_t msk = (uint8_t) ((1 << bits) - 1); - + totlen = (num * bits) >> 3; - from = ((loff_t) page) << this->page_shift; + from = ((loff_mtd_t) page) << this->page_shift; - + while (totlen) { - len = min(totlen, (size_t) (1 << this->bbt_erase_shift)); + len = min(totlen, (size_mtd_t) (1 << this->bbt_erase_shift)); res = mtd->read(mtd, from, len, &retlen, buf); if (res < 0) { if (retlen != len) { -@@ -235,8 +235,8 @@ +@@ -233,8 +233,8 @@ static int read_abs_bbt(struct mtd_info /* * Scan read raw data from flash */ @@ -16371,8 +16359,8 @@ + size_mtd_t len) { struct mtd_oob_ops ops; - -@@ -253,7 +253,7 @@ + +@@ -251,7 +251,7 @@ static int scan_read_raw(struct mtd_info /* * Scan write data with oob to flash */ @@ -16381,7 +16369,7 @@ uint8_t *buf, uint8_t *oob) { struct mtd_oob_ops ops; -@@ -308,7 +308,7 @@ +@@ -306,7 +306,7 @@ static int read_abs_bbts(struct mtd_info * Scan a given block full */ static int scan_block_full(struct mtd_info *mtd, struct nand_bbt_descr *bd, @@ -16390,7 +16378,7 @@ int scanlen, int len) { int ret, j; -@@ -328,7 +328,7 @@ +@@ -326,7 +326,7 @@ static int scan_block_full(struct mtd_in * Scan a given block partially */ static int scan_block_fast(struct mtd_info *mtd, struct nand_bbt_descr *bd, @@ -16399,7 +16387,7 @@ { struct mtd_oob_ops ops; int j, ret; -@@ -374,8 +374,8 @@ +@@ -372,8 +372,8 @@ static int create_bbt(struct mtd_info *m struct nand_chip *this = mtd->priv; int i, numblocks, len, scanlen; int startblock; @@ -16407,10 +16395,10 @@ - size_t readlen; + loff_mtd_t from; + size_mtd_t readlen; - + printk(KERN_INFO "Scanning device for bad blocks\n"); - -@@ -403,7 +403,7 @@ + +@@ -401,7 +401,7 @@ static int create_bbt(struct mtd_info *m * below as it makes shifting and masking less painful */ numblocks = mtd->size >> (this->bbt_erase_shift - 1); startblock = 0; @@ -16419,17 +16407,17 @@ } else { if (chip >= this->numchips) { printk(KERN_WARNING "create_bbt(): chipnr (%d) > available chips (%d)\n", -@@ -413,7 +413,7 @@ +@@ -411,7 +411,7 @@ static int create_bbt(struct mtd_info *m numblocks = this->chipsize >> (this->bbt_erase_shift - 1); startblock = chip * numblocks; numblocks += startblock; - from = startblock << (this->bbt_erase_shift - 1); + from = (startblock << (this->bbt_erase_shift - 1)) + (CONFIG_MTD_BADBLOCK_FLAG_PAGE << this->page_shift); //from = startblock << (this->bbt_erase_shift - 1); } - + for (i = startblock; i < numblocks;) { -@@ -430,8 +430,8 @@ - +@@ -428,8 +428,8 @@ static int create_bbt(struct mtd_info *m + if (ret) { this->bbt[i >> 3] |= 0x03 << (i & 0x6); - printk(KERN_WARNING "Bad eraseblock %d at 0x%08x\n", @@ -16438,17 +16426,17 @@ + i >> 1, (unsigned long long)from); mtd->ecc_stats.badblocks++; } - -@@ -497,7 +497,7 @@ + +@@ -495,7 +495,7 @@ static int search_bbt(struct mtd_info *m for (block = 0; block < td->maxblocks; block++) { - + int actblock = startblock + dir * block; - loff_t offs = actblock << this->bbt_erase_shift; + loff_mtd_t offs = actblock << this->bbt_erase_shift; - + /* Read first page */ scan_read_raw(mtd, buf, offs, mtd->writesize); -@@ -567,8 +567,8 @@ +@@ -565,8 +565,8 @@ static int write_bbt(struct mtd_info *mt int nrchips, bbtoffs, pageoffs, ooboffs; uint8_t msk[4]; uint8_t rcode = td->reserved_block_code; @@ -16457,15 +16445,15 @@ + size_mtd_t retlen, len = 0; + loff_mtd_t to; struct mtd_oob_ops ops; - + ops.ooblen = mtd->oobsize; -@@ -655,12 +655,12 @@ - +@@ -653,12 +653,12 @@ static int write_bbt(struct mtd_info *mt + bbtoffs = chip * (numblocks >> 2); - + - to = ((loff_t) page) << this->page_shift; + to = ((loff_mtd_t) page) << this->page_shift; - + /* Must we save the block contents ? */ if (td->options & NAND_BBT_SAVECONTENT) { /* Make it block aligned */ @@ -16474,14 +16462,14 @@ len = 1 << this->bbt_erase_shift; res = mtd->read(mtd, to, len, &retlen, buf); if (res < 0) { -@@ -685,12 +685,12 @@ +@@ -683,12 +683,12 @@ static int write_bbt(struct mtd_info *mt pageoffs = page - (int)(to >> this->page_shift); offs = pageoffs << this->page_shift; /* Preset the bbt area with 0xff */ - memset(&buf[offs], 0xff, (size_t) (numblocks >> sft)); + memset(&buf[offs], 0xff, (size_mtd_t) (numblocks >> sft)); ooboffs = len + (pageoffs * mtd->oobsize); - + } else { /* Calc length */ - len = (size_t) (numblocks >> sft); @@ -16489,7 +16477,7 @@ /* Make it page aligned ! */ len = (len + (mtd->writesize - 1)) & ~(mtd->writesize - 1); -@@ -1017,7 +1017,7 @@ +@@ -1015,7 +1015,7 @@ int nand_scan_bbt(struct mtd_info *mtd, * * The function updates the bad block table(s) */ @@ -16498,7 +16486,7 @@ { struct nand_chip *this = mtd->priv; int len, res = 0, writeops = 0; -@@ -1193,7 +1193,7 @@ +@@ -1191,7 +1191,7 @@ int nand_default_bbt(struct mtd_info *mt * @allowbbt: allow access to bad block table region * */ @@ -16507,20 +16495,20 @@ { struct nand_chip *this = mtd->priv; int block; ---- linux-2.6.24.7.old/drivers/mtd/nand/nand_ids.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/mtd/nand/nand_ids.c 2009-04-12 18:13:57.000000000 +0200 -@@ -111,6 +111,9 @@ +--- a/drivers/mtd/nand/nand_ids.c ++++ b/drivers/mtd/nand/nand_ids.c +@@ -109,6 +109,9 @@ struct nand_flash_dev nand_flash_ids[] = {"NAND 2GiB 1,8V 16-bit", 0xB5, 0, 2048, 0, LP_OPTIONS16}, {"NAND 2GiB 3,3V 16-bit", 0xC5, 0, 2048, 0, LP_OPTIONS16}, - + + /* 32 Gigabit */ + {"NAND 4GiB 3,3V 8-bit", 0xD7, 0, 4096, 0, LP_OPTIONS}, + /* * Renesas AND 1 Gigabit. Those chips do not support extended id and * have a strange page/block layout ! The chosen minimum erasesize is ---- linux-2.6.24.7.old/drivers/mtd/udc_cache.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/mtd/udc_cache.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/mtd/udc_cache.c @@ -0,0 +1,531 @@ +#include +#include @@ -17053,12 +17041,12 @@ +EXPORT_SYMBOL_GPL(NAND_LB_FLASHCACHE); +EXPORT_SYMBOL_GPL(FlushDataState); +EXPORT_SYMBOL_GPL(NAND_MTD_FLASHCACHE); ---- linux-2.6.24.7.old/drivers/net/Kconfig 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/drivers/net/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -333,6 +333,24 @@ +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -330,6 +330,24 @@ config MII or internal device. It is safe to say Y or M here even if your ethernet card lack MII. - + +config JZ_ETH + tristate "JZ4730/JZ5730 On-Chip Ethernet support" + depends on NET_ETHERNET && (SOC_JZ4730 || SOC_JZ5730 || JZ_FPGA) @@ -17079,20 +17067,20 @@ + config MACB tristate "Atmel MACB support" - depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 ---- linux-2.6.24.7.old/drivers/net/Makefile 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/drivers/net/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -84,6 +84,8 @@ + depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 || ARCH_AT91SAM9G20 || ARCH_AT91CAP9 +--- a/drivers/net/Makefile ++++ b/drivers/net/Makefile +@@ -93,6 +93,8 @@ obj-$(CONFIG_SH_ETH) += sh_eth.o obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_PHYLIB) += phy/ - + +obj-$(CONFIG_JZ_ETH) += jz_eth.o +obj-$(CONFIG_JZCS8900) += jzcs8900a.o obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_HAMACHI) += hamachi.o obj-$(CONFIG_NET) += Space.o loopback.o ---- linux-2.6.24.7.old/drivers/net/jz_eth.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/net/jz_eth.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/net/jz_eth.c @@ -0,0 +1,1290 @@ +/* + * linux/drivers/net/jz_eth.c @@ -18384,8 +18372,8 @@ + +module_init(jz_eth_init); +module_exit(jz_eth_exit); ---- linux-2.6.24.7.old/drivers/net/jz_eth.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/net/jz_eth.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/net/jz_eth.h @@ -0,0 +1,403 @@ +/* + * linux/drivers/net/jz_eth.h @@ -18790,8 +18778,8 @@ +}; + +#endif /* __JZ_ETH_H__ */ ---- linux-2.6.24.7.old/drivers/net/jzcs8900a.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/net/jzcs8900a.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/net/jzcs8900a.c @@ -0,0 +1,649 @@ + +/* @@ -19442,8 +19430,8 @@ + +module_init(jzcs8900_init); +module_exit(jzcs8900_exit); ---- linux-2.6.24.7.old/drivers/net/jzcs8900a.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/net/jzcs8900a.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/net/jzcs8900a.h @@ -0,0 +1,235 @@ +#ifndef JZCS8900A_H +#define JZCS8900A_H @@ -19680,8 +19668,8 @@ +#define ELSEL 0x0400 + +#endif /* #ifndef CIRRUS_H */ ---- linux-2.6.24.7.old/drivers/pnp/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/pnp/Kconfig 2009-04-12 18:13:57.000000000 +0200 +--- a/drivers/pnp/Kconfig ++++ b/drivers/pnp/Kconfig @@ -5,7 +5,7 @@ menuconfig PNP bool "Plug and Play support" @@ -19691,39 +19679,39 @@ ---help--- Plug and Play (PnP) is a standard for peripherals which allows those peripherals to be configured by software, e.g. assign IRQ's or other ---- linux-2.6.24.7.old/drivers/pnp/core.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/pnp/core.c 2009-04-12 18:13:57.000000000 +0200 -@@ -74,6 +74,8 @@ +--- a/drivers/pnp/core.c ++++ b/drivers/pnp/core.c +@@ -74,6 +74,8 @@ int pnp_register_protocol(struct pnp_pro return device_register(&protocol->dev); } - + +EXPORT_SYMBOL(pnp_register_protocol); + /** * pnp_protocol_unregister - removes a pnp protocol from the pnp layer * @protocol: pointer to the corresponding pnp_protocol structure -@@ -86,6 +88,8 @@ +@@ -86,6 +88,8 @@ void pnp_unregister_protocol(struct pnp_ device_unregister(&protocol->dev); } - + +EXPORT_SYMBOL(pnp_unregister_protocol); + static void pnp_free_ids(struct pnp_dev *dev) { struct pnp_id *id; -@@ -166,6 +170,8 @@ +@@ -197,6 +201,8 @@ int pnp_add_device(struct pnp_dev *dev) return 0; } - + +EXPORT_SYMBOL(pnp_add_device); + void __pnp_remove_device(struct pnp_dev *dev) { spin_lock(&pnp_lock); -@@ -175,6 +181,21 @@ +@@ -206,6 +212,21 @@ void __pnp_remove_device(struct pnp_dev device_unregister(&dev->dev); } - + +/** + * pnp_remove_device - removes a pnp device from the pnp layer + * @dev: pointer to dev to add @@ -19741,30 +19729,30 @@ + static int __init pnp_init(void) { - printk(KERN_INFO "Linux Plug and Play Support v0.97 (c) Adam Belay\n"); ---- linux-2.6.24.7.old/drivers/pnp/driver.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/pnp/driver.c 2009-04-12 18:13:57.000000000 +0200 -@@ -246,3 +246,4 @@ + return bus_register(&pnp_bus_type); +--- a/drivers/pnp/driver.c ++++ b/drivers/pnp/driver.c +@@ -259,3 +259,4 @@ EXPORT_SYMBOL(pnp_register_driver); EXPORT_SYMBOL(pnp_unregister_driver); EXPORT_SYMBOL(pnp_device_attach); EXPORT_SYMBOL(pnp_device_detach); +EXPORT_SYMBOL(pnp_add_id); ---- linux-2.6.24.7.old/drivers/pnp/resource.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/pnp/resource.c 2009-04-12 18:13:57.000000000 +0200 -@@ -404,6 +404,10 @@ - - int pnp_check_dma(struct pnp_dev *dev, int idx) +--- a/drivers/pnp/resource.c ++++ b/drivers/pnp/resource.c +@@ -406,6 +406,10 @@ int pnp_check_irq(struct pnp_dev *dev, s + + int pnp_check_dma(struct pnp_dev *dev, struct resource *res) { + printk("*********** %s, %s, line[%d]: Fix me, this should update in the future *********\n", + __FILE__, __FUNCTION__, __LINE__); + return 0; /* should be update in the future. Wolfgang ???*/ + #ifndef CONFIG_IA64 - int tmp; + int i; struct pnp_dev *tdev; ---- linux-2.6.24.7.old/drivers/serial/8250.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/serial/8250.c 2009-04-12 18:13:57.000000000 +0200 -@@ -181,7 +181,7 @@ +--- a/drivers/serial/8250.c ++++ b/drivers/serial/8250.c +@@ -193,7 +193,7 @@ static const struct serial8250_config ua [PORT_16550A] = { .name = "16550A", .fifo_size = 16, @@ -19773,9 +19761,9 @@ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, .flags = UART_CAP_FIFO, }, -@@ -400,6 +400,10 @@ +@@ -412,6 +412,10 @@ serial_out(struct uart_8250_port *up, in break; - + case UPIO_MEM: +#if defined(CONFIG_JZSOC) + if (offset == (UART_FCR << up->port.regshift)) @@ -19783,11 +19771,11 @@ +#endif writeb(value, up->port.membase + offset); break; - -@@ -1981,6 +1985,83 @@ + +@@ -2130,6 +2134,83 @@ static void serial8250_shutdown(struct u serial_unlink_irq_chain(up); } - + +#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730) +static unsigned short quot1[3] = {0}; /* quot[0]:baud_div, quot[1]:umr, quot[2]:uacr */ +static unsigned short * serial8250_get_divisor(struct uart_port *port, unsigned int baud) @@ -19868,25 +19856,25 @@ static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud) { unsigned int quot; -@@ -2000,6 +2081,7 @@ - +@@ -2149,6 +2230,7 @@ static unsigned int serial8250_get_divis + return quot; } +#endif - + static void serial8250_set_termios(struct uart_port *port, struct ktermios *termios, -@@ -2009,6 +2091,9 @@ +@@ -2158,6 +2240,9 @@ serial8250_set_termios(struct uart_port unsigned char cval, fcr = 0; unsigned long flags; unsigned int baud, quot; +#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730) + unsigned short *quot1; +#endif - + switch (termios->c_cflag & CSIZE) { case CS5: -@@ -2041,7 +2126,12 @@ +@@ -2190,7 +2275,12 @@ serial8250_set_termios(struct uart_port * Ask the core to calculate the divisor for us. */ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); @@ -19896,24 +19884,24 @@ +#else quot = serial8250_get_divisor(port, baud); +#endif - + /* * Oxford Semi 952 rev B workaround -@@ -2119,6 +2209,10 @@ +@@ -2268,6 +2358,10 @@ serial8250_set_termios(struct uart_port if (up->capabilities & UART_CAP_UUE) up->ier |= UART_IER_UUE | UART_IER_RTOIE; - + +#ifdef CONFIG_JZSOC + up->ier |= UART_IER_RTOIE; /* Set this flag, or very slow */ +#endif + serial_out(up, UART_IER, up->ier); - + if (up->capabilities & UART_CAP_EFR) { -@@ -2153,7 +2247,15 @@ +@@ -2302,7 +2396,15 @@ serial8250_set_termios(struct uart_port serial_outp(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */ } - + +#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730) +#define UART_UMR 9 +#define UART_UACR 10 @@ -19923,12 +19911,12 @@ +#else serial_dl_write(up, quot); +#endif - + /* * LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR ---- linux-2.6.24.7.old/drivers/usb/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -41,6 +41,7 @@ +--- a/drivers/usb/Kconfig ++++ b/drivers/usb/Kconfig +@@ -43,6 +43,7 @@ config USB_ARCH_HAS_OHCI default y if PPC_MPC52xx # MIPS: default y if SOC_AU1X00 @@ -19936,21 +19924,20 @@ # SH: default y if CPU_SUBTYPE_SH7720 default y if CPU_SUBTYPE_SH7721 ---- linux-2.6.24.7.old/drivers/usb/core/hub.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/core/hub.c 2009-04-12 18:13:57.000000000 +0200 -@@ -2484,11 +2484,35 @@ - struct device *hub_dev = hub->intfdev; - u16 wHubCharacteristics = le16_to_cpu(hub->descriptor->wHubCharacteristics); +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -2750,11 +2750,35 @@ static void hub_port_connect_change(stru + le16_to_cpu(hub->descriptor->wHubCharacteristics); + struct usb_device *udev; int status, i; -- +#ifdef CONFIG_JZSOC + static char jzhub = 1; /* the hub first to be initialized is jzsoc on-chip hub */ +#endif -+ + dev_dbg (hub_dev, "port %d, status %04x, change %04x, %s\n", port1, portstatus, portchange, portspeed (portstatus)); - + +#ifdef CONFIG_SOC_JZ4730 + /* + * On Jz4730, we assume that the first USB port was used as device. @@ -19975,12 +19962,12 @@ if (hub->has_indicators) { set_port_led(hub, port1, HUB_LED_AUTO); hub->indicator[port1-1] = INDICATOR_AUTO; ---- linux-2.6.24.7.old/drivers/usb/gadget/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/gadget/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -93,6 +93,47 @@ - Many controller drivers are platform-specific; these - often need board-specific hooks. - +--- a/drivers/usb/gadget/Kconfig ++++ b/drivers/usb/gadget/Kconfig +@@ -337,6 +337,47 @@ config SUPERH_BUILT_IN_M66592 + # Controllers available only in discrete form (and all PCI controllers) + # + +config USB_GADGET_JZ4740 + boolean "JZ4740 UDC" + depends on SOC_JZ4740 @@ -20025,10 +20012,10 @@ config USB_GADGET_AMD5536UDC boolean "AMD5536 UDC" depends on PCI -@@ -509,6 +550,14 @@ +@@ -611,6 +652,14 @@ config USB_FILE_STORAGE_TEST behavior of USB Mass Storage hosts. Not needed for normal operation. - + +config UDC_USE_LB_CACHE + bool "enable lb cache" + depends on USB_FILE_STORAGE && (SOC_JZ4740 || SOC_JZ4750) @@ -20038,25 +20025,25 @@ + say "n" to disable lb cache and UDC work in normal speed. + config USB_G_SERIAL - tristate "Serial Gadget (with CDC ACM support)" + tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" help ---- linux-2.6.24.7.old/drivers/usb/gadget/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/gadget/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -17,6 +17,9 @@ +--- a/drivers/usb/gadget/Makefile ++++ b/drivers/usb/gadget/Makefile +@@ -19,6 +19,9 @@ obj-$(CONFIG_USB_ATMEL_USBA) += atmel_us obj-$(CONFIG_USB_FSL_USB2) += fsl_usb2_udc.o obj-$(CONFIG_USB_M66592) += m66592-udc.o obj-$(CONFIG_USB_FSL_QE) += fsl_qe_udc.o +obj-$(CONFIG_USB_JZ4740) += jz4740_udc.o +obj-$(CONFIG_USB_JZ4730) += jz4730_udc.o +obj-$(CONFIG_USB_JZ4750) += jz4740_udc.o - + # # USB gadget drivers ---- linux-2.6.24.7.old/drivers/usb/gadget/file_storage.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/gadget/file_storage.c 2009-04-12 18:13:57.000000000 +0200 -@@ -274,6 +274,18 @@ - - +--- a/drivers/usb/gadget/file_storage.c ++++ b/drivers/usb/gadget/file_storage.c +@@ -286,6 +286,18 @@ MODULE_LICENSE("Dual BSD/GPL"); + + /*-------------------------------------------------------------------------*/ +#if defined(CONFIG_UDC_USE_LB_CACHE) +#define GHOST @@ -20070,10 +20057,10 @@ +extern int NAND_MTD_FLASHCACHE(void); +extern int FlushDataState; +#endif - - #ifdef DEBUG + #define LDBG(lun,fmt,args...) \ -@@ -349,8 +361,8 @@ + dev_dbg(&(lun)->dev , fmt , ## args) +@@ -357,8 +369,8 @@ static struct { } mod_data = { // Default values .transport_parm = "BBB", .protocol_parm = "SCSI", @@ -20084,24 +20071,24 @@ .vendor = DRIVER_VENDOR_ID, .product = DRIVER_PRODUCT_ID, .release = 0xffff, // Use controller chip type -@@ -810,6 +822,7 @@ +@@ -818,6 +830,7 @@ static void put_be32(u8 *buf, u32 val) #define STRING_SERIAL 3 #define STRING_CONFIG 4 #define STRING_INTERFACE 5 +#define STRING_MS_OS 0xee - + /* There is only one configuration. */ #define CONFIG_VALUE 1 -@@ -997,6 +1010,7 @@ +@@ -1005,6 +1018,7 @@ static struct usb_string strings[] = { {STRING_SERIAL, serial}, {STRING_CONFIG, "Self-powered"}, {STRING_INTERFACE, "Mass Storage"}, + {STRING_MS_OS, "Microsoft"}, {} }; - -@@ -1618,9 +1632,14 @@ - + +@@ -1626,9 +1640,14 @@ static int do_read(struct fsg_dev *fsg) + /* Perform the read */ file_offset_tmp = file_offset; +#ifdef GHOST @@ -20115,8 +20102,8 @@ VLDBG(curlun, "file read %u @ %llu -> %d\n", amount, (unsigned long long) file_offset, (int) nread); -@@ -1799,9 +1818,13 @@ - +@@ -1807,9 +1826,13 @@ static int do_write(struct fsg_dev *fsg) + /* Perform the write */ file_offset_tmp = file_offset; +#ifdef GHOST @@ -20129,8 +20116,8 @@ VLDBG(curlun, "file write %u @ %llu -> %d\n", amount, (unsigned long long) file_offset, (int) nwritten); -@@ -1976,9 +1999,19 @@ - +@@ -1984,9 +2007,19 @@ static int do_verify(struct fsg_dev *fsg + /* Perform the read */ file_offset_tmp = file_offset; +#ifdef GHOST @@ -20149,16 +20136,16 @@ VLDBG(curlun, "file read %u @ %llu -> %d\n", amount, (unsigned long long) file_offset, (int) nread); -@@ -2013,7 +2046,7 @@ +@@ -2021,7 +2054,7 @@ static int do_inquiry(struct fsg_dev *fs { u8 *buf = (u8 *) bh->buf; - + - static char vendor_id[] = "Linux "; + static char vendor_id[] = "Ingenic "; static char product_id[] = "File-Stor Gadget"; - + if (!fsg->curlun) { // Unsupported LUNs are okay -@@ -2857,6 +2890,15 @@ +@@ -2901,6 +2934,15 @@ static int do_scsi_command(struct fsg_de reply = check_command(fsg, 6, DATA_DIR_NONE, 0, 1, "TEST UNIT READY"); @@ -20172,10 +20159,10 @@ + } +#endif break; - + /* Although optional, this command is used by MS-Windows. We -@@ -3404,6 +3446,13 @@ - +@@ -3450,6 +3492,13 @@ static int fsg_main_thread(void *fsg_) + /* The main loop */ while (fsg->state != FSG_STATE_TERMINATED) { +#ifdef GHOST @@ -20188,22 +20175,22 @@ if (exception_in_progress(fsg) || signal_pending(current)) { handle_exception(fsg); continue; -@@ -3525,6 +3574,9 @@ +@@ -3571,6 +3620,9 @@ static int open_backing_file(struct lun curlun->num_sectors = num_sectors; LDBG(curlun, "open backing file: %s\n", filename); rc = 0; +#ifdef GHOST + NAND_LB_Init(); +#endif - + out: filp_close(filp, current->files); ---- linux-2.6.24.7.old/drivers/usb/gadget/gadget_chips.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/gadget/gadget_chips.h 2009-04-12 18:13:57.000000000 +0200 -@@ -11,6 +11,18 @@ +--- a/drivers/usb/gadget/gadget_chips.h ++++ b/drivers/usb/gadget/gadget_chips.h +@@ -15,6 +15,18 @@ #ifndef __GADGET_CHIPS_H #define __GADGET_CHIPS_H - + +#ifdef CONFIG_USB_GADGET_JZ4740 +#define gadget_is_jz4740(g) !strcmp("jz4740_udc", (g)->name) +#else @@ -20219,18 +20206,19 @@ #ifdef CONFIG_USB_GADGET_NET2280 #define gadget_is_net2280(g) !strcmp("net2280", (g)->name) #else -@@ -212,5 +224,9 @@ - return 0x21; - else if (gadget_is_fsl_qe(gadget)) - return 0x22; +@@ -225,6 +237,10 @@ static inline int usb_gadget_controller_ + return 0x21; + else if (gadget_is_fsl_qe(gadget)) + return 0x22; + else if (gadget_is_jz4730(gadget)) + return 0x23; + else if (gadget_is_jz4740(gadget)) + return 0x24; return -ENOENT; } ---- linux-2.6.24.7.old/drivers/usb/gadget/jz4730_udc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/usb/gadget/jz4730_udc.c 2009-04-12 18:13:57.000000000 +0200 + +--- /dev/null ++++ b/drivers/usb/gadget/jz4730_udc.c @@ -0,0 +1,1403 @@ +/* + * JZ4730 USB Device Controller driver @@ -21635,8 +21623,8 @@ +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR("Wei Jianli "); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/usb/gadget/jz4730_udc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/usb/gadget/jz4730_udc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/usb/gadget/jz4730_udc.h @@ -0,0 +1,107 @@ +/* + * JZ4730 USB Device Controller driver @@ -21745,8 +21733,8 @@ +#endif + +#endif /* __JZ4730_UDC_H__ */ ---- linux-2.6.24.7.old/drivers/usb/gadget/jz4740_udc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/usb/gadget/jz4740_udc.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/usb/gadget/jz4740_udc.c @@ -0,0 +1,2251 @@ +/* + * linux/drivers/usb/gadget/jz4740_udc.c @@ -23999,8 +23987,8 @@ +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR("Wei Jianli "); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/usb/gadget/jz4740_udc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/usb/gadget/jz4740_udc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/usb/gadget/jz4740_udc.h @@ -0,0 +1,112 @@ +/* + * linux/drivers/usb/gadget/jz4740_udc.h @@ -24114,12 +24102,12 @@ +#endif + +#endif /* __USB_GADGET_JZ4740_H__ */ ---- linux-2.6.24.7.old/drivers/usb/host/ohci-hcd.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/usb/host/ohci-hcd.c 2009-04-12 18:13:57.000000000 +0200 -@@ -977,6 +977,11 @@ +--- a/drivers/usb/host/ohci-hcd.c ++++ b/drivers/usb/host/ohci-hcd.c +@@ -992,6 +992,11 @@ MODULE_LICENSE ("GPL"); #define PCI_DRIVER ohci_pci_driver #endif - + +#ifdef CONFIG_JZSOC +#include "ohci-jz.c" +#define PLATFORM_DRIVER ohci_hcd_jz_driver @@ -24127,9 +24115,9 @@ + #if defined(CONFIG_ARCH_SA1100) && defined(CONFIG_SA1111) #include "ohci-sa1111.c" - #define SA1111_DRIVER ohci_hcd_sa1111_driver#ifdef CONFIG_SA1111 ---- linux-2.6.24.7.old/drivers/usb/host/ohci-jz.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/usb/host/ohci-jz.c 2009-04-12 18:13:57.000000000 +0200 + #define SA1111_DRIVER ohci_hcd_sa1111_driver +--- /dev/null ++++ b/drivers/usb/host/ohci-jz.c @@ -0,0 +1,260 @@ +/* + * OHCI HCD (Host Controller Driver) for USB. @@ -24391,12 +24379,12 @@ + }, +}; + ---- linux-2.6.24.7.old/drivers/video/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/video/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -201,6 +201,222 @@ +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -237,6 +237,222 @@ config FB_TILEBLITTING comment "Frame buffer hardware drivers" depends on FB - + +config FB_JZSOC + tristate "JZSOC LCD controller support" + depends on FB && JZSOC @@ -24616,11 +24604,11 @@ config FB_CIRRUS tristate "Cirrus Logic support" depends on FB && (ZORRO || PCI) ---- linux-2.6.24.7.old/drivers/video/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/video/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -28,6 +28,10 @@ +--- a/drivers/video/Makefile ++++ b/drivers/video/Makefile +@@ -28,6 +28,10 @@ obj-$(CONFIG_FB_DDC) += fb_ddc obj-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o - + # Hardware specific drivers go first +obj-$(CONFIG_FB_JZLCD_4730_4740) += jzlcd.o +obj-$(CONFIG_FB_JZ4740_SLCD) += jz4740_slcd.o @@ -24629,12 +24617,12 @@ obj-$(CONFIG_FB_AMIGA) += amifb.o c2p.o obj-$(CONFIG_FB_ARC) += arcfb.o obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o ---- linux-2.6.24.7.old/drivers/video/console/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/video/console/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -134,6 +134,14 @@ - +--- a/drivers/video/console/Kconfig ++++ b/drivers/video/console/Kconfig +@@ -118,6 +118,14 @@ config FRAMEBUFFER_CONSOLE_DETECT_PRIMAR + If unsure, select n. - + +config FRAMEBUFFER_CONSOLE_CURSOR_FLASH + bool "Framebuffer Console Cursor flash" + depends on FRAMEBUFFER_CONSOLE @@ -24646,26 +24634,26 @@ config FRAMEBUFFER_CONSOLE_ROTATION bool "Framebuffer Console Rotation" depends on FRAMEBUFFER_CONSOLE ---- linux-2.6.24.7.old/drivers/video/console/fbcon.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/video/console/fbcon.c 2009-04-12 18:13:57.000000000 +0200 -@@ -399,6 +399,7 @@ - +--- a/drivers/video/console/fbcon.c ++++ b/drivers/video/console/fbcon.c +@@ -394,6 +394,7 @@ static void fbcon_update_softback(struct + static void fb_flashcursor(struct work_struct *work) { +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_CURSOR_FLASH struct fb_info *info = container_of(work, struct fb_info, queue); struct fbcon_ops *ops = info->fbcon_par; struct display *p; -@@ -424,6 +425,7 @@ +@@ -419,6 +420,7 @@ static void fb_flashcursor(struct work_s ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1), get_color(vc, info, c, 0)); release_console_sem(); +#endif } - + #if defined(CONFIG_ATARI) || defined(CONFIG_MAC) ---- linux-2.6.24.7.old/drivers/video/jz4740_slcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4740_slcd.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4740_slcd.c @@ -0,0 +1,1334 @@ +/* + * linux/drivers/video/jzslcd.c -- Ingenic On-Chip Smart LCD frame buffer device @@ -26001,8 +25989,8 @@ + +MODULE_DESCRIPTION("JzSOC SLCD Controller driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/video/jz4740_slcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4740_slcd.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4740_slcd.h @@ -0,0 +1,376 @@ +/* + * linux/drivers/video/jzslcd.h -- Ingenic On-Chip SLCD frame buffer device @@ -26380,8 +26368,8 @@ +#endif /* CONFIG_SOC_JZ4740 */ +#endif /*__JZSLCD_H__*/ + ---- linux-2.6.24.7.old/drivers/video/jz4750_lcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4750_lcd.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4750_lcd.c @@ -0,0 +1,2139 @@ +/* + * linux/drivers/video/jz4750_lcd.c -- Ingenic Jz4750 LCD frame buffer device @@ -28522,8 +28510,8 @@ + +module_init(jz4750fb_init); +module_exit(jz4750fb_cleanup); ---- linux-2.6.24.7.old/drivers/video/jz4750_lcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4750_lcd.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4750_lcd.h @@ -0,0 +1,756 @@ +/* + * linux/drivers/video/jz4750_lcd.h -- Ingenic Jz4750 On-Chip LCD frame buffer device @@ -29281,8 +29269,8 @@ +#endif + +#endif /* __JZ4750_LCD_H__ */ ---- linux-2.6.24.7.old/drivers/video/jz4750_tve.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4750_tve.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4750_tve.c @@ -0,0 +1,104 @@ + +/* @@ -29388,8 +29376,8 @@ + jz4750tve_set_tve_mode( jz4750_tve_info ); +// jz4750tve_enable_tve(); +} ---- linux-2.6.24.7.old/drivers/video/jz4750_tve.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz4750_tve.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz4750_tve.h @@ -0,0 +1,45 @@ +#ifndef __JZ4750_TVE_H__ +#define __JZ4750_TVE_H__ @@ -29436,8 +29424,8 @@ + + +#endif /* __JZ4750_TVE_H__ */ ---- linux-2.6.24.7.old/drivers/video/jz_kgm_spfd5420a.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz_kgm_spfd5420a.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz_kgm_spfd5420a.h @@ -0,0 +1,382 @@ +/* Set registers of smart lcd acording to the following routines + * Note: BUS width and CMD width and register value width @@ -29821,8 +29809,8 @@ +#endif /* #if CONFIG_JZ4750_SLCD_KGM701A3_TFT_SPFD5420A */ + +#endif /* __JZ_KGM_SPF5420A_H__ */ ---- linux-2.6.24.7.old/drivers/video/jz_toppoly_td043mgeb1.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jz_toppoly_td043mgeb1.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jz_toppoly_td043mgeb1.h @@ -0,0 +1,264 @@ + +#ifndef __JZ_KGM_TOPPOLY_TD043MGEB1_H__ @@ -30088,8 +30076,8 @@ + __spi_write_reg(0x21, 0xf0); \ + __spi_write_reg(0x22, 0x08); \ + */ ---- linux-2.6.24.7.old/drivers/video/jzlcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jzlcd.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jzlcd.c @@ -0,0 +1,1571 @@ +/* + * linux/drivers/video/jzlcd.c -- Ingenic On-Chip LCD frame buffer device @@ -31662,8 +31650,8 @@ + +MODULE_DESCRIPTION("JzSOC LCD Controller driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/drivers/video/jzlcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/video/jzlcd.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/video/jzlcd.h @@ -0,0 +1,791 @@ +/* + * linux/drivers/video/jzlcd.h -- Ingenic On-Chip LCD frame buffer device @@ -32456,12 +32444,12 @@ +#endif + +#endif /* __JZLCD_H__ */ ---- linux-2.6.24.7.old/drivers/watchdog/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/watchdog/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -45,6 +45,15 @@ - +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -45,6 +45,15 @@ comment "Watchdog Device Drivers" + # Architecture Independent - + +config JZ_WDT + bool 'JzSoC On-Chip watchdog' + help @@ -32474,20 +32462,20 @@ config SOFT_WATCHDOG tristate "Software watchdog" help ---- linux-2.6.24.7.old/drivers/watchdog/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/drivers/watchdog/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- a/drivers/watchdog/Makefile ++++ b/drivers/watchdog/Makefile @@ -10,6 +10,9 @@ # that also fails then you can fall back to the software watchdog # to give you some cover. - + +# JZ-watchdog timer +obj-$(CONFIG_JZ_WDT) += jz_wdt.o + # ISA-based Watchdog Cards obj-$(CONFIG_PCWATCHDOG) += pcwd.o obj-$(CONFIG_MIXCOMWD) += mixcomwd.o ---- linux-2.6.24.7.old/drivers/watchdog/jz_wdt.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/drivers/watchdog/jz_wdt.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/drivers/watchdog/jz_wdt.c @@ -0,0 +1,203 @@ +/* + * linux/drivers/char/jz_wdt.c diff --git a/target/linux/xburst/patches-2.6.28/400-include.patch b/target/linux/xburst/patches-2.6.28/400-include.patch index 4c5ef539c..fee642736 100644 --- a/target/linux/xburst/patches-2.6.28/400-include.patch +++ b/target/linux/xburst/patches-2.6.28/400-include.patch @@ -1,9 +1,9 @@ ---- linux-2.6.24.7.old/arch/mips/include/asm/bootinfo.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/include/asm/bootinfo.h 2009-04-12 18:13:57.000000000 +0200 +--- a/arch/mips/include/asm/bootinfo.h ++++ b/arch/mips/include/asm/bootinfo.h @@ -57,6 +57,14 @@ - #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */ + #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */ #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */ - + +/* + * Valid machtype for group INGENIC + */ @@ -13,21 +13,21 @@ +#define MACH_INGENIC_JZ4750D 3 /* JZ4750D SOC */ + #define CL_SIZE COMMAND_LINE_SIZE - + extern char *system_type; ---- linux-2.6.24.7.old/arch/mips/include/asm/cpu.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/include/asm/cpu.h 2009-04-12 18:13:57.000000000 +0200 +--- a/arch/mips/include/asm/cpu.h ++++ b/arch/mips/include/asm/cpu.h @@ -33,6 +33,7 @@ #define PRID_COMP_TOSHIBA 0x070000 #define PRID_COMP_LSI 0x080000 #define PRID_COMP_LEXRA 0x0b0000 +#define PRID_COMP_INGENIC 0xd00000 - - + + /* -@@ -113,6 +114,12 @@ +@@ -114,6 +115,12 @@ #define PRID_IMP_BCM3302 0x9000 - + /* + * These are the PRID's for when 23:16 == PRID_COMP_INGENIC + */ @@ -37,11 +37,11 @@ +/* * Definitions for 7:0 on legacy processors */ - -@@ -203,6 +210,11 @@ + +@@ -204,6 +211,11 @@ enum cpu_type_enum { */ CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, - + + /* + * Ingenic class processors + */ @@ -49,9 +49,9 @@ + CPU_LAST }; - ---- linux-2.6.24.7.old/arch/mips/include/asm/jzsoc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/jzsoc.h 2009-04-12 18:13:57.000000000 +0200 + +--- /dev/null ++++ b/arch/mips/include/asm/jzsoc.h @@ -0,0 +1,49 @@ +/* + * linux/arch/mips/include/asm/jzsoc.h @@ -102,19 +102,19 @@ +#define writel(b,addr) ((*(volatile unsigned int *)(addr)) = (b)) + +#endif /* __ASM_JZSOC_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-generic/irq.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-generic/irq.h 2009-04-12 18:13:57.000000000 +0200 +--- a/arch/mips/include/asm/mach-generic/irq.h ++++ b/arch/mips/include/asm/mach-generic/irq.h @@ -9,7 +9,7 @@ #define __ASM_MACH_GENERIC_IRQ_H - + #ifndef NR_IRQS -#define NR_IRQS 128 +#define NR_IRQS 256 #endif - + #ifdef CONFIG_I8259 ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/board-pmp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/board-pmp.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/board-pmp.h @@ -0,0 +1,83 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/board-pmp.h @@ -199,8 +199,8 @@ +}) + +#endif /* __ASM_JZ4730_PMP_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/clock.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/clock.h @@ -0,0 +1,184 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/clock.h @@ -386,8 +386,8 @@ +} + +#endif /* __ASM_JZ4730_CLOCK_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/dma.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/dma.h @@ -0,0 +1,272 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/dma.h @@ -661,8 +661,8 @@ +} + +#endif /* __ASM_JZ4730_DMA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/jz4730.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/jz4730.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/jz4730.h @@ -0,0 +1,40 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/jz4730.h @@ -704,8 +704,8 @@ +#include + +#endif /* __ASM_JZ4730_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/misc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/misc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/misc.h @@ -0,0 +1,28 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/misc.h @@ -735,8 +735,8 @@ +extern int i2c_write(unsigned char, unsigned char *, unsigned char, int); + +#endif /* __ASM_JZ4730_MISC_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/ops.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/ops.h @@ -0,0 +1,2541 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/ops.h @@ -3279,8 +3279,8 @@ +#define __ssi_transmit_data(v) ( REG_SSI_DR = (v) ) + +#endif /* __ASM_JZ4730_OPS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/regs.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/regs.h @@ -0,0 +1,2550 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/regs.h @@ -5832,8 +5832,8 @@ +#define SSI_ITR_IVLTM_MASK (0x7fff << SSI_ITR_IVLTM_BIT) + +#endif /* __ASM_JZ4730_REGS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/serial.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/serial.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/serial.h @@ -0,0 +1,33 @@ +/* + * linux/arch/mips/include/asm/mach-jz4730/serial.h @@ -5868,8 +5868,8 @@ + .iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM }, + +#endif /* __ASM_JZ4730_SERIAL_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4730/war.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4730/war.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4730/war.h @@ -0,0 +1,25 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public @@ -5896,8 +5896,8 @@ +#define MIPS34K_MISSED_ITLB_WAR 0 + +#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/board-dipper.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/board-dipper.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/board-dipper.h @@ -0,0 +1,69 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/board-dipper.h @@ -5968,8 +5968,8 @@ +}) + +#endif /* __ASM_JZ4740_DIPPER_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/board-leo.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/board-leo.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/board-leo.h @@ -0,0 +1,56 @@ +#ifndef __ASM_JZ4740_LEO_H__ +#define __ASM_JZ4740_LEO_H__ @@ -6027,8 +6027,8 @@ +}) + +#endif /* __ASM_JZ4740_BOARD_LEO_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/board-lyra.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/board-lyra.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/board-lyra.h @@ -0,0 +1,70 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/board-lyra.h @@ -6100,8 +6100,8 @@ +}) + +#endif /* __ASM_JZ4740_LYRA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/board-pavo.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/board-pavo.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/board-pavo.h @@ -0,0 +1,70 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/board-pavo.h @@ -6173,8 +6173,8 @@ +}) + +#endif /* __ASM_JZ4740_PAVO_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/board-virgo.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/board-virgo.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/board-virgo.h @@ -0,0 +1,67 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/board-virgo.h @@ -6243,8 +6243,8 @@ +}) + +#endif /* __ASM_JZ4720_VIRGO_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/clock.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/clock.h @@ -0,0 +1,173 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/clock.h @@ -6419,8 +6419,8 @@ +} + +#endif /* __ASM_JZ4740_CLOCK_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/dma.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/dma.h @@ -0,0 +1,265 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/dma.h @@ -6687,8 +6687,8 @@ +} + +#endif /* __ASM_JZ4740_DMA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/jz4740.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/jz4740.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/jz4740.h @@ -0,0 +1,56 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/jz4740.h @@ -6746,8 +6746,8 @@ +#include + +#endif /* __ASM_JZ4740_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/misc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/misc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/misc.h @@ -0,0 +1,43 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/misc.h @@ -6792,8 +6792,8 @@ + unsigned char address, int count); + +#endif /* __ASM_JZ4740_MISC_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/ops.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/ops.h @@ -0,0 +1,2224 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/ops.h @@ -9019,8 +9019,8 @@ + + +#endif /* __JZ4740_OPS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/regs.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/regs.h @@ -0,0 +1,2392 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/regs.h @@ -11414,8 +11414,8 @@ +#define USB_CNTL_BURST_16 (3 << 9) + +#endif /* __JZ4740_REGS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/serial.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/serial.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/serial.h @@ -0,0 +1,30 @@ +/* + * linux/arch/mips/include/asm/mach-jz4740/serial.h @@ -11447,8 +11447,8 @@ + .iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM }, + +#endif /* __ASM_BORAD_SERIAL_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4740/war.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4740/war.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4740/war.h @@ -0,0 +1,25 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public @@ -11475,8 +11475,8 @@ +#define MIPS34K_MISSED_ITLB_WAR 0 + +#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/board-apus.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/board-apus.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/board-apus.h @@ -0,0 +1,119 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/board-apus.h @@ -11597,8 +11597,8 @@ +}) + +#endif /* __ASM_JZ4750_APUS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/board-fuwa.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/board-fuwa.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/board-fuwa.h @@ -0,0 +1,93 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/board-fuwa.h @@ -11693,8 +11693,8 @@ +}) + +#endif /* __ASM_JZ4750_FUWA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/clock.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/clock.h @@ -0,0 +1,204 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/clock.h @@ -11900,8 +11900,8 @@ +} + +#endif /* __ASM_JZ4750_CLOCK_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/dma.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/dma.h @@ -0,0 +1,307 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/dma.h @@ -12210,8 +12210,8 @@ +} + +#endif /* __ASM_JZ4750_DMA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/jz4750.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/jz4750.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/jz4750.h @@ -0,0 +1,44 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/jz4750.h @@ -12257,8 +12257,8 @@ +#include + +#endif /* __ASM_JZ4750_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/misc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/misc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/misc.h @@ -0,0 +1,44 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/misc.h @@ -12304,8 +12304,8 @@ + unsigned char address, int count); + +#endif /* __ASM_JZ4750_MISC_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/ops.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/ops.h @@ -0,0 +1,3569 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/ops.h @@ -15876,8 +15876,8 @@ + + +#endif /* __JZ4750_OPS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/regs.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/regs.h @@ -0,0 +1,3411 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/regs.h @@ -19290,8 +19290,8 @@ + + +#endif /* __JZ4750_REGS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/serial.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/serial.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/serial.h @@ -0,0 +1,30 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750/serial.h @@ -19323,8 +19323,8 @@ + .iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM }, + +#endif /* __ASM_BORAD_SERIAL_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750/war.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750/war.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750/war.h @@ -0,0 +1,25 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public @@ -19351,8 +19351,8 @@ +#define MIPS34K_MISSED_ITLB_WAR 0 + +#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/board-fuwa1.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/board-fuwa1.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/board-fuwa1.h @@ -0,0 +1,124 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/board-fuwa1.h @@ -19478,8 +19478,8 @@ +}) + +#endif /* __ASM_JZ4750d_FUWA1_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/clock.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/clock.h @@ -0,0 +1,230 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/clock.h @@ -19711,8 +19711,8 @@ +} + +#endif /* __ASM_JZ4750D_CLOCK_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/dma.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/dma.h @@ -0,0 +1,307 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/dma.h @@ -20021,8 +20021,8 @@ +} + +#endif /* __ASM_JZ4750D_DMA_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/jz4750d.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/jz4750d.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/jz4750d.h @@ -0,0 +1,40 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/jz4750d.h @@ -20064,8 +20064,8 @@ +#include + +#endif /* __ASM_JZ4750_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/misc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/misc.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/misc.h @@ -0,0 +1,44 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/misc.h @@ -20111,8 +20111,8 @@ + unsigned char address, int count); + +#endif /* __ASM_JZ4750D_MISC_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/ops.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/ops.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/ops.h @@ -0,0 +1,3450 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/ops.h @@ -23564,8 +23564,8 @@ + + +#endif /* __JZ4750D_OPS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/regs.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/regs.h @@ -0,0 +1,3398 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/regs.h @@ -26965,8 +26965,8 @@ + + +#endif /* __JZ4750D_REGS_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/serial.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/serial.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/serial.h @@ -0,0 +1,30 @@ +/* + * linux/arch/mips/include/asm/mach-jz4750d/serial.h @@ -26998,8 +26998,8 @@ + .iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM }, + +#endif /* __ASM_BORAD_SERIAL_H__ */ ---- linux-2.6.24.7.old/arch/mips/include/asm/mach-jz4750d/war.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/mach-jz4750d/war.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/mach-jz4750d/war.h @@ -0,0 +1,25 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public @@ -27026,23 +27026,23 @@ +#define MIPS34K_MISSED_ITLB_WAR 0 + +#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */ ---- linux-2.6.24.7.old/arch/mips/include/asm/ptrace.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/include/asm/ptrace.h 2009-04-12 18:13:57.000000000 +0200 -@@ -79,7 +79,7 @@ +--- a/arch/mips/include/asm/ptrace.h ++++ b/arch/mips/include/asm/ptrace.h +@@ -131,7 +131,7 @@ extern int ptrace_set_watch_regs(struct /* * Does the process account for user or for system time? */ -#define user_mode(regs) (((regs)->cp0_status & KU_MASK) == KU_USER) +#define user_mode(regs) ((((regs)->cp0_status & KU_MASK) == KU_USER) || (((regs)->cp0_status & 0x08000000) == 0x08000000)) - + #define instruction_pointer(regs) ((regs)->cp0_epc) #define profile_pc(regs) instruction_pointer(regs) ---- linux-2.6.24.7.old/arch/mips/include/asm/r4kcache.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/arch/mips/include/asm/r4kcache.h 2009-04-12 18:13:57.000000000 +0200 +--- a/arch/mips/include/asm/r4kcache.h ++++ b/arch/mips/include/asm/r4kcache.h @@ -17,6 +17,58 @@ #include #include - + +#ifdef CONFIG_JZRISC + +#define K0_TO_K1() \ @@ -27098,63 +27098,63 @@ /* * This macro return a properly sign-extended address suitable as base address * for indexed cache operations. Two issues here: -@@ -144,6 +196,7 @@ +@@ -144,6 +196,7 @@ static inline void flush_icache_line_ind { __iflush_prologue cache_op(Index_Invalidate_I, addr); + INVALIDATE_BTB(); __iflush_epilogue } - -@@ -151,6 +204,7 @@ + +@@ -151,6 +204,7 @@ static inline void flush_dcache_line_ind { __dflush_prologue cache_op(Index_Writeback_Inv_D, addr); + SYNC_WB(); __dflush_epilogue } - -@@ -163,6 +217,7 @@ + +@@ -163,6 +217,7 @@ static inline void flush_icache_line(uns { __iflush_prologue cache_op(Hit_Invalidate_I, addr); + INVALIDATE_BTB(); __iflush_epilogue } - -@@ -170,6 +225,7 @@ + +@@ -170,6 +225,7 @@ static inline void flush_dcache_line(uns { __dflush_prologue cache_op(Hit_Writeback_Inv_D, addr); + SYNC_WB(); __dflush_epilogue } - -@@ -177,6 +233,7 @@ + +@@ -177,6 +233,7 @@ static inline void invalidate_dcache_lin { __dflush_prologue cache_op(Hit_Invalidate_D, addr); + SYNC_WB(); __dflush_epilogue } - -@@ -209,6 +266,7 @@ + +@@ -209,6 +266,7 @@ static inline void flush_scache_line(uns static inline void protected_flush_icache_line(unsigned long addr) { protected_cache_op(Hit_Invalidate_I, addr); + INVALIDATE_BTB(); } - + /* -@@ -220,6 +278,7 @@ +@@ -220,6 +278,7 @@ static inline void protected_flush_icach static inline void protected_writeback_dcache_line(unsigned long addr) { protected_cache_op(Hit_Writeback_Inv_D, addr); + SYNC_WB(); } - + static inline void protected_writeback_scache_line(unsigned long addr) -@@ -396,8 +396,10 @@ +@@ -396,8 +455,10 @@ static inline void blast_##pfx##cache##l __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16) __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16) __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16) @@ -27165,10 +27165,10 @@ __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32) __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64) __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64) -@@ -410,6 +410,114 @@ +@@ -410,6 +471,114 @@ __BUILD_BLAST_CACHE(inv_s, scache, Index __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64) __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128) - + +#ifdef CONFIG_JZRISC + +static inline void blast_dcache32(void) @@ -27280,10 +27280,10 @@ /* build blast_xxx_range, protected_blast_xxx_range */ #define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot) \ static inline void prot##blast_##pfx##cache##_range(unsigned long start, \ -@@ -424,13 +593,73 @@ +@@ -431,13 +600,73 @@ static inline void prot##blast_##pfx##ca __##pfx##flush_epilogue \ } - + +#ifndef CONFIG_JZRISC __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_) +#endif @@ -27296,7 +27296,7 @@ /* blast_inv_dcache_range */ __BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, ) __BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, ) - + +#ifdef CONFIG_JZRISC + +static inline void protected_blast_dcache_range(unsigned long start, @@ -27354,8 +27354,8 @@ +#endif /* CONFIG_JZRISC */ + #endif /* _ASM_R4KCACHE_H */ ---- linux-2.6.24.7.old/arch/mips/include/asm/sizes.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/arch/mips/include/asm/sizes.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/arch/mips/include/asm/sizes.h @@ -0,0 +1,56 @@ +/* + * This program is free software; you can redistribute it and/or modify @@ -27413,43 +27413,43 @@ +#endif + +/* END */ ---- linux-2.6.24.7.old/include/linux/i2c-dev.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/include/linux/i2c-dev.h 2009-04-12 18:13:57.000000000 +0200 +--- a/include/linux/i2c-dev.h ++++ b/include/linux/i2c-dev.h @@ -49,7 +49,8 @@ - + #define I2C_PEC 0x0708 /* != 0 to use PEC with SMBus */ #define I2C_SMBUS 0x0720 /* SMBus transfer */ - +#define I2C_SET_SUB_ADDRESS 0x0730 /* SMBus transfer */ +#define I2C_SET_CLOCK 0x0731 /* SMBus transfer */ - + /* This is the structure as used in the I2C_SMBUS ioctl call */ struct i2c_smbus_ioctl_data { -@@ -71,4 +72,5 @@ +@@ -71,4 +72,5 @@ struct i2c_rdwr_ioctl_data { #define I2C_MAJOR 89 /* Device major number */ #endif - + +extern void i2c_jz_setclk(unsigned int i2cclk); #endif /* _LINUX_I2C_DEV_H */ ---- linux-2.6.24.7.old/include/linux/mmc/host.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/include/linux/mmc/host.h 2009-04-12 18:13:57.000000000 +0200 -@@ -41,6 +41,7 @@ - +--- a/include/linux/mmc/host.h ++++ b/include/linux/mmc/host.h +@@ -41,6 +41,7 @@ struct mmc_ios { + #define MMC_BUS_WIDTH_1 0 #define MMC_BUS_WIDTH_4 2 +#define MMC_BUS_WIDTH_8 4 - + unsigned char timing; /* timing specification used */ - ---- linux-2.6.24.7.old/include/linux/mtd/nand.h 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/include/linux/mtd/nand.h 2009-04-12 18:13:57.000000000 +0200 -@@ -39,14 +39,14 @@ + +--- a/include/linux/mtd/nand.h ++++ b/include/linux/mtd/nand.h +@@ -37,14 +37,14 @@ extern void nand_release (struct mtd_inf extern void nand_wait_ready(struct mtd_info *mtd); - + /* The maximum number of NAND chips in an array */ -#define NAND_MAX_CHIPS 8 +#define NAND_MAX_CHIPS 4 - + /* This constant declares the max. oobsize / page, which * is supported now. If you add a chip with bigger oobsize/page * adjust this accordingly. @@ -27458,10 +27458,10 @@ -#define NAND_MAX_PAGESIZE 2048 +#define NAND_MAX_OOBSIZE 256 +#define NAND_MAX_PAGESIZE 8192 - + /* * Constants for hardware specific CLE/ALE/NCE function -@@ -55,6 +55,10 @@ +@@ -53,6 +53,10 @@ extern void nand_wait_ready(struct mtd_i * bits in one go. */ /* Select the chip by setting nCE to low */ @@ -27472,7 +27472,7 @@ #define NAND_NCE 0x01 /* Select the command latch by setting CLE to high */ #define NAND_CLE 0x02 -@@ -372,8 +376,8 @@ +@@ -378,8 +382,8 @@ struct nand_chip { void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len); int (*verify_buf)(struct mtd_info *mtd, const uint8_t *buf, int len); void (*select_chip)(struct mtd_info *mtd, int chip); @@ -27483,7 +27483,7 @@ void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl); int (*dev_ready)(struct mtd_info *mtd); -@@ -393,12 +397,14 @@ +@@ -399,12 +403,14 @@ struct nand_chip { int bbt_erase_shift; int chip_shift; int numchips; @@ -27496,10 +27496,10 @@ int badblockpos; + int realplanenum; /* number of planes the NAND has */ + int planenum; /* number of planes operating synchronously */ - + nand_state_t state; - -@@ -450,7 +456,7 @@ + +@@ -456,7 +462,7 @@ struct nand_flash_dev { char *name; int id; unsigned long pagesize; @@ -27508,9 +27508,9 @@ unsigned long erasesize; unsigned long options; }; -@@ -538,13 +544,13 @@ +@@ -544,13 +550,13 @@ struct nand_bbt_descr { #define NAND_BBT_SCAN_MAXBLOCKS 4 - + extern int nand_scan_bbt(struct mtd_info *mtd, struct nand_bbt_descr *bd); -extern int nand_update_bbt(struct mtd_info *mtd, loff_t offs); +extern int nand_update_bbt(struct mtd_info *mtd, loff_mtd_t offs); @@ -27523,12 +27523,12 @@ - size_t * retlen, uint8_t * buf); +extern int nand_do_read(struct mtd_info *mtd, loff_mtd_t from, size_mtd_t len, + size_mtd_t * retlen, uint8_t * buf); - + /* * Constants for oob configuration ---- linux-2.6.24.7.old/include/linux/vt.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/include/linux/vt.h 2009-04-12 18:13:57.000000000 +0200 -@@ -18,10 +18,16 @@ +--- a/include/linux/vt.h ++++ b/include/linux/vt.h +@@ -18,10 +18,16 @@ extern int unregister_vt_notifier(struct * resizing). */ #define MIN_NR_CONSOLES 1 /* must be at least 1 */ @@ -27546,15 +27546,15 @@ + /* Note: the ioctl VT_GETSTATE does not work for + consoles 16 and higher (since it returns a short) */ +#endif - + /* 0x56 is 'V', to avoid collision with termios and kd */ - ---- linux-2.6.24.7.old/include/mtd/mtd-abi.h 2009-04-12 18:05:07.000000000 +0200 -+++ linux-2.6.24.7/include/mtd/mtd-abi.h 2009-04-12 18:23:10.000000000 +0200 -@@ -7,9 +7,18 @@ + +--- a/include/mtd/mtd-abi.h ++++ b/include/mtd/mtd-abi.h +@@ -5,9 +5,18 @@ #ifndef __MTD_ABI_H__ #define __MTD_ABI_H__ - + + +#ifndef __KERNEL__ /* Urgh. The whole point of splitting this out into + separate files was to avoid #ifdef __KERNEL__ */ @@ -27570,12 +27570,12 @@ + uint64_t start; + uint64_t length; }; - + struct mtd_oob_buf { -@@ -18,6 +27,14 @@ +@@ -16,6 +25,14 @@ struct mtd_oob_buf { unsigned char __user *ptr; }; - + +struct mtd_page_buf { + uint32_t start; //page start address + uint32_t ooblength; @@ -27587,7 +27587,7 @@ #define MTD_ABSENT 0 #define MTD_RAM 1 #define MTD_ROM 2 -@@ -52,7 +69,7 @@ +@@ -50,7 +67,7 @@ struct mtd_oob_buf { struct mtd_info_user { uint8_t type; uint32_t flags; @@ -27596,16 +27596,16 @@ uint32_t erasesize; uint32_t writesize; uint32_t oobsize; // Amount of OOB data per block (e.g. 16) -@@ -63,7 +80,7 @@ +@@ -61,7 +78,7 @@ struct mtd_info_user { }; - + struct region_info_user { - uint32_t offset; /* At which this region starts, + uint64_t offset; /* At which this region starts, * from the beginning of the MTD */ uint32_t erasesize; /* For this region */ uint32_t numblocks; /* Number of blocks in this region */ -@@ -86,8 +103,8 @@ +@@ -84,8 +101,8 @@ struct otp_info { #define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user) #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo) #define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo) @@ -27616,24 +27616,24 @@ #define OTPSELECT _IOR('M', 13, int) #define OTPGETREGIONCOUNT _IOW('M', 14, int) #define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) -@@ -95,6 +112,7 @@ +@@ -93,6 +110,7 @@ struct otp_info { #define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout) #define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats) #define MTDFILEMODE _IO('M', 19) +#define MEMWRITEPAGE _IOWR('M', 20, struct mtd_page_buf) #define MTDREFRESH _IO('M', 23) - + /* -@@ -105,7 +123,7 @@ +@@ -103,7 +121,7 @@ struct nand_oobinfo { uint32_t useecc; uint32_t eccbytes; uint32_t oobfree[8][2]; - uint32_t eccpos[32]; + uint32_t eccpos[104]; }; - + struct nand_oobfree { -@@ -120,7 +138,7 @@ +@@ -118,7 +136,7 @@ struct nand_oobfree { */ struct nand_ecclayout { uint32_t eccbytes; @@ -27642,9 +27642,9 @@ uint32_t oobavail; struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; }; ---- linux-2.6.24.7.old/include/sound/pcm.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/include/sound/pcm.h 2009-04-12 18:13:57.000000000 +0200 -@@ -107,23 +107,23 @@ +--- a/include/sound/pcm.h ++++ b/include/sound/pcm.h +@@ -112,23 +112,23 @@ struct snd_pcm_ops { #define SNDRV_PCM_RATE_5512 (1<<0) /* 5512Hz */ #define SNDRV_PCM_RATE_8000 (1<<1) /* 8000Hz */ #define SNDRV_PCM_RATE_11025 (1<<2) /* 11025Hz */ @@ -27670,10 +27670,10 @@ +#define SNDRV_PCM_RATE_96000 (1<<12) /* 96000Hz */ +#define SNDRV_PCM_RATE_176400 (1<<13) /* 176400Hz */ +#define SNDRV_PCM_RATE_192000 (1<<14) /* 192000Hz */ - + #define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */ #define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */ - + -#define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\ - SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|\ - SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100) diff --git a/target/linux/xburst/patches-2.6.28/450-init.patch b/target/linux/xburst/patches-2.6.28/450-init.patch index 670e1e2be..6f3d9a5c6 100644 --- a/target/linux/xburst/patches-2.6.28/450-init.patch +++ b/target/linux/xburst/patches-2.6.28/450-init.patch @@ -1,10 +1,10 @@ ---- linux-2.6.24.7.old/init/do_mounts.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/init/do_mounts.c 2009-04-12 18:13:57.000000000 +0200 -@@ -378,6 +378,7 @@ +--- a/init/do_mounts.c ++++ b/init/do_mounts.c +@@ -378,6 +378,7 @@ void __init prepare_namespace(void) if (saved_root_name[0]) { - root_device_name = saved_root_name; - if (!strncmp(root_device_name, "mtd", 3) || + root_device_name = saved_root_name; + if (!strncmp(root_device_name, "mtd", 3) || + !strncmp(root_device_name, "mmc", 3) || - !strncmp(root_device_name, "ubi", 3)) { + !strncmp(root_device_name, "ubi", 3)) { mount_block_root(root_device_name, root_mountflags); goto out; diff --git a/target/linux/xburst/patches-2.6.28/500-sound.patch b/target/linux/xburst/patches-2.6.28/500-sound.patch index 5dc92aafd..c85570aa3 100644 --- a/target/linux/xburst/patches-2.6.28/500-sound.patch +++ b/target/linux/xburst/patches-2.6.28/500-sound.patch @@ -1,36 +1,36 @@ ---- linux-2.6.24.7.old/sound/core/pcm_native.c 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/core/pcm_native.c 2009-04-12 18:13:57.000000000 +0200 -@@ -1780,12 +1780,13 @@ +--- a/sound/core/pcm_native.c ++++ b/sound/core/pcm_native.c +@@ -1742,12 +1742,13 @@ static int snd_pcm_hw_rule_sample_bits(s return snd_interval_refine(hw_param_interval(params, rule->var), &t); } - + -#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_192000 != 1 << 12 +#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_192000 != 1 << 14 #error "Change this table" #endif - + -static unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100, - 48000, 64000, 88200, 96000, 176400, 192000 }; +static unsigned int rates[] = { 5512, 8000, 11025, 12000, 16000, 22050, 24000, + 32000, 44100, 48000, 64000, 88200, 96000, + 176400, 192000 }; - + const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = { .count = ARRAY_SIZE(rates), -@@ -1758,6 +1758,7 @@ - struct snd_pcm_hw_rule *rule) +@@ -1758,6 +1759,7 @@ static int snd_pcm_hw_rule_rate(struct s + struct snd_pcm_hw_rule *rule) { - struct snd_pcm_hardware *hw = rule->private; + struct snd_pcm_hardware *hw = rule->private; + hw->rates = 0x3fe;//12KHz and 24KHz bits are all zero,you need set 1 - return snd_interval_list(hw_param_interval(params, rule->var), + return snd_interval_list(hw_param_interval(params, rule->var), snd_pcm_known_rates.count, snd_pcm_known_rates.list, hw->rates); ---- linux-2.6.24.7.old/sound/oss/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/oss/Kconfig 2009-04-12 18:13:57.000000000 +0200 +--- a/sound/oss/Kconfig ++++ b/sound/oss/Kconfig @@ -5,6 +5,91 @@ # # Prompt user for primary drivers. - + +config OSS_OBSOLETE + bool "Obsolete OSS drivers" + depends on SOUND_PRIME @@ -118,11 +118,11 @@ + config SOUND_BCM_CS4297A tristate "Crystal Sound CS4297a (for Swarm)" - depends on SOUND_PRIME && SIBYTE_SWARM -@@ -15,6 +100,13 @@ + depends on SIBYTE_SWARM +@@ -15,6 +100,13 @@ config SOUND_BCM_CS4297A note that CONFIG_KGDB should not be enabled at the same time, since it also attempts to use this UART port. - + +config SOUND_ICH + tristate "Intel ICH (i8xx) audio support" + depends on SOUND_PRIME && PCI && OSS_OBSOLETE @@ -132,11 +132,11 @@ + config SOUND_VWSND tristate "SGI Visual Workstation Sound" - depends on SOUND_PRIME && X86_VISWS -@@ -31,6 +123,14 @@ - Say Y or M if you have an SGI Indy or Indigo2 system and want to be able to - use its on-board A2 audio system. - + depends on X86_VISWS +@@ -24,6 +116,14 @@ config SOUND_VWSND + for more info on this driver's + capabilities. + +config SOUND_VRC5477 + tristate "NEC Vrc5477 AC97 sound" + depends on SOUND_PRIME && DDB5477 @@ -147,11 +147,11 @@ + config SOUND_AU1550_AC97 tristate "Au1550/Au1200 AC97 Sound" - select SND_AC97_CODEC -@@ -253,9 +253,29 @@ + depends on SOC_AU1550 || SOC_AU1200 +@@ -253,9 +353,29 @@ config MSND_FIFOSIZE and Pinnacle). Larger values reduce the chance of data overruns at the expense of overall latency. If unsure, use the default. - + +config SOUND_VIA82CXXX + tristate "VIA 82C686 Audio Codec" + depends on SOUND_PRIME && PCI && OSS_OBSOLETE @@ -179,10 +179,10 @@ help OSS is the Open Sound System suite of sound card drivers. They make sound programming easier since they provide a common API. Say Y or -@@ -336,6 +456,20 @@ - +@@ -287,6 +407,20 @@ config SOUND_DMAP + Say Y unless you have 16MB or more RAM or a PCI sound card. - + +config SOUND_CS4232 + tristate "Crystal CS4232 based (PnP) cards" + depends on SOUND_OSS && OSS_OBSOLETE @@ -199,11 +199,11 @@ + config SOUND_SSCAPE tristate "Ensoniq SoundScape support" - depends on SOUND_OSS -@@ -642,6 +775,13 @@ + help +@@ -553,6 +687,13 @@ config SOUND_WAVEARTIST Say Y here to include support for the Rockwell WaveArtist sound system. This driver is mainly for the NetWinder. - + +config SOUND_TVMIXER + tristate "TV card (bt848) mixer support" + depends on SOUND_PRIME && I2C && VIDEO_V4L1 && OSS_OBSOLETE @@ -214,12 +214,12 @@ config SOUND_KAHLUA tristate "XpressAudio Sound Blaster emulation" depends on SOUND_SB ---- linux-2.6.24.7.old/sound/oss/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/oss/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -10,6 +10,12 @@ - +--- a/sound/oss/Makefile ++++ b/sound/oss/Makefile +@@ -9,6 +9,12 @@ obj-$(CONFIG_SOUND_OSS) += sound.o + # Please leave it as is, cause the link order is significant ! - + +obj-$(CONFIG_SOUND_JZ_AC97) += jz_ac97.o ac97_codec.o +obj-$(CONFIG_I2S_AK4642EN) += ak4642en.o +obj-$(CONFIG_I2S_ICODEC) += jzcodec.o jz_i2s.o @@ -227,10 +227,10 @@ +obj-$(CONFIG_SOUND_JZ_PCM) += jz_pcm_tlv320aic1106_dma.o + obj-$(CONFIG_SOUND_SH_DAC_AUDIO) += sh_dac_audio.o - obj-$(CONFIG_SOUND_HAL2) += hal2.o obj-$(CONFIG_SOUND_AEDSP16) += aedsp16.o ---- linux-2.6.24.7.old/sound/oss/ak4642en.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/ak4642en.c 2009-04-12 18:13:57.000000000 +0200 + obj-$(CONFIG_SOUND_PSS) += pss.o ad1848.o mpu401.o +--- /dev/null ++++ b/sound/oss/ak4642en.c @@ -0,0 +1,712 @@ +/* + * linux/sound/oss/ak4642en.c @@ -944,8 +944,8 @@ + +module_init(init_ak4642en); +module_exit(cleanup_ak4642en); ---- linux-2.6.24.7.old/sound/oss/jz_ac97.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_ac97.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_ac97.c @@ -0,0 +1,2252 @@ +/* + * linux/drivers/sound/jz_ac97.c @@ -3199,8 +3199,8 @@ + +} + ---- linux-2.6.24.7.old/sound/oss/jz_i2s.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_i2s.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_i2s.c @@ -0,0 +1,2894 @@ +/* + * linux/drivers/sound/Jz_i2s.c @@ -6096,8 +6096,8 @@ + } +} +#endif ---- linux-2.6.24.7.old/sound/oss/jz_i2s_4750.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_i2s_4750.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_i2s_4750.c @@ -0,0 +1,3010 @@ +/* + * linux/drivers/sound/Jz_i2s.c @@ -9109,8 +9109,8 @@ + } +} +#endif ---- linux-2.6.24.7.old/sound/oss/jz_i2s_dlv_dma_test.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_i2s_dlv_dma_test.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_i2s_dlv_dma_test.c @@ -0,0 +1,2808 @@ +/* + * linux/drivers/sound/jz_i2s_dlv.c @@ -11920,8 +11920,8 @@ + } + return ret; +} ---- linux-2.6.24.7.old/sound/oss/jz_i2s_for_4750.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_i2s_for_4750.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_i2s_for_4750.c @@ -0,0 +1,2981 @@ +/* + * linux/drivers/sound/Jz_i2s.c @@ -14904,8 +14904,8 @@ + } +} +#endif ---- linux-2.6.24.7.old/sound/oss/jz_pcm_tlv320aic1106_dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jz_pcm_tlv320aic1106_dma.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jz_pcm_tlv320aic1106_dma.c @@ -0,0 +1,1839 @@ +/* + * linux/drivers/sound/jz_pcm_tlv320aic1106.c @@ -16746,8 +16746,8 @@ + printk("REG_PCM_INTS : 0x%08x\n",REG_PCM_INTS); + printk("REG_PCM_DIV : 0x%08x\n",REG_PCM_DIV); +} ---- linux-2.6.24.7.old/sound/oss/jzcodec.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jzcodec.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jzcodec.c @@ -0,0 +1,443 @@ +/* + * linux/drivers/sound/jzcodec.c @@ -17192,8 +17192,8 @@ + +module_init(init_jzcodec); +module_exit(cleanup_jzcodec); ---- linux-2.6.24.7.old/sound/oss/jzdlv.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jzdlv.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jzdlv.c @@ -0,0 +1,644 @@ +/* + * linux/drivers/sound/jzcodec.c @@ -17839,8 +17839,8 @@ + +module_init(init_dlv); +module_exit(cleanup_dlv); ---- linux-2.6.24.7.old/sound/oss/jzdlv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/oss/jzdlv.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/oss/jzdlv.h @@ -0,0 +1,21 @@ +/* header file for dlv */ +void write_codec_file(int addr, int val); @@ -17863,8 +17863,8 @@ +void unset_record_mic_input_audio_with_audio_data_replay(void); +void set_record_line_input_audio_with_audio_data_replay(void); +void unset_record_line_input_audio_with_audio_data_replay(void); ---- linux-2.6.24.7.old/sound/oss/os.h 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/oss/os.h 2009-04-12 18:13:57.000000000 +0200 +--- a/sound/oss/os.h ++++ b/sound/oss/os.h @@ -9,7 +9,6 @@ #ifdef __KERNEL__ #include @@ -17873,53 +17873,53 @@ #include #include #include ---- linux-2.6.24.7.old/sound/soc/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/soc/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -28,6 +28,7 @@ +--- a/sound/soc/Kconfig ++++ b/sound/soc/Kconfig +@@ -33,6 +33,7 @@ source "sound/soc/fsl/Kconfig" source "sound/soc/davinci/Kconfig" source "sound/soc/omap/Kconfig" source "sound/soc/blackfin/Kconfig" +source "sound/soc/jz4740/Kconfig" - + # Supported codecs source "sound/soc/codecs/Kconfig" ---- linux-2.6.24.7.old/sound/soc/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/soc/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -2,4 +2,4 @@ - +--- a/sound/soc/Makefile ++++ b/sound/soc/Makefile +@@ -2,4 +2,4 @@ snd-soc-core-objs := soc-core.o soc-dapm + obj-$(CONFIG_SND_SOC) += snd-soc-core.o obj-$(CONFIG_SND_SOC) += codecs/ at32/ at91/ pxa/ s3c24xx/ sh/ fsl/ davinci/ -obj-$(CONFIG_SND_SOC) += omap/ au1x/ blackfin/ +obj-$(CONFIG_SND_SOC) += omap/ au1x/ blackfin/ jz4740/ ---- linux-2.6.24.7.old/sound/soc/codecs/Kconfig 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/soc/codecs/Kconfig 2009-04-12 18:13:57.000000000 +0200 -@@ -110,3 +110,9 @@ - +--- a/sound/soc/codecs/Kconfig ++++ b/sound/soc/codecs/Kconfig +@@ -110,3 +110,9 @@ config SND_SOC_WM9712 + config SND_SOC_WM9713 - tristate + tristate + +config SND_SOC_ICODEC + tristate "Jz4740 internal codec" + depends on SND_SOC && SND_JZ4740_SOC_PAVO && SND_JZ4740_SOC_I2S + help + Say Y if you want to use internal codec on Ingenic Jz4740 PAVO board. ---- linux-2.6.24.7.old/sound/soc/codecs/Makefile 2008-05-07 01:22:34.000000000 +0200 -+++ linux-2.6.24.7/sound/soc/codecs/Makefile 2009-04-12 18:13:57.000000000 +0200 -@@ -4,6 +4,7 @@ +--- a/sound/soc/codecs/Makefile ++++ b/sound/soc/codecs/Makefile +@@ -19,6 +19,7 @@ snd-soc-wm8971-objs := wm8971.o snd-soc-wm8990-objs := wm8990.o snd-soc-wm9712-objs := wm9712.o snd-soc-wm9713-objs := wm9713.o +snd-soc-jzcodec-objs := jzcodec.o - + obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o obj-$(CONFIG_SND_SOC_AD1980) += snd-soc-ad1980.o -@@ -11,3 +12,4 @@ +@@ -41,3 +42,4 @@ obj-$(CONFIG_SND_SOC_WM8971) += snd-soc- obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o +obj-$(CONFIG_SND_SOC_ICODEC) += snd-soc-jzcodec.o ---- linux-2.6.24.7.old/sound/soc/codecs/jzcodec.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/codecs/jzcodec.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/codecs/jzcodec.c @@ -0,0 +1,725 @@ +/* + * This program is free software; you can redistribute it and/or modify @@ -18646,8 +18646,8 @@ +MODULE_DESCRIPTION("ASoC JZCODEC driver"); +MODULE_AUTHOR("Richard"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/sound/soc/codecs/jzcodec.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/codecs/jzcodec.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/codecs/jzcodec.h @@ -0,0 +1,22 @@ +/* + * This program is free software; you can redistribute it and/or modify @@ -18671,8 +18671,8 @@ +extern struct snd_soc_codec_device soc_codec_dev_jzcodec; + +#endif ---- linux-2.6.24.7.old/sound/soc/jz4740/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/Kconfig 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/Kconfig @@ -0,0 +1,34 @@ +config SND_JZ4740_SOC + tristate "SoC Audio for Ingenic jz4740 chip" @@ -18708,8 +18708,8 @@ + tristate "SoC Audio (I2S protocol) for Ingenic jz4740 chip" + help + Say Y if you want to use I2S protocol and I2S codec on Ingenic Jz4740 PAVO board. ---- linux-2.6.24.7.old/sound/soc/jz4740/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/Makefile 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/Makefile @@ -0,0 +1,15 @@ +# +# Jz4740 Platform Support @@ -18726,8 +18726,8 @@ +snd-soc-pavo-objs := pavo.o + +obj-$(CONFIG_SND_JZ4740_SOC_PAVO) += snd-soc-pavo.o ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-ac97.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-ac97.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-ac97.c @@ -0,0 +1,261 @@ +/* + * linux/sound/jz4740-ac97.c -- AC97 support for the Ingenic jz4740 chip. @@ -18990,8 +18990,8 @@ +MODULE_AUTHOR("Richard"); +MODULE_DESCRIPTION("AC97 driver for the Ingenic jz4740 chip"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-ac97.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-ac97.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-ac97.h @@ -0,0 +1,21 @@ +/* + * linux/sound/soc/jz4740/jz4740-ac97.h @@ -19014,8 +19014,8 @@ +extern struct snd_ac97_bus_ops jz4740_ac97_ops; + +#endif ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-i2s.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-i2s.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-i2s.c @@ -0,0 +1,296 @@ +/* + * This program is free software; you can redistribute it and/or modify it @@ -19313,8 +19313,8 @@ +MODULE_AUTHOR("Richard, cjfeng@ingenic.cn, www.ingenic.cn"); +MODULE_DESCRIPTION("jz4740 I2S SoC Interface"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-i2s.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-i2s.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-i2s.h @@ -0,0 +1,18 @@ +/* + * This program is free software; you can redistribute it and/or modify @@ -19334,8 +19334,8 @@ +extern struct snd_soc_cpu_dai jz4740_i2s_dai; + +#endif ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-pcm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-pcm.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-pcm.c @@ -0,0 +1,689 @@ +/* + * @@ -20026,8 +20026,8 @@ +MODULE_AUTHOR("Richard"); +MODULE_DESCRIPTION("Ingenic Jz4740 PCM DMA module"); +MODULE_LICENSE("GPL"); ---- linux-2.6.24.7.old/sound/soc/jz4740/jz4740-pcm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/jz4740-pcm.h 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/jz4740-pcm.h @@ -0,0 +1,33 @@ +/* + * @@ -20062,8 +20062,8 @@ +extern struct snd_soc_platform jz4740_soc_platform; + +#endif ---- linux-2.6.24.7.old/sound/soc/jz4740/pavo.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24.7/sound/soc/jz4740/pavo.c 2009-04-12 18:13:57.000000000 +0200 +--- /dev/null ++++ b/sound/soc/jz4740/pavo.c @@ -0,0 +1,360 @@ +/* + * pavo.c -- SoC audio for PAVO