-Index: linux-2.6.24.7/arch/avr32/boards/atngw100/Kconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/boards/atngw100/Kconfig
++++ b/arch/avr32/boards/atngw100/Kconfig
@@ -0,0 +1,12 @@
+# NGW100 customization
+
+
+ Choose 'Y' here if you're having i2c-related problems and
+ want to rule out the i2c bus driver.
-Index: linux-2.6.24.7/arch/avr32/boards/atngw100/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atngw100/setup.c
-+++ linux-2.6.24.7/arch/avr32/boards/atngw100/setup.c
+--- a/arch/avr32/boards/atngw100/setup.c
++++ b/arch/avr32/boards/atngw100/setup.c
@@ -20,7 +20,7 @@
#include <asm/io.h>
#include <asm/setup.h>
#include <asm/arch/board.h>
#include <asm/arch/init.h>
#include <asm/arch/portmux.h>
-@@ -37,11 +37,16 @@ static struct eth_platform_data __initda
+@@ -37,11 +37,16 @@
static struct spi_board_info spi0_board_info[] __initdata = {
{
.modalias = "mtd_dataflash",
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
-@@ -124,6 +129,7 @@ static struct platform_device ngw_gpio_l
+@@ -124,6 +129,7 @@
}
};
static struct i2c_gpio_platform_data i2c_gpio_data = {
.sda_pin = GPIO_PIN_PA(6),
.scl_pin = GPIO_PIN_PA(7),
-@@ -139,6 +145,7 @@ static struct platform_device i2c_gpio_d
+@@ -139,6 +145,7 @@
.platform_data = &i2c_gpio_data,
},
};
static int __init atngw100_init(void)
{
-@@ -157,6 +164,7 @@ static int __init atngw100_init(void)
+@@ -157,6 +164,7 @@
set_hw_addr(at32_add_device_eth(1, ð_data[1]));
at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
at32_add_device_usba(0, NULL);
for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
-@@ -165,11 +173,15 @@ static int __init atngw100_init(void)
+@@ -165,11 +173,15 @@
}
platform_device_register(&ngw_gpio_leds);
return 0;
}
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1000.h
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atstk1000/atstk1000.h
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1000.h
+--- a/arch/avr32/boards/atstk1000/atstk1000.h
++++ b/arch/avr32/boards/atstk1000/atstk1000.h
@@ -12,4 +12,6 @@
extern struct atmel_lcdfb_info atstk1000_lcdc_data;
+void atstk1000_setup_j2_leds(void);
+
#endif /* __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H */
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1002.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atstk1000/atstk1002.c
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1002.c
+--- a/arch/avr32/boards/atstk1000/atstk1002.c
++++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -11,7 +11,6 @@
#include <linux/etherdevice.h>
#include <linux/init.h>
#include <asm/arch/board.h>
#include <asm/arch/init.h>
#include <asm/arch/portmux.h>
-@@ -49,18 +48,16 @@ static struct eth_platform_data __initda
+@@ -49,18 +48,16 @@
},
};
{
/* AT73C213 */
.modalias = "at73c213",
-@@ -80,12 +77,25 @@ static struct spi_board_info spi0_board_
+@@ -80,12 +77,25 @@
};
#endif
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
-@@ -141,68 +151,8 @@ static void __init set_hw_addr(struct pl
+@@ -141,68 +151,8 @@
clk_put(pclk);
}
{
struct clk *gclk;
struct clk *pll;
-@@ -220,7 +170,7 @@ static void __init at73c213_set_clk(stru
+@@ -220,7 +170,7 @@
}
at32_select_periph(GPIO_PIN_PA(30), GPIO_PERIPH_A, 0);
err_set_clk:
clk_put(pll);
-@@ -229,12 +179,16 @@ err_pll:
+@@ -229,12 +179,16 @@
err_gclk:
return;
}
at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */
#else
at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */
-@@ -271,7 +225,7 @@ static int __init atstk1002_init(void)
+@@ -271,7 +225,7 @@
at32_add_system_devices();
at32_add_device_usart(1);
#else
at32_add_device_usart(0);
-@@ -281,12 +235,16 @@ static int __init atstk1002_init(void)
+@@ -281,12 +235,16 @@
#ifndef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM
set_hw_addr(at32_add_device_eth(0, ð_data[0]));
#endif
#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
set_hw_addr(at32_add_device_eth(1, ð_data[1]));
#else
-@@ -294,18 +252,23 @@ static int __init atstk1002_init(void)
+@@ -294,18 +252,23 @@
fbmem_start, fbmem_size);
#endif
at32_add_device_usba(0, NULL);
return 0;
}
postcore_initcall(atstk1002_init);
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1003.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1003.c
++++ b/arch/avr32/boards/atstk1000/atstk1003.c
@@ -0,0 +1,185 @@
+/*
+ * ATSTK1003 daughterboard-specific init code
+ return 0;
+}
+postcore_initcall(atstk1003_init);
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1004.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/atstk1004.c
++++ b/arch/avr32/boards/atstk1000/atstk1004.c
@@ -0,0 +1,156 @@
+/*
+ * ATSTK1003 daughterboard-specific init code
+ return 0;
+}
+postcore_initcall(atstk1004_init);
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atstk1000/Kconfig
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/Kconfig
+--- a/arch/avr32/boards/atstk1000/Kconfig
++++ b/arch/avr32/boards/atstk1000/Kconfig
@@ -1,34 +1,53 @@
# STK1000 customization
bool "SW4: use ISI/Camera (not GPIOs, SPI1, and PS2-B)"
help
To use the camera interface you'll need a custom card (on the
-@@ -36,27 +55,29 @@ config BOARD_ATSTK1002_SW4_CUSTOM
+@@ -36,27 +55,29 @@
config BOARD_ATSTK1002_SW5_CUSTOM
bool "SW5: use MACB1 (not LCDC)"
optional
help
Select this if you have jumpered the J2 jumper block to the
-@@ -64,16 +85,77 @@ choice
+@@ -64,16 +85,77 @@
IDC cable. A default "heartbeat" trigger is provided, but
you can of course override this.
+ operating on 3.3 volt.
+
+endif # stk 1000
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atstk1000/Makefile
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/Makefile
+--- a/arch/avr32/boards/atstk1000/Makefile
++++ b/arch/avr32/boards/atstk1000/Makefile
@@ -1,2 +1,4 @@
obj-y += setup.o flash.o
obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o
+obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o
+obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o
-Index: linux-2.6.24.7/arch/avr32/boards/atstk1000/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/boards/atstk1000/setup.c
-+++ linux-2.6.24.7/arch/avr32/boards/atstk1000/setup.c
+--- a/arch/avr32/boards/atstk1000/setup.c
++++ b/arch/avr32/boards/atstk1000/setup.c
@@ -10,13 +10,17 @@
#include <linux/bootmem.h>
#include <linux/fb.h>
#include "atstk1000.h"
-@@ -61,3 +65,63 @@ struct atmel_lcdfb_info __initdata atstk
+@@ -61,3 +65,63 @@
.default_monspecs = &atstk1000_default_monspecs,
.guard_time = 2,
};
+
+}
+#endif /* CONFIG_BOARD_ATSTK1000_J2_LED */
-Index: linux-2.6.24.7/arch/avr32/configs/atngw100_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/configs/atngw100_defconfig
-+++ linux-2.6.24.7/arch/avr32/configs/atngw100_defconfig
+--- a/arch/avr32/configs/atngw100_defconfig
++++ b/arch/avr32/configs/atngw100_defconfig
@@ -1,46 +1,52 @@
#
# Automatically generated make config: don't edit
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
-@@ -61,35 +67,28 @@ CONFIG_FUTEX=y
+@@ -61,35 +67,28 @@
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
#
# IO Schedulers
-@@ -107,21 +106,28 @@ CONFIG_DEFAULT_IOSCHED="cfq"
+@@ -107,21 +106,28 @@
#
# System Type and features
#
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
-@@ -141,10 +147,14 @@ CONFIG_FLATMEM_MANUAL=y
+@@ -141,10 +147,14 @@
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
-@@ -153,13 +163,31 @@ CONFIG_HZ=250
+@@ -153,13 +163,31 @@
CONFIG_CMDLINE=""
#
# CONFIG_PCCARD is not set
#
-@@ -213,6 +241,7 @@ CONFIG_INET_TUNNEL=y
+@@ -213,6 +241,7 @@
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
-@@ -240,6 +269,7 @@ CONFIG_IPV6_SIT=y
+@@ -240,6 +269,7 @@
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
-@@ -252,6 +282,7 @@ CONFIG_NF_CONNTRACK_MARK=y
+@@ -252,6 +282,7 @@
# CONFIG_NF_CONNTRACK_EVENTS is not set
CONFIG_NF_CT_PROTO_GRE=m
# CONFIG_NF_CT_PROTO_SCTP is not set
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
-@@ -269,9 +300,11 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
+@@ -269,9 +300,11 @@
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-@@ -284,6 +317,7 @@ CONFIG_NETFILTER_XT_MATCH_MAC=m
+@@ -284,6 +317,7 @@
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
-@@ -292,6 +326,8 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m
+@@ -292,6 +326,8 @@
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
-@@ -359,13 +395,19 @@ CONFIG_IP6_NF_TARGET_REJECT=m
+@@ -359,13 +395,19 @@
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
-@@ -373,10 +415,6 @@ CONFIG_VLAN_8021Q=m
+@@ -373,10 +415,6 @@
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
-@@ -384,6 +422,7 @@ CONFIG_NET_CLS_ROUTE=y
+@@ -384,6 +422,7 @@
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
-@@ -397,6 +436,7 @@ CONFIG_NET_CLS_ROUTE=y
+@@ -397,6 +436,7 @@
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
#
# Device Drivers
-@@ -405,16 +445,13 @@ CONFIG_NET_CLS_ROUTE=y
+@@ -405,16 +445,13 @@
#
# Generic Driver Options
#
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
-@@ -434,6 +471,7 @@ CONFIG_MTD_BLOCK=y
+@@ -434,6 +471,7 @@
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
#
# RAM/ROM/Flash chip drivers
-@@ -493,20 +531,8 @@ CONFIG_MTD_DATAFLASH=y
+@@ -493,20 +531,8 @@
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-@@ -517,11 +543,13 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
+@@ -517,11 +543,13 @@
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_IDE is not set
#
-@@ -529,30 +557,42 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+@@ -529,30 +557,42 @@
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-@@ -571,21 +611,14 @@ CONFIG_PPP_DEFLATE=m
+@@ -571,21 +611,14 @@
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
# CONFIG_PHONE is not set
#
-@@ -615,28 +648,57 @@ CONFIG_SLHC=m
+@@ -615,28 +648,57 @@
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
# SPI support
-@@ -655,13 +717,25 @@ CONFIG_SPI_ATMEL=y
+@@ -655,13 +717,25 @@
# SPI Protocol Masters
#
# CONFIG_SPI_AT25 is not set
#
# Multifunction device drivers
-@@ -678,23 +752,21 @@ CONFIG_SPI_ATMEL=y
+@@ -678,23 +752,21 @@
#
# Graphics support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-@@ -706,12 +778,48 @@ CONFIG_SPI_ATMEL=y
+@@ -706,12 +778,48 @@
#
# USB Gadget Support
#
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
-@@ -726,53 +834,71 @@ CONFIG_LEDS_GPIO=y
+@@ -726,53 +834,71 @@
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
-@@ -781,7 +907,8 @@ CONFIG_JBD=y
+@@ -781,7 +907,8 @@
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
# CONFIG_DNOTIFY is not set
# CONFIG_AUTOFS_FS is not set
-@@ -814,7 +941,6 @@ CONFIG_SYSFS=y
+@@ -814,7 +941,6 @@
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=y
#
-@@ -830,10 +956,12 @@ CONFIG_CONFIGFS_FS=y
+@@ -830,10 +956,12 @@
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
-@@ -842,19 +970,21 @@ CONFIG_JFFS2_RTIME=y
+@@ -842,19 +970,21 @@
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
-@@ -871,23 +1001,18 @@ CONFIG_CIFS=m
+@@ -871,23 +1001,18 @@
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
-@@ -908,7 +1033,7 @@ CONFIG_NLS_CODEPAGE_850=y
+@@ -908,7 +1033,7 @@
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
-@@ -921,18 +1046,19 @@ CONFIG_NLS_ISO8859_1=y
+@@ -921,18 +1046,19 @@
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
-@@ -941,12 +1067,17 @@ CONFIG_MAGIC_SYSRQ=y
+@@ -941,12 +1067,17 @@
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
-@@ -954,21 +1085,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
+@@ -954,21 +1085,21 @@
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
-@@ -989,6 +1120,7 @@ CONFIG_CRYPTO_ECB=m
+@@ -989,6 +1120,7 @@
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
-@@ -1002,15 +1134,14 @@ CONFIG_CRYPTO_DES=y
+@@ -1002,15 +1134,14 @@
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
#
# Library routines
-@@ -1018,8 +1149,9 @@ CONFIG_CRYPTO_DEFLATE=y
+@@ -1018,8 +1149,9 @@
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
-Index: linux-2.6.24.7/arch/avr32/configs/atstk1002_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/configs/atstk1002_defconfig
-+++ linux-2.6.24.7/arch/avr32/configs/atstk1002_defconfig
+--- a/arch/avr32/configs/atstk1002_defconfig
++++ b/arch/avr32/configs/atstk1002_defconfig
@@ -1,48 +1,49 @@
#
# Automatically generated make config: don't edit
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
-@@ -63,35 +64,28 @@ CONFIG_FUTEX=y
+@@ -63,35 +64,28 @@
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
#
# IO Schedulers
-@@ -99,32 +93,49 @@ CONFIG_BLOCK=y
+@@ -99,32 +93,49 @@
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
-@@ -144,10 +155,14 @@ CONFIG_FLATMEM_MANUAL=y
+@@ -144,10 +155,14 @@
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
-@@ -156,13 +171,31 @@ CONFIG_HZ=250
+@@ -156,13 +171,31 @@
CONFIG_CMDLINE=""
#
# CONFIG_PCCARD is not set
#
-@@ -182,7 +215,12 @@ CONFIG_NET=y
+@@ -182,7 +215,12 @@
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
-@@ -191,36 +229,52 @@ CONFIG_IP_PNP=y
+@@ -191,36 +229,52 @@
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
-@@ -228,16 +282,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+@@ -228,16 +282,13 @@
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
-@@ -251,6 +302,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+@@ -251,6 +302,7 @@
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
#
# Device Drivers
-@@ -259,16 +311,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+@@ -259,16 +311,13 @@
#
# Generic Driver Options
#
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
-@@ -288,6 +337,7 @@ CONFIG_MTD_BLOCK=y
+@@ -288,6 +337,7 @@
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
#
# RAM/ROM/Flash chip drivers
-@@ -327,6 +377,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+@@ -327,6 +377,8 @@
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
-@@ -345,20 +397,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+@@ -345,20 +397,8 @@
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-@@ -369,42 +409,91 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
+@@ -369,42 +409,91 @@
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-@@ -423,27 +512,54 @@ CONFIG_PPP_DEFLATE=m
+@@ -423,27 +512,54 @@
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
#
# Hardware I/O ports
-@@ -467,40 +583,94 @@ CONFIG_SLHC=m
+@@ -467,40 +583,94 @@
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
# Multifunction device drivers
-@@ -517,23 +687,104 @@ CONFIG_UNIX98_PTYS=y
+@@ -517,23 +687,104 @@
#
# Graphics support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-@@ -545,63 +796,137 @@ CONFIG_UNIX98_PTYS=y
+@@ -545,63 +796,137 @@
#
# USB Gadget Support
#
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
-@@ -609,7 +934,7 @@ CONFIG_INOTIFY_USER=y
+@@ -609,7 +934,7 @@
# CONFIG_DNOTIFY is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
#
# CD-ROM/DVD Filesystems
-@@ -637,8 +962,7 @@ CONFIG_SYSFS=y
+@@ -637,8 +962,7 @@
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
#
# Miscellaneous filesystems
-@@ -652,11 +976,12 @@ CONFIG_CONFIGFS_FS=m
+@@ -652,11 +976,12 @@
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
-@@ -665,10 +990,7 @@ CONFIG_JFFS2_RTIME=y
+@@ -665,10 +990,7 @@
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
-@@ -688,17 +1010,12 @@ CONFIG_SUNRPC=y
+@@ -688,17 +1010,12 @@
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
-@@ -739,17 +1056,18 @@ CONFIG_NLS_ISO8859_1=m
+@@ -739,17 +1056,18 @@
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
-@@ -758,12 +1076,17 @@ CONFIG_DEBUG_FS=y
+@@ -758,12 +1076,17 @@
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
-@@ -771,22 +1094,63 @@ CONFIG_DEBUG_BUGVERBOSE=y
+@@ -771,22 +1094,63 @@
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
#
# Library routines
-@@ -794,10 +1158,10 @@ CONFIG_FORCED_INLINING=y
+@@ -794,10 +1158,10 @@
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
-Index: linux-2.6.24.7/arch/avr32/configs/atstk1003_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/configs/atstk1003_defconfig
++++ b/arch/avr32/configs/atstk1003_defconfig
@@ -0,0 +1,1041 @@
+#
+# Automatically generated make config: don't edit
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
-Index: linux-2.6.24.7/arch/avr32/configs/atstk1004_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/configs/atstk1004_defconfig
++++ b/arch/avr32/configs/atstk1004_defconfig
@@ -0,0 +1,639 @@
+#
+# Automatically generated make config: don't edit
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
-Index: linux-2.6.24.7/arch/avr32/drivers/dw-dmac.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/drivers/dw-dmac.c
++++ b/arch/avr32/drivers/dw-dmac.c
@@ -0,0 +1,761 @@
+/*
+ * Driver for the Synopsys DesignWare DMA Controller
+MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller driver");
+MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/arch/avr32/drivers/dw-dmac.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/drivers/dw-dmac.h
++++ b/arch/avr32/drivers/dw-dmac.h
@@ -0,0 +1,42 @@
+/*
+ * Driver for the Synopsys DesignWare DMA Controller
+#define DW_DMAC_CHAN_DSR 0x050
+
+#endif /* __AVR32_DW_DMAC_H__ */
-Index: linux-2.6.24.7/arch/avr32/drivers/Makefile
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/drivers/Makefile
++++ b/arch/avr32/drivers/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_DW_DMAC) += dw-dmac.o
-Index: linux-2.6.24.7/arch/avr32/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/Kconfig
-+++ linux-2.6.24.7/arch/avr32/Kconfig
-@@ -45,6 +45,9 @@ config RWSEM_GENERIC_SPINLOCK
+--- a/arch/avr32/Kconfig
++++ b/arch/avr32/Kconfig
+@@ -45,6 +45,9 @@
config GENERIC_TIME
def_bool y
config RWSEM_XCHGADD_ALGORITHM
def_bool n
-@@ -54,6 +57,9 @@ config ARCH_HAS_ILOG2_U32
+@@ -54,6 +57,9 @@
config ARCH_HAS_ILOG2_U64
def_bool n
config GENERIC_HWEIGHT
def_bool y
-@@ -68,6 +74,8 @@ source "init/Kconfig"
+@@ -68,6 +74,8 @@
menu "System Type and features"
config SUBARCH_AVR32B
bool
config MMU
-@@ -81,19 +89,23 @@ config PLATFORM_AT32AP
+@@ -81,19 +89,23 @@
select MMU
select PERFORMANCE_COUNTERS
choice
prompt "AVR32 board type"
-@@ -101,15 +113,18 @@ choice
+@@ -101,15 +113,18 @@
config BOARD_ATSTK1000
bool "ATSTK1000 evaluation board"
choice
prompt "Boot loader type"
-@@ -123,15 +138,15 @@ source "arch/avr32/mach-at32ap/Kconfig"
+@@ -123,15 +138,15 @@
config LOAD_ADDRESS
hex
source "kernel/Kconfig.preempt"
-@@ -163,6 +178,20 @@ config OWNERSHIP_TRACE
+@@ -163,6 +178,20 @@
enabling Nexus-compliant debuggers to keep track of the PID of the
currently executing task.
# FPU emulation goes here
source "kernel/Kconfig.hz"
-@@ -219,6 +248,8 @@ source "drivers/Kconfig"
+@@ -219,6 +248,8 @@
source "fs/Kconfig"
source "arch/avr32/Kconfig.debug"
source "security/Kconfig"
-Index: linux-2.6.24.7/arch/avr32/Kconfig.debug
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/Kconfig.debug
-+++ linux-2.6.24.7/arch/avr32/Kconfig.debug
-@@ -6,14 +6,4 @@ config TRACE_IRQFLAGS_SUPPORT
+--- a/arch/avr32/Kconfig.debug
++++ b/arch/avr32/Kconfig.debug
+@@ -6,14 +6,4 @@
source "lib/Kconfig.debug"
- If in doubt, say "N".
-
endmenu
-Index: linux-2.6.24.7/arch/avr32/kernel/cpu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/cpu.c
-+++ linux-2.6.24.7/arch/avr32/kernel/cpu.c
+--- a/arch/avr32/kernel/cpu.c
++++ b/arch/avr32/kernel/cpu.c
@@ -13,6 +13,7 @@
#include <linux/percpu.h>
#include <linux/param.h>
#include <asm/setup.h>
#include <asm/sysreg.h>
-@@ -187,9 +188,20 @@ static int __init topology_init(void)
+@@ -187,9 +188,20 @@
subsys_initcall(topology_init);
};
#define NR_CPU_NAMES ARRAY_SIZE(cpu_names)
-@@ -206,12 +218,32 @@ static const char *mmu_types[] = {
+@@ -206,12 +218,32 @@
"MPU"
};
config0 = sysreg_read(CONFIG0);
config1 = sysreg_read(CONFIG1);
-@@ -221,11 +253,14 @@ void __init setup_processor(void)
+@@ -221,11 +253,14 @@
arch_rev = SYSREG_BFEXT(AR, config0);
mmu_type = SYSREG_BFEXT(MMUT, config0);
tmp = SYSREG_BFEXT(ILSZ, config1);
if (tmp) {
-@@ -247,41 +282,34 @@ void __init setup_processor(void)
+@@ -247,41 +282,34 @@
return;
}
printk("\n");
boot_cpu_data.features = features;
}
-@@ -291,6 +319,8 @@ static int c_show(struct seq_file *m, vo
+@@ -291,6 +319,8 @@
{
unsigned int icache_size, dcache_size;
unsigned int cpu = smp_processor_id();
icache_size = boot_cpu_data.icache.ways *
boot_cpu_data.icache.sets *
-@@ -301,15 +331,21 @@ static int c_show(struct seq_file *m, vo
+@@ -301,15 +331,21 @@
seq_printf(m, "processor\t: %d\n", cpu);
seq_printf(m, "i-cache\t\t: %dK (%u ways x %u sets x %u)\n",
icache_size >> 10,
boot_cpu_data.icache.ways,
-@@ -320,7 +356,13 @@ static int c_show(struct seq_file *m, vo
+@@ -320,7 +356,13 @@
boot_cpu_data.dcache.ways,
boot_cpu_data.dcache.sets,
boot_cpu_data.dcache.linesz);
boot_cpu_data.loops_per_jiffy / (500000/HZ),
(boot_cpu_data.loops_per_jiffy / (5000/HZ)) % 100);
-@@ -343,7 +385,7 @@ static void c_stop(struct seq_file *m, v
+@@ -343,7 +385,7 @@
}
.start = c_start,
.next = c_next,
.stop = c_stop,
-Index: linux-2.6.24.7/arch/avr32/kernel/dma-controller.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/kernel/dma-controller.c
++++ b/arch/avr32/kernel/dma-controller.c
@@ -0,0 +1,34 @@
+/*
+ * Preliminary DMA controller framework for AVR32
+ return NULL;
+}
+EXPORT_SYMBOL(find_dma_controller);
-Index: linux-2.6.24.7/arch/avr32/kernel/entry-avr32b.S
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/entry-avr32b.S
-+++ linux-2.6.24.7/arch/avr32/kernel/entry-avr32b.S
-@@ -741,26 +741,6 @@ irq_level\level:
+--- a/arch/avr32/kernel/entry-avr32b.S
++++ b/arch/avr32/kernel/entry-avr32b.S
+@@ -741,26 +741,6 @@
.section .irq.text,"ax",@progbits
.global irq_level0
.global irq_level1
.global irq_level2
-Index: linux-2.6.24.7/arch/avr32/kernel/irq.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/irq.c
-+++ linux-2.6.24.7/arch/avr32/kernel/irq.c
-@@ -25,6 +25,17 @@ void ack_bad_irq(unsigned int irq)
+--- a/arch/avr32/kernel/irq.c
++++ b/arch/avr32/kernel/irq.c
+@@ -25,6 +25,17 @@
printk("unexpected IRQ %u\n", irq);
}
#ifdef CONFIG_PROC_FS
int show_interrupts(struct seq_file *p, void *v)
{
-Index: linux-2.6.24.7/arch/avr32/kernel/kprobes.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/kprobes.c
-+++ linux-2.6.24.7/arch/avr32/kernel/kprobes.c
-@@ -48,6 +48,7 @@ int __kprobes arch_prepare_kprobe(struct
+--- a/arch/avr32/kernel/kprobes.c
++++ b/arch/avr32/kernel/kprobes.c
+@@ -48,6 +48,7 @@
void __kprobes arch_arm_kprobe(struct kprobe *p)
{
pr_debug("arming kprobe at %p\n", p->addr);
*p->addr = BREAKPOINT_INSTRUCTION;
flush_icache_range((unsigned long)p->addr,
(unsigned long)p->addr + sizeof(kprobe_opcode_t));
-@@ -56,6 +57,7 @@ void __kprobes arch_arm_kprobe(struct kp
+@@ -56,6 +57,7 @@
void __kprobes arch_disarm_kprobe(struct kprobe *p)
{
pr_debug("disarming kprobe at %p\n", p->addr);
*p->addr = p->opcode;
flush_icache_range((unsigned long)p->addr,
(unsigned long)p->addr + sizeof(kprobe_opcode_t));
-@@ -260,9 +262,6 @@ int __kprobes longjmp_break_handler(stru
+@@ -260,9 +262,6 @@
int __init arch_init_kprobes(void)
{
/* TODO: Register kretprobe trampoline */
return 0;
}
-Index: linux-2.6.24.7/arch/avr32/kernel/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/Makefile
-+++ linux-2.6.24.7/arch/avr32/kernel/Makefile
-@@ -6,9 +6,11 @@ extra-y := head.o vmlinux.lds
+--- a/arch/avr32/kernel/Makefile
++++ b/arch/avr32/kernel/Makefile
+@@ -6,9 +6,11 @@
obj-$(CONFIG_SUBARCH_AVR32B) += entry-avr32b.o
obj-y += syscall_table.o syscall-stubs.o irq.o
obj-$(CONFIG_KPROBES) += kprobes.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
+obj-$(CONFIG_NMI_DEBUGGING) += nmi_debug.o
-Index: linux-2.6.24.7/arch/avr32/kernel/nmi_debug.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/kernel/nmi_debug.c
++++ b/arch/avr32/kernel/nmi_debug.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007 Atmel Corporation
+ return 0;
+}
+__setup("nmi_debug", nmi_debug_setup);
-Index: linux-2.6.24.7/arch/avr32/kernel/ocd.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/kernel/ocd.c
++++ b/arch/avr32/kernel/ocd.c
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2007 Atmel Corporation
+ return 0;
+}
+arch_initcall(ocd_init);
-Index: linux-2.6.24.7/arch/avr32/kernel/process.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/process.c
-+++ linux-2.6.24.7/arch/avr32/kernel/process.c
+--- a/arch/avr32/kernel/process.c
++++ b/arch/avr32/kernel/process.c
@@ -11,17 +11,18 @@
#include <linux/fs.h>
#include <linux/ptrace.h>
/*
* This file handles the architecture-dependent parts of process handling..
*/
-@@ -30,8 +31,10 @@ void cpu_idle(void)
+@@ -30,8 +31,10 @@
{
/* endless idle loop with no priority at all */
while (1) {
preempt_enable_no_resched();
schedule();
preempt_disable();
-@@ -103,7 +106,7 @@ EXPORT_SYMBOL(kernel_thread);
+@@ -103,7 +106,7 @@
*/
void exit_thread(void)
{
}
void flush_thread(void)
-@@ -345,6 +348,10 @@ int copy_thread(int nr, unsigned long cl
+@@ -345,6 +348,10 @@
p->thread.cpu_context.ksp = (unsigned long)childregs;
p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
return 0;
}
-Index: linux-2.6.24.7/arch/avr32/kernel/ptrace.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/ptrace.c
-+++ linux-2.6.24.7/arch/avr32/kernel/ptrace.c
-@@ -58,6 +58,7 @@ void ptrace_disable(struct task_struct *
+--- a/arch/avr32/kernel/ptrace.c
++++ b/arch/avr32/kernel/ptrace.c
+@@ -58,6 +58,7 @@
{
clear_tsk_thread_flag(child, TIF_SINGLE_STEP);
clear_tsk_thread_flag(child, TIF_BREAKPOINT);
}
/*
-@@ -144,10 +145,6 @@ long arch_ptrace(struct task_struct *chi
+@@ -144,10 +145,6 @@
{
int ret;
switch (request) {
/* Read the word at location addr in the child process */
case PTRACE_PEEKTEXT:
-Index: linux-2.6.24.7/arch/avr32/kernel/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/setup.c
-+++ linux-2.6.24.7/arch/avr32/kernel/setup.c
-@@ -273,6 +273,8 @@ static int __init early_parse_fbmem(char
+--- a/arch/avr32/kernel/setup.c
++++ b/arch/avr32/kernel/setup.c
+@@ -273,6 +273,8 @@
printk(KERN_WARNING
"Failed to allocate framebuffer memory\n");
fbmem_size = 0;
}
}
-Index: linux-2.6.24.7/arch/avr32/kernel/signal.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/signal.c
-+++ linux-2.6.24.7/arch/avr32/kernel/signal.c
-@@ -270,19 +270,12 @@ int do_signal(struct pt_regs *regs, sigs
+--- a/arch/avr32/kernel/signal.c
++++ b/arch/avr32/kernel/signal.c
+@@ -270,19 +270,12 @@
if (!user_mode(regs))
return 0;
if (syscall) {
switch (regs->r12) {
case -ERESTART_RESTARTBLOCK:
-Index: linux-2.6.24.7/arch/avr32/kernel/time.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/time.c
-+++ linux-2.6.24.7/arch/avr32/kernel/time.c
+--- a/arch/avr32/kernel/time.c
++++ b/arch/avr32/kernel/time.c
@@ -1,16 +1,12 @@
/*
* Copyright (C) 2004-2007 Atmel Corporation
}
-
-device_initcall(init_timer_sysfs);
-Index: linux-2.6.24.7/arch/avr32/kernel/traps.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/kernel/traps.c
-+++ linux-2.6.24.7/arch/avr32/kernel/traps.c
+--- a/arch/avr32/kernel/traps.c
++++ b/arch/avr32/kernel/traps.c
@@ -9,6 +9,7 @@
#include <linux/bug.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/notifier.h>
#include <linux/sched.h>
-@@ -107,9 +108,23 @@ void _exception(long signr, struct pt_re
+@@ -107,9 +108,23 @@
asmlinkage void do_nmi(unsigned long ecr, struct pt_regs *regs)
{
}
asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs)
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/at32ap7000.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/at32ap7000.c
+--- a/arch/avr32/mach-at32ap/at32ap7000.c
+++ /dev/null
@@ -1,1730 +0,0 @@
-/*
- pm_writel(PBA_MASK, pba_mask);
- pm_writel(PBB_MASK, pbb_mask);
-}
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/at32ap700x.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/at32ap700x.c
++++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -0,0 +1,1944 @@
+/*
+ * Copyright (C) 2005-2006 Atmel Corporation
+ pm_writel(PBA_MASK, pba_mask);
+ pm_writel(PBB_MASK, pbb_mask);
+}
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/extint.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/extint.c
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/extint.c
+--- a/arch/avr32/mach-at32ap/extint.c
++++ b/arch/avr32/mach-at32ap/extint.c
@@ -26,16 +26,10 @@
#define EIC_MODE 0x0014
#define EIC_EDGE 0x0018
/* Bit manipulation macros */
#define EIC_BIT(name) \
-@@ -63,6 +57,9 @@ struct eic {
+@@ -63,6 +57,9 @@
unsigned int first_irq;
};
static void eic_ack_irq(unsigned int irq)
{
struct eic *eic = get_irq_chip_data(irq);
-@@ -133,8 +130,11 @@ static int eic_set_irq_type(unsigned int
+@@ -133,8 +130,11 @@
eic_writel(eic, EDGE, edge);
eic_writel(eic, LEVEL, level);
desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
desc->status |= flow_type;
}
-@@ -154,9 +154,8 @@ static struct irq_chip eic_chip = {
+@@ -154,9 +154,8 @@
static void demux_eic_irq(unsigned int irq, struct irq_desc *desc)
{
struct eic *eic = desc->handler_data;
status = eic_readl(eic, ISR);
pending = status & eic_readl(eic, IMR);
-@@ -165,15 +164,28 @@ static void demux_eic_irq(unsigned int i
+@@ -165,15 +164,28 @@
i = fls(pending) - 1;
pending &= ~(1 << i);
static int __init eic_probe(struct platform_device *pdev)
{
struct eic *eic;
-@@ -214,14 +226,13 @@ static int __init eic_probe(struct platf
+@@ -214,14 +226,13 @@
pattern = eic_readl(eic, MODE);
nr_irqs = fls(pattern);
set_irq_chip_and_handler(eic->first_irq + i, &eic_chip,
handle_level_irq);
set_irq_chip_data(eic->first_irq + i, eic);
-@@ -230,6 +241,16 @@ static int __init eic_probe(struct platf
+@@ -230,6 +241,16 @@
set_irq_chained_handler(int_irq, demux_eic_irq);
set_irq_data(int_irq, eic);
dev_info(&pdev->dev,
"External Interrupt Controller at 0x%p, IRQ %u\n",
eic->regs, int_irq);
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/gpio-dev.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/gpio-dev.c
++++ b/arch/avr32/mach-at32ap/gpio-dev.c
@@ -0,0 +1,573 @@
+/*
+ * GPIO /dev and configfs interface
+ return err;
+}
+late_initcall(gpio_dev_init);
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/intc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/intc.c
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/intc.c
+--- a/arch/avr32/mach-at32ap/intc.c
++++ b/arch/avr32/mach-at32ap/intc.c
@@ -13,7 +13,6 @@
#include <linux/irq.h>
#include <linux/platform_device.h>
#include <asm/io.h>
#include "intc.h"
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/Kconfig
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/Kconfig
-@@ -3,9 +3,9 @@ if PLATFORM_AT32AP
+--- a/arch/avr32/mach-at32ap/Kconfig
++++ b/arch/avr32/mach-at32ap/Kconfig
+@@ -3,9 +3,9 @@
menu "Atmel AVR32 AP options"
choice
help
Define the width of the AP7000 external static memory interface.
This is used to determine how to mangle the address and/or data
-@@ -15,17 +15,24 @@ choice
+@@ -15,17 +15,24 @@
width for all chip selects, excluding the flash (which is using
raw access and is thus not affected by any of this.)
endmenu
endif # PLATFORM_AT32AP
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/Makefile
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/Makefile
+--- a/arch/avr32/mach-at32ap/Makefile
++++ b/arch/avr32/mach-at32ap/Makefile
@@ -1,4 +1,4 @@
obj-y += at32ap.o clock.o intc.o extint.o pio.o hsmc.o
-obj-$(CONFIG_CPU_AT32AP7000) += at32ap7000.o
+obj-$(CONFIG_CPU_AT32AP700X) += at32ap700x.o pm-at32ap700x.o
obj-$(CONFIG_CPU_FREQ_AT32AP) += cpufreq.o
+obj-$(CONFIG_GPIO_DEV) += gpio-dev.o
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/pio.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/pio.c
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/pio.c
-@@ -162,6 +162,82 @@ fail:
+--- a/arch/avr32/mach-at32ap/pio.c
++++ b/arch/avr32/mach-at32ap/pio.c
+@@ -162,6 +162,82 @@
dump_stack();
}
/*--------------------------------------------------------------------------*/
/* GPIO API */
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/pm-at32ap700x.S
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/mach-at32ap/pm-at32ap700x.S
++++ b/arch/avr32/mach-at32ap/pm-at32ap700x.S
@@ -0,0 +1,66 @@
+/*
+ * Low-level Power Management code.
+ unmask_interrupts
+ retal r12
+ .size cpu_idle_skip_sleep, . - cpu_idle_skip_sleep
-Index: linux-2.6.24.7/arch/avr32/mach-at32ap/time-tc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mach-at32ap/time-tc.c
+--- a/arch/avr32/mach-at32ap/time-tc.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
-
- return IRQ_NONE;
-}
-Index: linux-2.6.24.7/arch/avr32/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/Makefile
-+++ linux-2.6.24.7/arch/avr32/Makefile
-@@ -16,7 +16,7 @@ KBUILD_AFLAGS += -mrelax -mno-pic
+--- a/arch/avr32/Makefile
++++ b/arch/avr32/Makefile
+@@ -16,7 +16,7 @@
CFLAGS_MODULE += -mno-relax
LDFLAGS_vmlinux += --relax
KBUILD_CFLAGS += $(cpuflags-y)
KBUILD_AFLAGS += $(cpuflags-y)
-@@ -31,6 +31,8 @@ core-$(CONFIG_BOARD_ATNGW100) += arch/a
+@@ -31,6 +31,8 @@
core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/
core-y += arch/avr32/kernel/
core-y += arch/avr32/mm/
libs-y += arch/avr32/lib/
archincdir-$(CONFIG_PLATFORM_AT32AP) := arch-at32ap
-Index: linux-2.6.24.7/arch/avr32/mm/dma-coherent.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mm/dma-coherent.c
-+++ linux-2.6.24.7/arch/avr32/mm/dma-coherent.c
-@@ -41,6 +41,13 @@ static struct page *__dma_alloc(struct d
+--- a/arch/avr32/mm/dma-coherent.c
++++ b/arch/avr32/mm/dma-coherent.c
+@@ -41,6 +41,13 @@
struct page *page, *free, *end;
int order;
size = PAGE_ALIGN(size);
order = get_order(size);
-Index: linux-2.6.24.7/arch/avr32/mm/fault.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mm/fault.c
-+++ linux-2.6.24.7/arch/avr32/mm/fault.c
-@@ -189,6 +189,8 @@ no_context:
+--- a/arch/avr32/mm/fault.c
++++ b/arch/avr32/mm/fault.c
+@@ -189,6 +189,8 @@
page = sysreg_read(PTBR);
printk(KERN_ALERT "ptbr = %08lx", page);
if (page) {
page = ((unsigned long *)page)[address >> 22];
printk(" pgd = %08lx", page);
-Index: linux-2.6.24.7/arch/avr32/mm/tlb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/avr32/mm/tlb.c
-+++ linux-2.6.24.7/arch/avr32/mm/tlb.c
-@@ -348,7 +348,7 @@ static int tlb_show(struct seq_file *tlb
+--- a/arch/avr32/mm/tlb.c
++++ b/arch/avr32/mm/tlb.c
+@@ -348,7 +348,7 @@
return 0;
}
.start = tlb_start,
.next = tlb_next,
.stop = tlb_stop,
-Index: linux-2.6.24.7/arch/avr32/oprofile/Makefile
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/oprofile/Makefile
++++ b/arch/avr32/oprofile/Makefile
@@ -0,0 +1,8 @@
+obj-$(CONFIG_OPROFILE) += oprofile.o
+
+ oprofilefs.o oprofile_stats.o \
+ timer_int.o)
+oprofile-y += op_model_avr32.o
-Index: linux-2.6.24.7/arch/avr32/oprofile/op_model_avr32.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/avr32/oprofile/op_model_avr32.c
++++ b/arch/avr32/oprofile/op_model_avr32.c
@@ -0,0 +1,234 @@
+/*
+ * AVR32 Performance Counter Driver
+{
+
+}
-Index: linux-2.6.24.7/Documentation/kernel-parameters.txt
-===================================================================
---- linux-2.6.24.7.orig/Documentation/kernel-parameters.txt
-+++ linux-2.6.24.7/Documentation/kernel-parameters.txt
-@@ -34,6 +34,7 @@ parameter is applicable:
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -34,6 +34,7 @@
ALSA ALSA sound support is enabled.
APIC APIC support is enabled.
APM Advanced Power Management support is enabled.
AX25 Appropriate AX.25 support is enabled.
BLACKFIN Blackfin architecture is enabled.
DRM Direct Rendering Management support is enabled.
-@@ -1124,6 +1125,10 @@ and is between 256 and 4096 characters.
+@@ -1124,6 +1125,10 @@
of returning the full 64-bit number.
The default is to return 64-bit inode numbers.
nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels
no387 [BUGS=X86-32] Tells the kernel to use the 387 maths
-Index: linux-2.6.24.7/drivers/clocksource/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/clocksource/Makefile
-+++ linux-2.6.24.7/drivers/clocksource/Makefile
+--- a/drivers/clocksource/Makefile
++++ b/drivers/clocksource/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_ATMEL_TCB_CLKSRC) += tcb_clksrc.o
obj-$(CONFIG_X86_CYCLONE_TIMER) += cyclone.o
obj-$(CONFIG_X86_PM_TIMER) += acpi_pm.o
obj-$(CONFIG_SCx200HR_TIMER) += scx200_hrt.o
-Index: linux-2.6.24.7/drivers/clocksource/tcb_clksrc.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/clocksource/tcb_clksrc.c
++++ b/drivers/clocksource/tcb_clksrc.c
@@ -0,0 +1,305 @@
+#include <linux/init.h>
+#include <linux/clocksource.h>
+ return 0;
+}
+arch_initcall(tcb_clksrc_init);
-Index: linux-2.6.24.7/drivers/i2c/busses/i2c-atmeltwi.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/i2c/busses/i2c-atmeltwi.c
++++ b/drivers/i2c/busses/i2c-atmeltwi.c
@@ -0,0 +1,436 @@
+/*
+ * i2c Support for Atmel's Two-Wire Interface (TWI)
+MODULE_AUTHOR("Espen Krangnes");
+MODULE_DESCRIPTION("I2C driver for Atmel TWI");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/i2c/busses/i2c-atmeltwi.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/i2c/busses/i2c-atmeltwi.h
++++ b/drivers/i2c/busses/i2c-atmeltwi.h
@@ -0,0 +1,117 @@
+/*
+ * Register definitions for the Atmel Two-Wire Interface
+ __raw_writel((value), (port)->regs + TWI_##reg)
+
+#endif /* __ATMELTWI_H__ */
-Index: linux-2.6.24.7/drivers/i2c/busses/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/i2c/busses/Kconfig
-+++ linux-2.6.24.7/drivers/i2c/busses/Kconfig
-@@ -88,6 +88,14 @@ config I2C_AT91
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -88,6 +88,14 @@
to support combined I2C messages. Use the i2c-gpio driver
unless your system can cope with those limitations.
config I2C_AU1550
tristate "Au1550/Au1200 SMBus interface"
depends on SOC_AU1550 || SOC_AU1200
-Index: linux-2.6.24.7/drivers/i2c/busses/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/i2c/busses/Makefile
-+++ linux-2.6.24.7/drivers/i2c/busses/Makefile
-@@ -53,6 +53,7 @@ obj-$(CONFIG_I2C_VIAPRO) += i2c-viapro.o
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -53,6 +53,7 @@
obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
ifeq ($(CONFIG_I2C_DEBUG_BUS),y)
EXTRA_CFLAGS += -DDEBUG
-Index: linux-2.6.24.7/drivers/input/serio/at32psif.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/input/serio/at32psif.c
++++ b/drivers/input/serio/at32psif.c
@@ -0,0 +1,351 @@
+/*
+ * Copyright (C) 2007 Atmel Corporation
+MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
+MODULE_DESCRIPTION("Atmel AVR32 PSIF PS/2 driver");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/input/serio/at32psif.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/input/serio/at32psif.h
++++ b/drivers/input/serio/at32psif.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2007 Atmel Corporation
+ __raw_writel((value), (port)->regs + PSIF_##reg)
+
+#endif /* _AT32PSIF_H */
-Index: linux-2.6.24.7/drivers/input/serio/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/input/serio/Kconfig
-+++ linux-2.6.24.7/drivers/input/serio/Kconfig
-@@ -88,6 +88,17 @@ config SERIO_RPCKBD
+--- a/drivers/input/serio/Kconfig
++++ b/drivers/input/serio/Kconfig
+@@ -88,6 +88,17 @@
To compile this driver as a module, choose M here: the
module will be called rpckbd.
config SERIO_AMBAKMI
tristate "AMBA KMI keyboard controller"
depends on ARM_AMBA
-Index: linux-2.6.24.7/drivers/input/serio/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/input/serio/Makefile
-+++ linux-2.6.24.7/drivers/input/serio/Makefile
-@@ -12,6 +12,7 @@ obj-$(CONFIG_SERIO_CT82C710) += ct82c710
+--- a/drivers/input/serio/Makefile
++++ b/drivers/input/serio/Makefile
+@@ -12,6 +12,7 @@
obj-$(CONFIG_SERIO_RPCKBD) += rpckbd.o
obj-$(CONFIG_SERIO_SA1111) += sa1111ps2.o
obj-$(CONFIG_SERIO_AMBAKMI) += ambakmi.o
obj-$(CONFIG_SERIO_Q40KBD) += q40kbd.o
obj-$(CONFIG_SERIO_GSCPS2) += gscps2.o
obj-$(CONFIG_HP_SDC) += hp_sdc.o
-Index: linux-2.6.24.7/drivers/leds/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/leds/Kconfig
-+++ linux-2.6.24.7/drivers/leds/Kconfig
-@@ -18,6 +18,13 @@ config LEDS_CLASS
+--- a/drivers/leds/Kconfig
++++ b/drivers/leds/Kconfig
+@@ -18,6 +18,13 @@
comment "LED drivers"
config LEDS_CORGI
tristate "LED Support for the Sharp SL-C7x0 series"
depends on LEDS_CLASS && PXA_SHARP_C7xx
-Index: linux-2.6.24.7/drivers/leds/leds-atmel-pwm.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/leds/leds-atmel-pwm.c
++++ b/drivers/leds/leds-atmel-pwm.c
@@ -0,0 +1,155 @@
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+
+MODULE_DESCRIPTION("Driver for LEDs with PWM-controlled brightness");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/leds/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/leds/Makefile
-+++ linux-2.6.24.7/drivers/leds/Makefile
-@@ -5,6 +5,7 @@ obj-$(CONFIG_LEDS_CLASS) += led-class.o
+--- a/drivers/leds/Makefile
++++ b/drivers/leds/Makefile
+@@ -5,6 +5,7 @@
obj-$(CONFIG_LEDS_TRIGGERS) += led-triggers.o
# LED Platform Drivers
obj-$(CONFIG_LEDS_CORGI) += leds-corgi.o
obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o
obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o
-Index: linux-2.6.24.7/drivers/misc/atmel_pwm.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/misc/atmel_pwm.c
++++ b/drivers/misc/atmel_pwm.c
@@ -0,0 +1,409 @@
+#include <linux/module.h>
+#include <linux/clk.h>
+
+MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/misc/atmel_tclib.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/misc/atmel_tclib.c
++++ b/drivers/misc/atmel_tclib.c
@@ -0,0 +1,161 @@
+#include <linux/atmel_tc.h>
+#include <linux/clk.h>
+ return platform_driver_probe(&tc_driver, tc_probe);
+}
+arch_initcall(tc_init);
-Index: linux-2.6.24.7/drivers/misc/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/misc/Kconfig
-+++ linux-2.6.24.7/drivers/misc/Kconfig
-@@ -13,6 +13,48 @@ menuconfig MISC_DEVICES
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -13,6 +13,48 @@
if MISC_DEVICES
config IBM_ASM
tristate "Device driver for IBM RSA service processor"
depends on X86 && PCI && INPUT && EXPERIMENTAL
-Index: linux-2.6.24.7/drivers/misc/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/misc/Makefile
-+++ linux-2.6.24.7/drivers/misc/Makefile
-@@ -7,7 +7,9 @@ obj-$(CONFIG_IBM_ASM) += ibmasm/
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -7,7 +7,9 @@
obj-$(CONFIG_HDPU_FEATURES) += hdpuftrs/
obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o
obj-$(CONFIG_LKDTM) += lkdtm.o
obj-$(CONFIG_TIFM_CORE) += tifm_core.o
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
-Index: linux-2.6.24.7/drivers/mmc/host/atmel-mci.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/mmc/host/atmel-mci.c
++++ b/drivers/mmc/host/atmel-mci.c
@@ -0,0 +1,1220 @@
+/*
+ * Atmel MultiMedia Card Interface driver
+
+MODULE_DESCRIPTION("Atmel Multimedia Card Interface driver");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/mmc/host/atmel-mci.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/mmc/host/atmel-mci.h
++++ b/drivers/mmc/host/atmel-mci.h
@@ -0,0 +1,192 @@
+/*
+ * Atmel MultiMedia Card Interface driver
+ __raw_writel((value), (port)->regs + MCI_##reg)
+
+#endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */
-Index: linux-2.6.24.7/drivers/mmc/host/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/mmc/host/Kconfig
-+++ linux-2.6.24.7/drivers/mmc/host/Kconfig
-@@ -91,6 +91,16 @@ config MMC_AT91
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -91,6 +91,16 @@
If unsure, say N.
config MMC_IMX
tristate "Motorola i.MX Multimedia Card Interface support"
depends on ARCH_IMX
-Index: linux-2.6.24.7/drivers/mmc/host/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/mmc/host/Makefile
-+++ linux-2.6.24.7/drivers/mmc/host/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_WBSD) += wbsd.o
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
+@@ -15,6 +15,7 @@
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
obj-$(CONFIG_MMC_OMAP) += omap.o
obj-$(CONFIG_MMC_AT91) += at91_mci.o
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
-Index: linux-2.6.24.7/drivers/mtd/chips/cfi_cmdset_0001.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/mtd/chips/cfi_cmdset_0001.c
-+++ linux-2.6.24.7/drivers/mtd/chips/cfi_cmdset_0001.c
+--- a/drivers/mtd/chips/cfi_cmdset_0001.c
++++ b/drivers/mtd/chips/cfi_cmdset_0001.c
@@ -50,6 +50,7 @@
#define I82802AC 0x00ac
#define MANUFACTURER_ST 0x0020
static int cfi_intelext_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
static int cfi_intelext_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
-@@ -157,6 +158,47 @@ static void cfi_tell_features(struct cfi
+@@ -157,6 +158,47 @@
}
#endif
#ifdef CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE
/* Some Intel Strata Flash prior to FPO revision C has bugs in this area */
static void fixup_intel_strataflash(struct mtd_info *mtd, void* param)
-@@ -234,6 +276,7 @@ static void fixup_use_powerup_lock(struc
+@@ -234,6 +276,7 @@
}
static struct cfi_fixup cfi_fixup_table[] = {
#ifdef CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE
{ CFI_MFR_ANY, CFI_ID_ANY, fixup_intel_strataflash, NULL },
#endif
-Index: linux-2.6.24.7/drivers/mtd/chips/cfi_cmdset_0002.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ linux-2.6.24.7/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -186,6 +186,10 @@ static void fixup_convert_atmel_pri(stru
+--- a/drivers/mtd/chips/cfi_cmdset_0002.c
++++ b/drivers/mtd/chips/cfi_cmdset_0002.c
+@@ -186,6 +186,10 @@
extp->TopBottom = 2;
else
extp->TopBottom = 3;
}
static void fixup_use_secsi(struct mtd_info *mtd, void *param)
-@@ -218,6 +222,7 @@ static void fixup_use_atmel_lock(struct
+@@ -218,6 +222,7 @@
}
static struct cfi_fixup cfi_fixup_table[] = {
#ifdef AMD_BOOTLOC_BUG
{ CFI_MFR_AMD, CFI_ID_ANY, fixup_amd_bootblock, NULL },
#endif
-@@ -230,7 +235,6 @@ static struct cfi_fixup cfi_fixup_table[
+@@ -230,7 +235,6 @@
#if !FORCE_WORD_WRITE
{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers, NULL, },
#endif
{ 0, 0, NULL, NULL }
};
static struct cfi_fixup jedec_fixup_table[] = {
-Index: linux-2.6.24.7/drivers/pcmcia/at32_cf.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/pcmcia/at32_cf.c
++++ b/drivers/pcmcia/at32_cf.c
@@ -0,0 +1,533 @@
+/*
+ * Driver for AVR32 Static Memory Controller: CompactFlash support
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Driver for SMC PCMCIA interface");
+MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
-Index: linux-2.6.24.7/drivers/pcmcia/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/pcmcia/Kconfig
-+++ linux-2.6.24.7/drivers/pcmcia/Kconfig
-@@ -276,6 +276,13 @@ config ELECTRA_CF
+--- a/drivers/pcmcia/Kconfig
++++ b/drivers/pcmcia/Kconfig
+@@ -276,6 +276,13 @@
Say Y here to support the CompactFlash controller on the
PA Semi Electra eval board.
config PCCARD_NONSTATIC
tristate
-Index: linux-2.6.24.7/drivers/pcmcia/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/pcmcia/Makefile
-+++ linux-2.6.24.7/drivers/pcmcia/Makefile
-@@ -38,6 +38,7 @@ obj-$(CONFIG_PCMCIA_VRC4173) += vrc417
+--- a/drivers/pcmcia/Makefile
++++ b/drivers/pcmcia/Makefile
+@@ -38,6 +38,7 @@
obj-$(CONFIG_OMAP_CF) += omap_cf.o
obj-$(CONFIG_AT91_CF) += at91_cf.o
obj-$(CONFIG_ELECTRA_CF) += electra_cf.o
sa11xx_core-y += soc_common.o sa11xx_base.o
pxa2xx_core-y += soc_common.o pxa2xx_base.o
-Index: linux-2.6.24.7/drivers/serial/atmel_serial.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/atmel_serial.c
-+++ linux-2.6.24.7/drivers/serial/atmel_serial.c
+--- a/drivers/serial/atmel_serial.c
++++ b/drivers/serial/atmel_serial.c
@@ -7,6 +7,8 @@
* Based on drivers/char/serial_sa1100.c, by Deep Blue Solutions Ltd.
* Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.
/*
* We wrap our port structure around the generic uart_port.
*/
-@@ -115,6 +132,19 @@ struct atmel_uart_port {
+@@ -115,6 +132,19 @@
struct clk *clk; /* uart clock */
unsigned short suspended; /* is port suspended? */
int break_active; /* break being received */
};
static struct atmel_uart_port atmel_ports[ATMEL_MAX_UART];
-@@ -123,6 +153,38 @@ static struct atmel_uart_port atmel_port
+@@ -123,6 +153,38 @@
static struct console atmel_console;
#endif
/*
* Return TIOCSER_TEMT when transmitter FIFO and Shift register is empty.
*/
-@@ -142,8 +204,8 @@ static void atmel_set_mctrl(struct uart_
+@@ -142,8 +204,8 @@
#ifdef CONFIG_ARCH_AT91RM9200
if (cpu_is_at91rm9200()) {
/*
*/
if (port->mapbase == AT91RM9200_BASE_US0) {
if (mctrl & TIOCM_RTS)
-@@ -204,7 +266,12 @@ static u_int atmel_get_mctrl(struct uart
+@@ -204,7 +266,12 @@
*/
static void atmel_stop_tx(struct uart_port *port)
{
}
/*
-@@ -212,7 +279,17 @@ static void atmel_stop_tx(struct uart_po
+@@ -212,7 +279,17 @@
*/
static void atmel_start_tx(struct uart_port *port)
{
}
/*
-@@ -220,7 +297,12 @@ static void atmel_start_tx(struct uart_p
+@@ -220,7 +297,12 @@
*/
static void atmel_stop_rx(struct uart_port *port)
{
}
/*
-@@ -228,7 +310,8 @@ static void atmel_stop_rx(struct uart_po
+@@ -228,7 +310,8 @@
*/
static void atmel_enable_ms(struct uart_port *port)
{
}
/*
-@@ -243,22 +326,63 @@ static void atmel_break_ctl(struct uart_
+@@ -243,22 +326,63 @@
}
/*
/*
* note that the error handling code is
* out of the main execution path
-@@ -266,15 +390,14 @@ static void atmel_rx_chars(struct uart_p
+@@ -266,15 +390,14 @@
if (unlikely(status & (ATMEL_US_PARE | ATMEL_US_FRAME
| ATMEL_US_OVRE | ATMEL_US_RXBRK)
|| atmel_port->break_active)) {
} else {
/*
* This is either the end-of-break
-@@ -287,52 +410,30 @@ static void atmel_rx_chars(struct uart_p
+@@ -287,52 +410,30 @@
status &= ~ATMEL_US_RXBRK;
atmel_port->break_active = 0;
}
while (UART_GET_CSR(port) & ATMEL_US_TXRDY) {
UART_PUT_CHAR(port, xmit->buf[xmit->tail]);
-@@ -345,8 +446,88 @@ static void atmel_tx_chars(struct uart_p
+@@ -345,8 +446,88 @@
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
uart_write_wakeup(port);
}
/*
-@@ -355,47 +536,255 @@ static void atmel_tx_chars(struct uart_p
+@@ -355,47 +536,255 @@
static irqreturn_t atmel_interrupt(int irq, void *dev_id)
{
struct uart_port *port = dev_id;
}
/*
-@@ -403,6 +792,8 @@ static irqreturn_t atmel_interrupt(int i
+@@ -403,6 +792,8 @@
*/
static int atmel_startup(struct uart_port *port)
{
int retval;
/*
-@@ -415,13 +806,64 @@ static int atmel_startup(struct uart_por
+@@ -415,13 +806,64 @@
/*
* Allocate the IRQ
*/
* If there is a specific "open" function (to register
* control line interrupts)
*/
-@@ -437,9 +879,21 @@ static int atmel_startup(struct uart_por
+@@ -437,9 +879,21 @@
* Finally, enable the serial port
*/
UART_PUT_CR(port, ATMEL_US_RSTSTA | ATMEL_US_RSTRX);
return 0;
}
-@@ -449,6 +903,38 @@ static int atmel_startup(struct uart_por
+@@ -449,6 +903,38 @@
*/
static void atmel_shutdown(struct uart_port *port)
{
/*
* Disable all interrupts, port and break condition.
*/
-@@ -471,45 +957,48 @@ static void atmel_shutdown(struct uart_p
+@@ -471,45 +957,48 @@
/*
* Power / Clock management.
*/
quot /= 8;
mode |= ATMEL_US_USCLKS_MCK_DIV8;
}
-@@ -536,18 +1025,17 @@ static void atmel_set_termios(struct uar
+@@ -536,18 +1025,17 @@
/* parity */
if (termios->c_cflag & PARENB) {
mode |= ATMEL_US_PAR_NONE;
spin_lock_irqsave(&port->lock, flags);
-@@ -558,6 +1046,10 @@ static void atmel_set_termios(struct uar
+@@ -558,6 +1046,10 @@
if (termios->c_iflag & (BRKINT | PARMRK))
port->read_status_mask |= ATMEL_US_RXBRK;
/*
* Characters to ignore
*/
-@@ -573,16 +1065,16 @@ static void atmel_set_termios(struct uar
+@@ -573,16 +1065,16 @@
if (termios->c_iflag & IGNPAR)
port->ignore_status_mask |= ATMEL_US_OVRE;
}
/* disable receiver and transmitter */
UART_PUT_CR(port, ATMEL_US_TXDIS | ATMEL_US_RXDIS);
-@@ -708,7 +1200,8 @@ static struct uart_ops atmel_pops = {
+@@ -708,7 +1200,8 @@
/*
* Configure the port from the platform device resource info.
*/
{
struct uart_port *port = &atmel_port->uart;
struct atmel_uart_data *data = pdev->dev.platform_data;
-@@ -723,6 +1216,11 @@ static void __devinit atmel_init_port(st
+@@ -723,6 +1216,11 @@
port->mapbase = pdev->resource[0].start;
port->irq = pdev->resource[1].start;
if (data->regs)
/* Already mapped by setup code */
port->membase = data->regs;
-@@ -731,11 +1229,17 @@ static void __devinit atmel_init_port(st
+@@ -731,11 +1229,17 @@
port->membase = NULL;
}
}
/*
-@@ -755,12 +1259,11 @@ void __init atmel_register_uart_fns(stru
+@@ -755,12 +1259,11 @@
atmel_pops.set_wake = fns->set_wake;
}
UART_PUT_CHAR(port, ch);
}
-@@ -773,38 +1276,40 @@ static void atmel_console_write(struct c
+@@ -773,38 +1276,40 @@
unsigned int status, imr;
/*
mr = UART_GET_MR(port) & ATMEL_US_CHRL;
if (mr == ATMEL_US_CHRL_8)
-@@ -824,7 +1329,6 @@ static void __init atmel_console_get_opt
+@@ -824,7 +1329,6 @@
* lower than one of those, as it would make us fall through
* to a much lower baud rate than we really want.
*/
*baud = port->uartclk / (16 * (quot - 1));
}
-@@ -836,10 +1340,12 @@ static int __init atmel_console_setup(st
+@@ -836,10 +1340,12 @@
int parity = 'n';
int flow = 'n';
UART_PUT_CR(port, ATMEL_US_RSTSTA | ATMEL_US_RSTRX);
UART_PUT_CR(port, ATMEL_US_TXEN | ATMEL_US_RXEN);
-@@ -871,13 +1377,16 @@ static struct console atmel_console = {
+@@ -871,13 +1377,16 @@
static int __init atmel_console_init(void)
{
if (atmel_default_console_device) {
console_initcall(atmel_console_init);
/*
-@@ -885,34 +1394,48 @@ console_initcall(atmel_console_init);
+@@ -885,34 +1394,48 @@
*/
static int __init atmel_late_console_init(void)
{
enable_irq_wake(port->irq);
else {
uart_suspend_port(&atmel_uart, port);
-@@ -925,13 +1448,12 @@ static int atmel_serial_suspend(struct p
+@@ -925,13 +1448,12 @@
static int atmel_serial_resume(struct platform_device *pdev)
{
struct uart_port *port = platform_get_drvdata(pdev);
disable_irq_wake(port->irq);
return 0;
-@@ -944,15 +1466,40 @@ static int atmel_serial_resume(struct pl
+@@ -944,15 +1466,40 @@
static int __devinit atmel_serial_probe(struct platform_device *pdev)
{
struct atmel_uart_port *port;
}
return ret;
-@@ -961,19 +1508,21 @@ static int __devinit atmel_serial_probe(
+@@ -961,19 +1508,21 @@
static int __devexit atmel_serial_remove(struct platform_device *pdev)
{
struct uart_port *port = platform_get_drvdata(pdev);
return ret;
}
-Index: linux-2.6.24.7/drivers/serial/atmel_serial.h
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/atmel_serial.h
+--- a/drivers/serial/atmel_serial.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
-#define ATMEL_US_IF 0x4c /* IrDA Filter Register */
-
-#endif
-Index: linux-2.6.24.7/drivers/serial/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/Kconfig
-+++ linux-2.6.24.7/drivers/serial/Kconfig
-@@ -380,6 +380,21 @@ config SERIAL_ATMEL_CONSOLE
+--- a/drivers/serial/Kconfig
++++ b/drivers/serial/Kconfig
+@@ -380,6 +380,21 @@
console is the device which receives all kernel messages and
warnings and which allows logins in single user mode).
config SERIAL_ATMEL_TTYAT
bool "Install as device ttyATn instead of ttySn"
depends on SERIAL_ATMEL=y
-Index: linux-2.6.24.7/drivers/spi/atmel_spi.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/spi/atmel_spi.c
-+++ linux-2.6.24.7/drivers/spi/atmel_spi.c
-@@ -51,7 +51,9 @@ struct atmel_spi {
+--- a/drivers/spi/atmel_spi.c
++++ b/drivers/spi/atmel_spi.c
+@@ -51,7 +51,9 @@
u8 stopping;
struct list_head queue;
struct spi_transfer *current_transfer;
void *buffer;
dma_addr_t buffer_dma;
-@@ -113,6 +115,16 @@ static void cs_deactivate(struct atmel_s
+@@ -113,6 +115,16 @@
unsigned gpio = (unsigned) spi->controller_data;
unsigned active = spi->mode & SPI_CS_HIGH;
u32 mr;
/* only deactivate *this* device; sometimes transfers to
* another device may be active when this routine is called.
-@@ -131,6 +143,48 @@ static void cs_deactivate(struct atmel_s
+@@ -131,6 +143,48 @@
gpio_set_value(gpio, !active);
}
/*
* Submit next transfer for DMA.
* lock is held, spi irq is blocked
-@@ -140,53 +194,78 @@ static void atmel_spi_next_xfer(struct s
+@@ -140,53 +194,78 @@
{
struct atmel_spi *as = spi_master_get_devdata(master);
struct spi_transfer *xfer;
* transfer because we need to handle some difficult timing
* issues otherwise. If we wait for ENDTX in one transfer and
* then starts waiting for ENDRX in the next, it's difficult
-@@ -196,17 +275,7 @@ static void atmel_spi_next_xfer(struct s
+@@ -196,17 +275,7 @@
*
* It should be doable, though. Just not now...
*/
spi_writel(as, PTCR, SPI_BIT(TXTEN) | SPI_BIT(RXTEN));
}
-@@ -304,6 +373,7 @@ atmel_spi_msg_done(struct spi_master *ma
+@@ -304,6 +373,7 @@
spin_lock(&as->lock);
as->current_transfer = NULL;
/* continue if needed */
if (list_empty(&as->queue) || as->stopping)
-@@ -387,7 +457,7 @@ atmel_spi_interrupt(int irq, void *dev_i
+@@ -387,7 +457,7 @@
spi_writel(as, IDR, pending);
msg->actual_length += xfer->len;
if (!msg->is_dma_mapped)
-@@ -397,7 +467,7 @@ atmel_spi_interrupt(int irq, void *dev_i
+@@ -397,7 +467,7 @@
if (xfer->delay_usecs)
udelay(xfer->delay_usecs);
/* report completed message */
atmel_spi_msg_done(master, as, msg, 0,
xfer->cs_change);
-@@ -500,9 +570,14 @@ static int atmel_spi_setup(struct spi_de
+@@ -500,9 +570,14 @@
if (!(spi->mode & SPI_CPHA))
csr |= SPI_BIT(NCPHA);
/* chipselect must have been muxed as GPIO (e.g. in board setup) */
npcs_pin = (unsigned int)spi->controller_data;
-Index: linux-2.6.24.7/drivers/usb/gadget/atmel_usba_udc.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/usb/gadget/atmel_usba_udc.c
-+++ linux-2.6.24.7/drivers/usb/gadget/atmel_usba_udc.c
+--- a/drivers/usb/gadget/atmel_usba_udc.c
++++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -18,6 +18,7 @@
#include <linux/platform_device.h>
#include <linux/usb/ch9.h>
#ifdef CONFIG_USB_GADGET_DEBUG_FS
#include <linux/debugfs.h>
-@@ -324,53 +326,6 @@ static int vbus_is_present(struct usba_u
+@@ -324,53 +326,6 @@
return 1;
}
static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
{
unsigned int transaction_len;
-@@ -387,7 +342,7 @@ static void next_fifo_transaction(struct
+@@ -387,7 +342,7 @@
ep->ep.name, req, transaction_len,
req->last_transaction ? ", done" : "");
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
req->req.actual += transaction_len;
}
-@@ -476,7 +431,7 @@ static void receive_data(struct usba_ep
+@@ -476,7 +431,7 @@
bytecount = req->req.length - req->req.actual;
}
ep->fifo, bytecount);
req->req.actual += bytecount;
-@@ -1029,33 +984,6 @@ static const struct usb_gadget_ops usba_
+@@ -1029,33 +984,6 @@
.set_selfpowered = usba_udc_set_selfpowered,
};
static struct usb_endpoint_descriptor usba_ep0_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
-@@ -1074,7 +1002,6 @@ static void nop_release(struct device *d
+@@ -1074,7 +1002,6 @@
static struct usba_udc the_udc = {
.gadget = {
.ops = &usba_udc_ops,
.ep_list = LIST_HEAD_INIT(the_udc.gadget.ep_list),
.is_dualspeed = 1,
.name = "atmel_usba_udc",
-@@ -1231,7 +1158,7 @@ static int do_test_mode(struct usba_udc
+@@ -1231,7 +1158,7 @@
} else {
usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
usba_writel(udc, TST, USBA_TST_PKT_MODE);
sizeof(test_packet_buffer));
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
dev_info(dev, "Entering Test_Packet mode...\n");
-@@ -1539,7 +1466,7 @@ restart:
+@@ -1539,7 +1466,7 @@
}
DBG(DBG_FIFO, "Copying ctrl request from 0x%p:\n", ep->fifo);
/* Free up one bank in the FIFO so that we can
* generate or receive a reply right away. */
-@@ -1911,7 +1838,7 @@ static int __init usba_udc_probe(struct
+@@ -1911,7 +1838,7 @@
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
return -ENXIO;
irq = platform_get_irq(pdev, 0);
-@@ -1959,16 +1886,44 @@ static int __init usba_udc_probe(struct
+@@ -1959,16 +1886,44 @@
usba_writel(udc, CTRL, 0);
clk_disable(pclk);
list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
}
-@@ -1987,7 +1942,7 @@ static int __init usba_udc_probe(struct
+@@ -1987,7 +1942,7 @@
goto err_device_add;
}
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin;
-@@ -2007,7 +1962,7 @@ static int __init usba_udc_probe(struct
+@@ -2007,7 +1962,7 @@
}
usba_init_debugfs(udc);
usba_ep_init_debugfs(udc, &usba_ep[i]);
return 0;
-@@ -2015,6 +1970,8 @@ static int __init usba_udc_probe(struct
+@@ -2015,6 +1970,8 @@
err_device_add:
free_irq(irq, udc);
err_request_irq:
iounmap(udc->fifo);
err_map_fifo:
iounmap(udc->regs);
-@@ -2032,10 +1989,11 @@ static int __exit usba_udc_remove(struct
+@@ -2032,10 +1989,11 @@
{
struct usba_udc *udc;
int i;
usba_ep_cleanup_debugfs(&usba_ep[i]);
usba_cleanup_debugfs(udc);
-Index: linux-2.6.24.7/drivers/video/atmel_lcdfb.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/video/atmel_lcdfb.c
-+++ linux-2.6.24.7/drivers/video/atmel_lcdfb.c
+--- a/drivers/video/atmel_lcdfb.c
++++ b/drivers/video/atmel_lcdfb.c
@@ -16,6 +16,7 @@
#include <linux/fb.h>
#include <linux/init.h>
static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
struct fb_var_screeninfo *var)
-@@ -69,12 +72,113 @@ static void atmel_lcdfb_update_dma2d(str
+@@ -69,12 +72,113 @@
}
#endif
.ywrapstep = 0,
.accel = FB_ACCEL_NONE,
};
-@@ -148,6 +252,8 @@ static int atmel_lcdfb_alloc_video_memor
+@@ -148,6 +252,8 @@
return -ENOMEM;
}
return 0;
}
-@@ -203,6 +309,26 @@ static int atmel_lcdfb_check_var(struct
+@@ -203,6 +309,26 @@
var->transp.offset = var->transp.length = 0;
var->xoffset = var->yoffset = 0;
switch (var->bits_per_pixel) {
case 1:
case 2:
-@@ -370,10 +496,6 @@ static int atmel_lcdfb_set_par(struct fb
+@@ -370,10 +496,6 @@
/* Disable all interrupts */
lcdc_writel(sinfo, ATMEL_LCDC_IDR, ~0UL);
/* ...wait for DMA engine to become idle... */
while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
msleep(10);
-@@ -516,7 +638,6 @@ static int __init atmel_lcdfb_init_fbinf
+@@ -516,7 +638,6 @@
struct fb_info *info = sinfo->info;
int ret = 0;
info->var.activate |= FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
dev_info(info->device,
-@@ -577,6 +698,7 @@ static int __init atmel_lcdfb_probe(stru
+@@ -577,6 +698,7 @@
sinfo->default_monspecs = pdata_sinfo->default_monspecs;
sinfo->atmel_lcdfb_power_control = pdata_sinfo->atmel_lcdfb_power_control;
sinfo->guard_time = pdata_sinfo->guard_time;
} else {
dev_err(dev, "cannot get default configuration\n");
goto free_info;
-@@ -645,6 +767,11 @@ static int __init atmel_lcdfb_probe(stru
+@@ -645,6 +767,11 @@
info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
if (!info->screen_base)
goto release_intmem;
} else {
/* alocate memory buffer */
ret = atmel_lcdfb_alloc_video_memory(sinfo);
-@@ -670,6 +797,9 @@ static int __init atmel_lcdfb_probe(stru
+@@ -670,6 +797,9 @@
goto release_mem;
}
/* interrupt */
ret = request_irq(sinfo->irq_base, atmel_lcdfb_interrupt, 0, pdev->name, info);
if (ret) {
-@@ -721,6 +851,7 @@ free_cmap:
+@@ -721,6 +851,7 @@
unregister_irqs:
free_irq(sinfo->irq_base, info);
unmap_mmio:
iounmap(sinfo->mmio);
release_mem:
release_mem_region(info->fix.mmio_start, info->fix.mmio_len);
-@@ -755,6 +886,7 @@ static int __exit atmel_lcdfb_remove(str
+@@ -755,6 +886,7 @@
if (!sinfo)
return 0;
if (sinfo->atmel_lcdfb_power_control)
sinfo->atmel_lcdfb_power_control(0);
unregister_framebuffer(info);
-@@ -781,6 +913,9 @@ static int __exit atmel_lcdfb_remove(str
+@@ -781,6 +913,9 @@
static struct platform_driver atmel_lcdfb_driver = {
.remove = __exit_p(atmel_lcdfb_remove),
.driver = {
.name = "atmel_lcdfb",
.owner = THIS_MODULE,
-Index: linux-2.6.24.7/drivers/video/backlight/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/video/backlight/Kconfig
-+++ linux-2.6.24.7/drivers/video/backlight/Kconfig
-@@ -50,6 +50,19 @@ config BACKLIGHT_CLASS_DEVICE
+--- a/drivers/video/backlight/Kconfig
++++ b/drivers/video/backlight/Kconfig
+@@ -50,6 +50,19 @@
To have support for your specific LCD panel you will have to
select the proper drivers which depend on this option.
config BACKLIGHT_CORGI
tristate "Generic (aka Sharp Corgi) Backlight Driver"
depends on BACKLIGHT_CLASS_DEVICE
-Index: linux-2.6.24.7/drivers/video/console/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/video/console/Kconfig
-+++ linux-2.6.24.7/drivers/video/console/Kconfig
-@@ -6,7 +6,7 @@ menu "Console display driver support"
+--- a/drivers/video/console/Kconfig
++++ b/drivers/video/console/Kconfig
+@@ -6,7 +6,7 @@
config VGA_CONSOLE
bool "VGA text console" if EMBEDDED || !X86
default y
help
Saying Y here will allow you to use Linux in text mode through a
-Index: linux-2.6.24.7/drivers/watchdog/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/watchdog/Kconfig
-+++ linux-2.6.24.7/drivers/watchdog/Kconfig
-@@ -223,7 +223,7 @@ config DAVINCI_WATCHDOG
+--- a/drivers/watchdog/Kconfig
++++ b/drivers/watchdog/Kconfig
+@@ -223,7 +223,7 @@
config AT32AP700X_WDT
tristate "AT32AP700x watchdog"
help
Watchdog timer embedded into AT32AP700x devices. This will reboot
your system when the timeout is reached.
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/at32ap7000.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/at32ap7000.h
+--- a/include/asm-avr32/arch-at32ap/at32ap7000.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-#define GPIO_PIN_PE(N) (GPIO_PIOE_BASE + (N))
-
-#endif /* __ASM_ARCH_AT32AP7000_H__ */
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/at32ap700x.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/at32ap700x.h
++++ b/include/asm-avr32/arch-at32ap/at32ap700x.h
@@ -0,0 +1,35 @@
+/*
+ * Pin definitions for AT32AP7000.
+#define GPIO_PIN_PE(N) (GPIO_PIOE_BASE + (N))
+
+#endif /* __ASM_ARCH_AT32AP700X_H__ */
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/board.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/board.h
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/board.h
-@@ -38,9 +38,7 @@ struct platform_device *
+--- a/include/asm-avr32/arch-at32ap/board.h
++++ b/include/asm-avr32/arch-at32ap/board.h
+@@ -38,9 +38,7 @@
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
unsigned long fbmem_start, unsigned long fbmem_len);
struct platform_device *
at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
-@@ -51,6 +49,9 @@ struct platform_device *
+@@ -51,6 +49,9 @@
at32_add_device_ide(unsigned int id, unsigned int extint,
struct ide_platform_data *data);
/* depending on what's hooked up, not all SSC pins will be used */
#define ATMEL_SSC_TK 0x01
#define ATMEL_SSC_TF 0x02
-@@ -65,8 +66,17 @@ at32_add_device_ide(unsigned int id, uns
+@@ -65,8 +66,17 @@
struct platform_device *
at32_add_device_ssc(unsigned int id, unsigned int flags);
struct platform_device *at32_add_device_ac97c(unsigned int id);
struct platform_device *at32_add_device_abdac(unsigned int id);
-@@ -81,4 +91,7 @@ struct platform_device *
+@@ -81,4 +91,7 @@
at32_add_device_cf(unsigned int id, unsigned int extint,
struct cf_platform_data *data);
+at32_add_device_psif(unsigned int id);
+
#endif /* __ASM_ARCH_BOARD_H */
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/cpu.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/cpu.h
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/cpu.h
+--- a/include/asm-avr32/arch-at32ap/cpu.h
++++ b/include/asm-avr32/arch-at32ap/cpu.h
@@ -14,7 +14,7 @@
* Only AT32AP7000 is defined for now. We can identify the specific
* chip at runtime, but I'm not sure if it's really worth it.
# define cpu_is_at32ap7000() (1)
#else
# define cpu_is_at32ap7000() (0)
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/io.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/io.h
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/io.h
+--- a/include/asm-avr32/arch-at32ap/io.h
++++ b/include/asm-avr32/arch-at32ap/io.h
@@ -4,7 +4,7 @@
/* For "bizarre" halfword swapping */
#include <linux/byteorder/swabb.h>
# define __swizzle_addr_b(addr) (addr ^ 1UL)
# define __swizzle_addr_w(addr) (addr)
# define __swizzle_addr_l(addr) (addr)
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/pm.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/pm.h
++++ b/include/asm-avr32/arch-at32ap/pm.h
@@ -0,0 +1,48 @@
+/*
+ * AVR32 AP Power Management.
+#endif
+
+#endif /* __ASM_AVR32_ARCH_PM_H */
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/portmux.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/portmux.h
-+++ linux-2.6.24.7/include/asm-avr32/arch-at32ap/portmux.h
-@@ -26,4 +26,16 @@ void at32_select_periph(unsigned int pin
+--- a/include/asm-avr32/arch-at32ap/portmux.h
++++ b/include/asm-avr32/arch-at32ap/portmux.h
+@@ -26,4 +26,16 @@
void at32_select_gpio(unsigned int pin, unsigned long flags);
void at32_reserve_pin(unsigned int pin);
+#endif /* CONFIG_GPIO_DEV */
+
#endif /* __ASM_ARCH_PORTMUX_H__ */
-Index: linux-2.6.24.7/include/asm-avr32/arch-at32ap/time.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/arch-at32ap/time.h
+--- a/include/asm-avr32/arch-at32ap/time.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- __raw_writel((value), port + (0x40 * instance) + TIMER_##reg)
-
-#endif /* _ASM_AVR32_ARCH_AT32AP_TIME_H */
-Index: linux-2.6.24.7/include/asm-avr32/asm.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/asm.h
-+++ linux-2.6.24.7/include/asm-avr32/asm.h
+--- a/include/asm-avr32/asm.h
++++ b/include/asm-avr32/asm.h
@@ -12,10 +12,10 @@
#include <asm/asm-offsets.h>
#include <asm/thread_info.h>
#ifdef CONFIG_FRAME_POINTER
.macro save_fp
-Index: linux-2.6.24.7/include/asm-avr32/byteorder.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/byteorder.h
-+++ linux-2.6.24.7/include/asm-avr32/byteorder.h
-@@ -12,8 +12,10 @@ extern unsigned long __builtin_bswap_32(
+--- a/include/asm-avr32/byteorder.h
++++ b/include/asm-avr32/byteorder.h
+@@ -12,8 +12,10 @@
extern unsigned short __builtin_bswap_16(unsigned short x);
#endif
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
# define __BYTEORDER_HAS_U64__
-Index: linux-2.6.24.7/include/asm-avr32/dma-controller.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-avr32/dma-controller.h
++++ b/include/asm-avr32/dma-controller.h
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2005-2006 Atmel Corporation
+extern struct dma_controller *find_dma_controller(int id);
+
+#endif /* __ASM_AVR32_DMA_CONTROLLER_H */
-Index: linux-2.6.24.7/include/asm-avr32/intc.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/intc.h
+--- a/include/asm-avr32/intc.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef __ASM_AVR32_INTC_H
-extern int intc_register_controller(struct irq_controller *ctrl);
-
-#endif /* __ASM_AVR32_INTC_H */
-Index: linux-2.6.24.7/include/asm-avr32/irq.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/irq.h
-+++ linux-2.6.24.7/include/asm-avr32/irq.h
+--- a/include/asm-avr32/irq.h
++++ b/include/asm-avr32/irq.h
@@ -11,4 +11,14 @@
#define irq_canonicalize(i) (i)
+#endif
+
#endif /* __ASM_AVR32_IOCTLS_H */
-Index: linux-2.6.24.7/include/asm-avr32/kdebug.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/kdebug.h
-+++ linux-2.6.24.7/include/asm-avr32/kdebug.h
+--- a/include/asm-avr32/kdebug.h
++++ b/include/asm-avr32/kdebug.h
@@ -5,6 +5,7 @@
enum die_val {
DIE_BREAKPOINT,
};
#endif /* __ASM_AVR32_KDEBUG_H */
-Index: linux-2.6.24.7/include/asm-avr32/ocd.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/ocd.h
-+++ linux-2.6.24.7/include/asm-avr32/ocd.h
-@@ -533,6 +533,11 @@ static inline void __ocd_write(unsigned
+--- a/include/asm-avr32/ocd.h
++++ b/include/asm-avr32/ocd.h
+@@ -533,6 +533,11 @@
#define ocd_read(reg) __ocd_read(OCD_##reg)
#define ocd_write(reg, value) __ocd_write(OCD_##reg, value)
#endif /* !__ASSEMBLER__ */
#endif /* __ASM_AVR32_OCD_H */
-Index: linux-2.6.24.7/include/asm-avr32/pgtable.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/pgtable.h
-+++ linux-2.6.24.7/include/asm-avr32/pgtable.h
-@@ -157,6 +157,7 @@ extern struct page *empty_zero_page;
+--- a/include/asm-avr32/pgtable.h
++++ b/include/asm-avr32/pgtable.h
+@@ -157,6 +157,7 @@
#define _PAGE_S(x) _PAGE_NORMAL(x)
#define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ)
#ifndef __ASSEMBLY__
/*
-Index: linux-2.6.24.7/include/asm-avr32/processor.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/processor.h
-+++ linux-2.6.24.7/include/asm-avr32/processor.h
-@@ -57,11 +57,25 @@ struct avr32_cpuinfo {
+--- a/include/asm-avr32/processor.h
++++ b/include/asm-avr32/processor.h
+@@ -57,11 +57,25 @@
unsigned short cpu_revision;
enum tlb_config tlb_config;
unsigned long features;
extern struct avr32_cpuinfo boot_cpu_data;
#ifdef CONFIG_SMP
-Index: linux-2.6.24.7/include/asm-avr32/ptrace.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/ptrace.h
-+++ linux-2.6.24.7/include/asm-avr32/ptrace.h
-@@ -121,7 +121,15 @@ struct pt_regs {
+--- a/include/asm-avr32/ptrace.h
++++ b/include/asm-avr32/ptrace.h
+@@ -121,7 +121,15 @@
};
#ifdef __KERNEL__
extern void show_regs (struct pt_regs *);
static __inline__ int valid_user_regs(struct pt_regs *regs)
-@@ -141,9 +149,6 @@ static __inline__ int valid_user_regs(st
+@@ -141,9 +149,6 @@
return 0;
}
#endif /* __KERNEL__ */
-Index: linux-2.6.24.7/include/asm-avr32/thread_info.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-avr32/thread_info.h
-+++ linux-2.6.24.7/include/asm-avr32/thread_info.h
-@@ -88,6 +88,7 @@ static inline struct thread_info *curren
+--- a/include/asm-avr32/thread_info.h
++++ b/include/asm-avr32/thread_info.h
+@@ -88,6 +88,7 @@
#define TIF_MEMDIE 6
#define TIF_RESTORE_SIGMASK 7 /* restore signal mask in do_signal */
#define TIF_CPU_GOING_TO_SLEEP 8 /* CPU is entering sleep 0 mode */
#define TIF_USERSPACE 31 /* true if FS sets userspace */
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
-Index: linux-2.6.24.7/include/linux/atmel_pwm.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/linux/atmel_pwm.h
++++ b/include/linux/atmel_pwm.h
@@ -0,0 +1,70 @@
+#ifndef __LINUX_ATMEL_PWM_H
+#define __LINUX_ATMEL_PWM_H
+}
+
+#endif /* __LINUX_ATMEL_PWM_H */
-Index: linux-2.6.24.7/include/linux/atmel_serial.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/linux/atmel_serial.h
++++ b/include/linux/atmel_serial.h
@@ -0,0 +1,127 @@
+/*
+ * include/linux/atmel_serial.h
+#define ATMEL_US_IF 0x4c /* IrDA Filter Register */
+
+#endif
-Index: linux-2.6.24.7/include/linux/atmel_tc.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/linux/atmel_tc.h
++++ b/include/linux/atmel_tc.h
@@ -0,0 +1,252 @@
+/*
+ * Timer/Counter Unit (TC) registers.
+#define ATMEL_TC_ETRGS (1 << 7) /* external trigger */
+
+#endif
-Index: linux-2.6.24.7/include/linux/usb/atmel_usba_udc.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/linux/usb/atmel_usba_udc.h
++++ b/include/linux/usb/atmel_usba_udc.h
@@ -0,0 +1,22 @@
+/*
+ * Platform data definitions for Atmel USBA gadget driver.
+};
+
+#endif /* __LINUX_USB_USBA_H */
-Index: linux-2.6.24.7/include/video/atmel_lcdc.h
-===================================================================
---- linux-2.6.24.7.orig/include/video/atmel_lcdc.h
-+++ linux-2.6.24.7/include/video/atmel_lcdc.h
+--- a/include/video/atmel_lcdc.h
++++ b/include/video/atmel_lcdc.h
@@ -22,7 +22,7 @@
#ifndef __ATMEL_LCDC_H__
#define __ATMEL_LCDC_H__
struct atmel_lcdfb_info {
spinlock_t lock;
struct fb_info *info;
-@@ -33,7 +33,14 @@ struct atmel_lcdfb_info {
+@@ -33,7 +33,14 @@
struct platform_device *pdev;
struct clk *bus_clk;
struct clk *lcdc_clk;
unsigned int default_lcdcon2;
unsigned int default_dmacon;
void (*atmel_lcdfb_power_control)(int on);
-@@ -115,20 +122,20 @@ struct atmel_lcdfb_info {
+@@ -115,20 +122,20 @@
#define ATMEL_LCDC_MEMOR_LITTLE (1 << 31)
#define ATMEL_LCDC_TIM1 0x0808
#define ATMEL_LCDC_LCDFRMCFG 0x0810
#define ATMEL_LCDC_LINEVAL (0x7ff << 0)
-Index: linux-2.6.24.7/init/do_mounts.c
-===================================================================
---- linux-2.6.24.7.orig/init/do_mounts.c
-+++ linux-2.6.24.7/init/do_mounts.c
-@@ -219,8 +219,14 @@ __setup("root=", root_dev_setup);
+--- a/init/do_mounts.c
++++ b/init/do_mounts.c
+@@ -219,8 +219,14 @@
static int __init rootwait_setup(char *str)
{
root_wait = 1;
return 1;
}
-Index: linux-2.6.24.7/kernel/ptrace.c
-===================================================================
---- linux-2.6.24.7.orig/kernel/ptrace.c
-+++ linux-2.6.24.7/kernel/ptrace.c
-@@ -470,6 +470,8 @@ asmlinkage long sys_ptrace(long request,
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
+@@ -470,6 +470,8 @@
lock_kernel();
if (request == PTRACE_TRACEME) {
ret = ptrace_traceme();
goto out;
}
-Index: linux-2.6.24.7/MAINTAINERS
-===================================================================
---- linux-2.6.24.7.orig/MAINTAINERS
-+++ linux-2.6.24.7/MAINTAINERS
-@@ -671,6 +671,12 @@ W: http://www.atmel.com/products/AT91/
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -671,6 +671,12 @@
W: http://www.at91.com/
S: Maintained
ATMEL LCDFB DRIVER
P: Nicolas Ferre
M: nicolas.ferre@atmel.com
-Index: linux-2.6.24.7/sound/avr32/ac97c.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/avr32/ac97c.c
++++ b/sound/avr32/ac97c.c
@@ -0,0 +1,914 @@
+/*
+ * Driver for the Atmel AC97 controller
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Driver for Atmel AC97 Controller");
+MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>");
-Index: linux-2.6.24.7/sound/avr32/ac97c.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/avr32/ac97c.h
++++ b/sound/avr32/ac97c.h
@@ -0,0 +1,71 @@
+/*
+ * Register definitions for the Atmel AC97 Controller.
+#define AC97C_CHANNEL_B 0x2
+
+#endif /* __SOUND_AVR32_AC97C_H */
-Index: linux-2.6.24.7/sound/avr32/Kconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/avr32/Kconfig
++++ b/sound/avr32/Kconfig
@@ -0,0 +1,11 @@
+menu "AVR32 devices"
+ depends on SND != n && AVR32
+ ALSA sound driver for the Atmel AC97 controller.
+
+endmenu
-Index: linux-2.6.24.7/sound/avr32/Makefile
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/avr32/Makefile
++++ b/sound/avr32/Makefile
@@ -0,0 +1,3 @@
+snd-atmel-ac97-objs := ac97c.o
+
+obj-$(CONFIG_SND_ATMEL_AC97) += snd-atmel-ac97.o
-Index: linux-2.6.24.7/sound/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/sound/Kconfig
-+++ linux-2.6.24.7/sound/Kconfig
-@@ -63,6 +63,8 @@ source "sound/aoa/Kconfig"
+--- a/sound/Kconfig
++++ b/sound/Kconfig
+@@ -63,6 +63,8 @@
source "sound/arm/Kconfig"
if SPI
source "sound/spi/Kconfig"
endif
-Index: linux-2.6.24.7/sound/Makefile
-===================================================================
---- linux-2.6.24.7.orig/sound/Makefile
-+++ linux-2.6.24.7/sound/Makefile
-@@ -6,7 +6,7 @@ obj-$(CONFIG_SOUND_PRIME) += sound_firmw
+--- a/sound/Makefile
++++ b/sound/Makefile
+@@ -6,7 +6,7 @@
obj-$(CONFIG_SOUND_PRIME) += oss/
obj-$(CONFIG_DMASOUND) += oss/
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
obj-$(CONFIG_SND_AOA) += aoa/
# This one must be compilable even if sound is configured out
-Index: linux-2.6.24.7/sound/oss/at32_abdac.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/oss/at32_abdac.c
++++ b/sound/oss/at32_abdac.c
@@ -0,0 +1,722 @@
+/*
+ * OSS Sound Driver for the Atmel AT32 on-chip DAC.
+MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>");
+MODULE_DESCRIPTION("Sound Driver for the Atmel AT32 ABDAC");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/sound/oss/at32_abdac.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/sound/oss/at32_abdac.h
++++ b/sound/oss/at32_abdac.h
@@ -0,0 +1,59 @@
+/*
+ * Register definitions for the Atmel AT32 on-chip DAC.
+ __raw_writel((value), (port)->regs + DAC_##reg)
+
+#endif /* __SOUND_OSS_AT32_ABDAC_H__ */
-Index: linux-2.6.24.7/sound/oss/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/sound/oss/Kconfig
-+++ linux-2.6.24.7/sound/oss/Kconfig
-@@ -654,3 +654,7 @@ config SOUND_SH_DAC_AUDIO_CHANNEL
+--- a/sound/oss/Kconfig
++++ b/sound/oss/Kconfig
+@@ -654,3 +654,7 @@
int "DAC channel"
default "1"
depends on SOUND_SH_DAC_AUDIO
+config SOUND_AT32_ABDAC
+ tristate "Atmel AT32 Audio Bitstream DAC (ABDAC) support"
+ depends on SOUND_PRIME && AVR32
-Index: linux-2.6.24.7/sound/oss/Makefile
-===================================================================
---- linux-2.6.24.7.orig/sound/oss/Makefile
-+++ linux-2.6.24.7/sound/oss/Makefile
-@@ -10,6 +10,7 @@ obj-$(CONFIG_SOUND_CS4232) += cs4232.o a
+--- a/sound/oss/Makefile
++++ b/sound/oss/Makefile
+@@ -10,6 +10,7 @@
# Please leave it as is, cause the link order is significant !
obj-$(CONFIG_SOUND_SH_DAC_AUDIO) += sh_dac_audio.o
obj-$(CONFIG_SOUND_HAL2) += hal2.o
obj-$(CONFIG_SOUND_AEDSP16) += aedsp16.o
-Index: linux-2.6.24.7/sound/spi/at73c213.c
-===================================================================
---- linux-2.6.24.7.orig/sound/spi/at73c213.c
-+++ linux-2.6.24.7/sound/spi/at73c213.c
-@@ -744,7 +744,7 @@ cleanup:
+--- a/sound/spi/at73c213.c
++++ b/sound/spi/at73c213.c
+@@ -744,7 +744,7 @@
/*
* Device functions
*/
{
/*
* Continuous clock output.
-@@ -774,7 +774,7 @@ static int snd_at73c213_ssc_init(struct
+@@ -774,7 +774,7 @@
return 0;
}
{
int retval;
unsigned char dac_ctrl = 0;
-@@ -939,7 +939,7 @@ out:
+@@ -939,7 +939,7 @@
return retval;
}