From ec2cc68421e427581581d040b1a6060f094ed8d1 Mon Sep 17 00:00:00 2001 From: Imre Kaloz Date: Tue, 25 Nov 2008 13:49:57 +0000 Subject: [PATCH] upgrade avr32 to 2.6.27 SVN-Revision: 13345 --- target/linux/avr32/Makefile | 2 +- target/linux/avr32/config-default | 4 +- target/linux/avr32/patches/100-git_sync.patch | 16677 ---------------- 3 files changed, 4 insertions(+), 16679 deletions(-) delete mode 100644 target/linux/avr32/patches/100-git_sync.patch diff --git a/target/linux/avr32/Makefile b/target/linux/avr32/Makefile index e07cb9aaa60..67524d95f15 100644 --- a/target/linux/avr32/Makefile +++ b/target/linux/avr32/Makefile @@ -10,7 +10,7 @@ ARCH:=avr32 BOARD:=avr32 BOARDNAME:=Atmel AVR32 FEATURES:=squashfs -LINUX_VERSION:=2.6.25.20 +LINUX_VERSION:=2.6.27.7 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/avr32/config-default b/target/linux/avr32/config-default index 8a0692a60e3..60a901a3e9d 100644 --- a/target/linux/avr32/config-default +++ b/target/linux/avr32/config-default @@ -41,6 +41,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_GPIO=y # CONFIG_GPIO_DEV is not set +# CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MCP23S08 is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set @@ -139,6 +140,7 @@ CONFIG_QUICKLIST=y # CONFIG_REALTEK_PHY is not set CONFIG_RTC_CLASS=m CONFIG_RTC_DRV_AT32AP700X=m +# CONFIG_RTC_DRV_DS1305 is not set # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1553 is not set @@ -148,6 +150,7 @@ CONFIG_RTC_DRV_AT32AP700X=m # CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M41T94 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_RS5C372 is not set @@ -185,7 +188,6 @@ CONFIG_SPI_MASTER=y CONFIG_SSB_POSSIBLE=y CONFIG_SUBARCH_AVR32B=y CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_THERMAL is not set CONFIG_TICK_ONESHOT=y # CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB_ARCH_HAS_HCD is not set diff --git a/target/linux/avr32/patches/100-git_sync.patch b/target/linux/avr32/patches/100-git_sync.patch deleted file mode 100644 index 6c9fe1eb669..00000000000 --- a/target/linux/avr32/patches/100-git_sync.patch +++ /dev/null @@ -1,16677 +0,0 @@ ---- a/Documentation/serial/driver -+++ b/Documentation/serial/driver -@@ -186,6 +186,17 @@ hardware. - Locking: port_sem taken. - Interrupts: caller dependent. - -+ flush_buffer(port) -+ Flush any write buffers, reset any DMA state and stop any -+ ongoing DMA transfers. -+ -+ This will be called whenever the port->info->xmit circular -+ buffer is cleared. -+ -+ Locking: port->lock taken. -+ Interrupts: locally disabled. -+ This call must not sleep -+ - set_termios(port,termios,oldtermios) - Change the port parameters, including word length, parity, stop - bits. Update read_status_mask and ignore_status_mask to indicate ---- a/arch/avr32/Kconfig -+++ b/arch/avr32/Kconfig -@@ -47,6 +47,9 @@ config RWSEM_GENERIC_SPINLOCK - config GENERIC_TIME - def_bool y - -+config GENERIC_CLOCKEVENTS -+ def_bool y -+ - config RWSEM_XCHGADD_ALGORITHM - def_bool n - -@@ -70,6 +73,8 @@ source "init/Kconfig" - - menu "System Type and features" - -+source "kernel/time/Kconfig" -+ - config SUBARCH_AVR32B - bool - config MMU -@@ -83,6 +88,7 @@ config PLATFORM_AT32AP - select MMU - select PERFORMANCE_COUNTERS - select HAVE_GPIO_LIB -+ select GENERIC_ALLOCATOR - - # - # CPU types -@@ -117,6 +123,9 @@ endchoice - if BOARD_ATSTK1000 - source "arch/avr32/boards/atstk1000/Kconfig" - endif -+if BOARD_ATNGW100 -+source "arch/avr32/boards/atngw100/Kconfig" -+endif - - choice - prompt "Boot loader type" -@@ -142,6 +151,9 @@ config PHYS_OFFSET - - source "kernel/Kconfig.preempt" - -+config QUICKLIST -+ def_bool y -+ - config HAVE_ARCH_BOOTMEM_NODE - def_bool n - -@@ -180,6 +192,10 @@ config NMI_DEBUGGING - be dumped to the console when a Non-Maskable Interrupt - happens. - -+config DW_DMAC -+ tristate "Synopsys DesignWare DMA Controller support" -+ default y if CPU_AT32AP7000 -+ - # FPU emulation goes here - - source "kernel/Kconfig.hz" -@@ -196,6 +212,11 @@ endmenu - - menu "Power management options" - -+config ARCH_SUSPEND_POSSIBLE -+ def_bool y -+ -+source "kernel/power/Kconfig" -+ - menu "CPU Frequency scaling" - - source "drivers/cpufreq/Kconfig" ---- a/arch/avr32/Makefile -+++ b/arch/avr32/Makefile -@@ -32,6 +32,7 @@ core-$(CONFIG_LOADER_U_BOOT) += arch/av - core-y += arch/avr32/kernel/ - core-y += arch/avr32/mm/ - drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/ -+drivers-y += arch/avr32/drivers/ - libs-y += arch/avr32/lib/ - - archincdir-$(CONFIG_PLATFORM_AT32AP) := arch-at32ap ---- /dev/null -+++ b/arch/avr32/boards/atngw100/Kconfig -@@ -0,0 +1,12 @@ -+# NGW100 customization -+ -+config BOARD_ATNGW100_I2C_GPIO -+ bool "Use GPIO for i2c instead of built-in TWI module" -+ help -+ The driver for the built-in TWI module has been plagued by -+ various problems, while the i2c-gpio driver is based on the -+ trusty old i2c-algo-bit bitbanging engine, making it work -+ on pretty much any setup. -+ -+ Choose 'Y' here if you're having i2c-related problems and -+ want to rule out the i2c bus driver. ---- a/arch/avr32/boards/atngw100/setup.c -+++ b/arch/avr32/boards/atngw100/setup.c -@@ -25,6 +25,13 @@ - #include - #include - -+/* Oscillator frequencies. These are board-specific */ -+unsigned long at32_board_osc_rates[3] = { -+ [0] = 32768, /* 32.768 kHz on RTC osc */ -+ [1] = 20000000, /* 20 MHz on osc0 */ -+ [2] = 12000000, /* 12 MHz on osc1 */ -+}; -+ - /* Initialized by bootloader-specific startup code. */ - struct tag *bootloader_tags __initdata; - -@@ -37,11 +44,16 @@ static struct eth_platform_data __initda - static struct spi_board_info spi0_board_info[] __initdata = { - { - .modalias = "mtd_dataflash", -- .max_speed_hz = 10000000, -+ .max_speed_hz = 8000000, - .chip_select = 0, - }, - }; - -+static struct mci_platform_data __initdata mci0_data = { -+ .detect_pin = GPIO_PIN_PC(25), -+ .wp_pin = GPIO_PIN_PE(0), -+}; -+ - /* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid -@@ -124,6 +136,7 @@ static struct platform_device ngw_gpio_l - } - }; - -+#ifdef CONFIG_BOARD_ATNGW100_I2C_GPIO - static struct i2c_gpio_platform_data i2c_gpio_data = { - .sda_pin = GPIO_PIN_PA(6), - .scl_pin = GPIO_PIN_PA(7), -@@ -139,6 +152,7 @@ static struct platform_device i2c_gpio_d - .platform_data = &i2c_gpio_data, - }, - }; -+#endif - - static int __init atngw100_init(void) - { -@@ -157,6 +171,7 @@ static int __init atngw100_init(void) - 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_mci(0, &mci0_data); - at32_add_device_usba(0, NULL); - - for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) { -@@ -165,11 +180,15 @@ static int __init atngw100_init(void) - } - platform_device_register(&ngw_gpio_leds); - -+#ifdef CONFIG_BOARD_ATNGW100_I2C_GPIO - at32_select_gpio(i2c_gpio_data.sda_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - at32_select_gpio(i2c_gpio_data.scl_pin, - AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); - platform_device_register(&i2c_gpio_device); -+#else -+ at32_add_device_twi(0, NULL, 0); -+#endif - - return 0; - } ---- a/arch/avr32/boards/atstk1000/Kconfig -+++ b/arch/avr32/boards/atstk1000/Kconfig -@@ -18,6 +18,10 @@ config BOARD_ATSTK1004 - bool "ATSTK1004" - select CPU_AT32AP7002 - -+config BOARD_ATSTK1006 -+ bool "ATSTK1006" -+ select CPU_AT32AP7000 -+ - endchoice - - -@@ -102,4 +106,60 @@ config BOARD_ATSTK1000_EXTDAC - depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM - default y - -+config BOARD_ATSTK100X_ENABLE_AC97 -+ bool "Use AC97C instead of ABDAC" -+ help -+ Select this if you want to use the built-in AC97 controller -+ instead of the built-in Audio Bitstream DAC. These share -+ the same I/O pins on the AP7000, so both can't be enabled -+ at the same time. -+ -+ Note that the STK1000 kit doesn't ship with an AC97 codec on -+ board, so say N unless you've got an expansion board with an -+ AC97 codec on it that you want to use. -+ -+config BOARD_ATSTK1000_CF_HACKS -+ bool "ATSTK1000 CompactFlash hacks" -+ depends on !BOARD_ATSTK100X_SW4_CUSTOM -+ help -+ Select this if you have re-routed the CompactFlash RESET and -+ CD signals to GPIOs on your STK1000. This is necessary for -+ reset and card detection to work properly, although some CF -+ cards may be able to cope without reset. -+ -+config BOARD_ATSTK1000_CF_RESET_PIN -+ hex "CompactFlash RESET pin" -+ default 0x30 -+ depends on BOARD_ATSTK1000_CF_HACKS -+ help -+ Select which GPIO pin to use for the CompactFlash RESET -+ signal. This is specified as a hexadecimal number and should -+ be defined as 0x20 * gpio_port + pin. -+ -+ The default is 0x30, which is pin 16 on PIOB, aka GPIO14. -+ -+config BOARD_ATSTK1000_CF_DETECT_PIN -+ hex "CompactFlash DETECT pin" -+ default 0x3e -+ depends on BOARD_ATSTK1000_CF_HACKS -+ help -+ Select which GPIO pin to use for the CompactFlash CD -+ signal. This is specified as a hexadecimal number and should -+ be defined as 0x20 * gpio_port + pin. -+ -+ The default is 0x3e, which is pin 30 on PIOB, aka GPIO15. -+ -+config BOARD_ATSTK100X_ENABLE_PSIF -+ bool "Enable PSIF peripheral (PS/2 support)" -+ default n -+ help -+ Select this if you want to use the PSIF peripheral to hook up PS/2 -+ devices to your STK1000. This will require a hardware modification to -+ work correctly, since PS/2 devices require 5 volt power and signals, -+ while the STK1000 only provides 3.3 volt. -+ -+ Say N if you have not modified the hardware to boost the voltage, say -+ Y if you have level convertion hardware or a PS/2 device capable of -+ operating on 3.3 volt. -+ - endif # stk 1000 ---- a/arch/avr32/boards/atstk1000/Makefile -+++ b/arch/avr32/boards/atstk1000/Makefile -@@ -2,3 +2,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 -+obj-$(CONFIG_BOARD_ATSTK1006) += atstk1002.o ---- a/arch/avr32/boards/atstk1000/atstk1002.c -+++ b/arch/avr32/boards/atstk1000/atstk1002.c -@@ -1,7 +1,7 @@ - /* -- * ATSTK1002 daughterboard-specific init code -+ * ATSTK1002/ATSTK1006 daughterboard-specific init code - * -- * Copyright (C) 2005-2006 Atmel Corporation -+ * Copyright (C) 2005-2007 Atmel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as -@@ -28,6 +28,80 @@ - - #include "atstk1000.h" - -+/* Oscillator frequencies. These are board specific */ -+unsigned long at32_board_osc_rates[3] = { -+ [0] = 32768, /* 32.768 kHz on RTC osc */ -+ [1] = 20000000, /* 20 MHz on osc0 */ -+ [2] = 12000000, /* 12 MHz on osc1 */ -+}; -+ -+/* -+ * The ATSTK1006 daughterboard is very similar to the ATSTK1002. Both -+ * have the AT32AP7000 chip on board; the difference is that the -+ * STK1006 has 128 MB SDRAM (the STK1002 uses the 8 MB SDRAM chip on -+ * the STK1000 motherboard) and 256 MB NAND flash (the STK1002 has -+ * none.) -+ * -+ * The RAM difference is handled by the boot loader, so the only -+ * difference we end up handling here is the NAND flash. -+ */ -+#ifdef CONFIG_BOARD_ATSTK1006 -+#include -+#include -+ -+static struct smc_timing nand_timing __initdata = { -+ .ncs_read_setup = 0, -+ .nrd_setup = 10, -+ .ncs_write_setup = 0, -+ .nwe_setup = 10, -+ -+ .ncs_read_pulse = 30, -+ .nrd_pulse = 15, -+ .ncs_write_pulse = 30, -+ .nwe_pulse = 15, -+ -+ .read_cycle = 30, -+ .write_cycle = 30, -+ -+ .ncs_read_recover = 0, -+ .nrd_recover = 15, -+ .ncs_write_recover = 0, -+ /* WE# high -> RE# low min 60 ns */ -+ .nwe_recover = 50, -+}; -+ -+static struct smc_config nand_config __initdata = { -+ .bus_width = 1, -+ .nrd_controlled = 1, -+ .nwe_controlled = 1, -+ .nwait_mode = 0, -+ .byte_write = 0, -+ .tdf_cycles = 2, -+ .tdf_mode = 0, -+}; -+ -+static struct mtd_partition nand_partitions[] = { -+ { -+ .name = "main", -+ .offset = 0x00000000, -+ .size = MTDPART_SIZ_FULL, -+ }, -+}; -+ -+static struct mtd_partition *nand_part_info(int size, int *num_partitions) -+{ -+ *num_partitions = ARRAY_SIZE(nand_partitions); -+ return nand_partitions; -+} -+ -+static struct atmel_nand_data atstk1006_nand_data __initdata = { -+ .cle = 21, -+ .ale = 22, -+ .rdy_pin = GPIO_PIN_PB(30), -+ .enable_pin = GPIO_PIN_PB(29), -+ .partition_info = nand_part_info, -+}; -+#endif - - struct eth_addr { - u8 addr[6]; -@@ -83,6 +157,19 @@ static struct spi_board_info spi1_board_ - } }; - #endif - -+static struct cf_platform_data __initdata cf0_data = { -+#ifdef CONFIG_BOARD_ATSTK1000_CF_HACKS -+ .detect_pin = CONFIG_BOARD_ATSTK1000_CF_DETECT_PIN, -+ .reset_pin = CONFIG_BOARD_ATSTK1000_CF_RESET_PIN, -+#else -+ .detect_pin = GPIO_PIN_NONE, -+ .reset_pin = GPIO_PIN_NONE, -+#endif -+ .vcc_pin = GPIO_PIN_NONE, -+ .ready_pin = GPIO_PIN_PB(27), -+ .cs = 4, -+}; -+ - /* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid -@@ -212,6 +299,12 @@ static int __init atstk1002_init(void) - - at32_add_system_devices(); - -+#ifdef CONFIG_BOARD_ATSTK1006 -+ smc_set_timing(&nand_config, &nand_timing); -+ smc_set_configuration(3, &nand_config); -+ at32_add_device_nand(0, &atstk1006_nand_data); -+#endif -+ - #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM - at32_add_device_usart(1); - #else -@@ -228,16 +321,30 @@ static int __init atstk1002_init(void) - #ifdef CONFIG_BOARD_ATSTK100X_SPI1 - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); - #endif -+ at32_add_device_twi(0, NULL, 0); -+#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM -+ at32_add_device_mci(0, NULL); -+#endif - #ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM - set_hw_addr(at32_add_device_eth(1, ð_data[1])); - #else - at32_add_device_lcdc(0, &atstk1000_lcdc_data, -- fbmem_start, fbmem_size); -+ fbmem_start, fbmem_size, 0); - #endif - at32_add_device_usba(0, NULL); -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_AC97 -+ at32_add_device_ac97c(0, NULL); -+#else -+ at32_add_device_abdac(0); -+#endif - #ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); - #endif -+ at32_add_device_cf(0, 2, &cf0_data); -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_PSIF -+ at32_add_device_psif(0); -+ at32_add_device_psif(1); -+#endif - - atstk1000_setup_j2_leds(); - atstk1002_setup_extdac(); ---- a/arch/avr32/boards/atstk1000/atstk1003.c -+++ b/arch/avr32/boards/atstk1000/atstk1003.c -@@ -27,6 +27,13 @@ - - #include "atstk1000.h" - -+/* Oscillator frequencies. These are board specific */ -+unsigned long at32_board_osc_rates[3] = { -+ [0] = 32768, /* 32.768 kHz on RTC osc */ -+ [1] = 20000000, /* 20 MHz on osc0 */ -+ [2] = 12000000, /* 12 MHz on osc1 */ -+}; -+ - #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - static struct at73c213_board_info at73c213_data = { - .ssc_id = 0, -@@ -59,6 +66,19 @@ static struct spi_board_info spi1_board_ - } }; - #endif - -+static struct cf_platform_data __initdata cf0_data = { -+#ifdef CONFIG_BOARD_ATSTK1000_CF_HACKS -+ .detect_pin = CONFIG_BOARD_ATSTK1000_CF_DETECT_PIN, -+ .reset_pin = CONFIG_BOARD_ATSTK1000_CF_RESET_PIN, -+#else -+ .detect_pin = GPIO_PIN_NONE, -+ .reset_pin = GPIO_PIN_NONE, -+#endif -+ .vcc_pin = GPIO_PIN_NONE, -+ .ready_pin = GPIO_PIN_PB(27), -+ .cs = 4, -+}; -+ - #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - static void __init atstk1003_setup_extdac(void) - { -@@ -147,12 +167,22 @@ static int __init atstk1003_init(void) - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); - #endif - #ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM -- at32_add_device_mci(0); -+ at32_add_device_mci(0, NULL); - #endif - at32_add_device_usba(0, NULL); -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_AC97 -+ at32_add_device_ac97c(0, NULL); -+#else -+ at32_add_device_abdac(0); -+#endif - #ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); - #endif -+ at32_add_device_cf(0, 2, &cf0_data); -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_PSIF -+ at32_add_device_psif(0); -+ at32_add_device_psif(1); -+#endif - - atstk1000_setup_j2_leds(); - atstk1003_setup_extdac(); ---- a/arch/avr32/boards/atstk1000/atstk1004.c -+++ b/arch/avr32/boards/atstk1000/atstk1004.c -@@ -29,6 +29,13 @@ - - #include "atstk1000.h" - -+/* Oscillator frequencies. These are board specific */ -+unsigned long at32_board_osc_rates[3] = { -+ [0] = 32768, /* 32.768 kHz on RTC osc */ -+ [1] = 20000000, /* 20 MHz on osc0 */ -+ [2] = 12000000, /* 12 MHz on osc1 */ -+}; -+ - #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC - static struct at73c213_board_info at73c213_data = { - .ssc_id = 0, -@@ -130,14 +137,23 @@ static int __init atstk1004_init(void) - at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); - #endif - #ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM -- at32_add_device_mci(0); -+ at32_add_device_mci(0, NULL); - #endif - at32_add_device_lcdc(0, &atstk1000_lcdc_data, -- fbmem_start, fbmem_size); -+ fbmem_start, fbmem_size, 0); - at32_add_device_usba(0, NULL); -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_AC97 -+ at32_add_device_ac97c(0, NULL); -+#else -+ at32_add_device_abdac(0); -+#endif - #ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM - at32_add_device_ssc(0, ATMEL_SSC_TX); - #endif -+#ifdef CONFIG_BOARD_ATSTK100X_ENABLE_PSIF -+ at32_add_device_psif(0); -+ at32_add_device_psif(1); -+#endif - - atstk1000_setup_j2_leds(); - atstk1004_setup_extdac(); ---- a/arch/avr32/configs/atngw100_defconfig -+++ b/arch/avr32/configs/atngw100_defconfig -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Linux kernel version: 2.6.24-rc7 --# Wed Jan 9 23:20:41 2008 -+# Linux kernel version: 2.6.25.4 -+# Wed Jun 11 15:23:36 2008 - # - CONFIG_AVR32=y - CONFIG_GENERIC_GPIO=y -@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y - CONFIG_GENERIC_IRQ_PROBE=y - CONFIG_RWSEM_GENERIC_SPINLOCK=y - CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y - # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set - # CONFIG_ARCH_HAS_ILOG2_U32 is not set - # CONFIG_ARCH_HAS_ILOG2_U64 is not set --CONFIG_ARCH_SUPPORTS_OPROFILE=y - CONFIG_GENERIC_HWEIGHT=y - CONFIG_GENERIC_CALIBRATE_DELAY=y - CONFIG_GENERIC_BUG=y -@@ -37,17 +37,15 @@ CONFIG_POSIX_MQUEUE=y - CONFIG_BSD_PROCESS_ACCT=y - CONFIG_BSD_PROCESS_ACCT_V3=y - # CONFIG_TASKSTATS is not set --# CONFIG_USER_NS is not set --# CONFIG_PID_NS is not set - # CONFIG_AUDIT is not set - # CONFIG_IKCONFIG is not set - CONFIG_LOG_BUF_SHIFT=14 - # CONFIG_CGROUPS is not set --CONFIG_FAIR_GROUP_SCHED=y --CONFIG_FAIR_USER_SCHED=y --# CONFIG_FAIR_CGROUP_SCHED is not set -+# CONFIG_GROUP_SCHED is not set - CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y - # CONFIG_RELAY is not set -+# CONFIG_NAMESPACES is not set - CONFIG_BLK_DEV_INITRD=y - CONFIG_INITRAMFS_SOURCE="" - CONFIG_CC_OPTIMIZE_FOR_SIZE=y -@@ -61,11 +59,13 @@ CONFIG_HOTPLUG=y - CONFIG_PRINTK=y - CONFIG_BUG=y - CONFIG_ELF_CORE=y -+# CONFIG_COMPAT_BRK is not set - # CONFIG_BASE_FULL is not set - CONFIG_FUTEX=y - CONFIG_ANON_INODES=y - CONFIG_EPOLL=y - CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y - CONFIG_EVENTFD=y - CONFIG_SHMEM=y - CONFIG_VM_EVENT_COUNTERS=y -@@ -73,6 +73,14 @@ CONFIG_SLUB_DEBUG=y - # CONFIG_SLAB is not set - CONFIG_SLUB=y - # CONFIG_SLOB is not set -+CONFIG_PROFILING=y -+# CONFIG_MARKERS is not set -+CONFIG_OPROFILE=m -+CONFIG_HAVE_OPROFILE=y -+CONFIG_KPROBES=y -+CONFIG_HAVE_KPROBES=y -+# CONFIG_HAVE_KRETPROBES is not set -+CONFIG_PROC_PAGE_MONITOR=y - CONFIG_SLABINFO=y - CONFIG_RT_MUTEXES=y - # CONFIG_TINY_SHMEM is not set -@@ -101,10 +109,15 @@ CONFIG_IOSCHED_CFQ=y - CONFIG_DEFAULT_CFQ=y - # CONFIG_DEFAULT_NOOP is not set - CONFIG_DEFAULT_IOSCHED="cfq" -+CONFIG_CLASSIC_RCU=y - - # - # System Type and features - # -+CONFIG_TICK_ONESHOT=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y - CONFIG_SUBARCH_AVR32B=y - CONFIG_MMU=y - CONFIG_PERFORMANCE_COUNTERS=y -@@ -113,6 +126,7 @@ CONFIG_CPU_AT32AP700X=y - CONFIG_CPU_AT32AP7000=y - # CONFIG_BOARD_ATSTK1000 is not set - CONFIG_BOARD_ATNGW100=y -+CONFIG_BOARD_ATNGW100_I2C_GPIO=y - CONFIG_LOADER_U_BOOT=y - - # -@@ -121,6 +135,7 @@ CONFIG_LOADER_U_BOOT=y - # CONFIG_AP700X_32_BIT_SMC is not set - CONFIG_AP700X_16_BIT_SMC=y - # CONFIG_AP700X_8_BIT_SMC is not set -+CONFIG_GPIO_DEV=y - CONFIG_LOAD_ADDRESS=0x10000000 - CONFIG_ENTRY_ADDRESS=0x90000000 - CONFIG_PHYS_OFFSET=0x10000000 -@@ -146,16 +161,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 - CONFIG_ZONE_DMA_FLAG=0 - CONFIG_VIRT_TO_BUS=y - # CONFIG_OWNERSHIP_TRACE is not set -+CONFIG_NMI_DEBUGGING=y -+CONFIG_DW_DMAC=y - # CONFIG_HZ_100 is not set - CONFIG_HZ_250=y - # CONFIG_HZ_300 is not set - # CONFIG_HZ_1000 is not set - CONFIG_HZ=250 -+# CONFIG_SCHED_HRTICK is not set - CONFIG_CMDLINE="" - - # - # Power management options - # -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_PM=y -+# CONFIG_PM_LEGACY is not set -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y - - # - # CPU Frequency scaling -@@ -164,9 +189,9 @@ CONFIG_CPU_FREQ=y - CONFIG_CPU_FREQ_TABLE=y - # CONFIG_CPU_FREQ_DEBUG is not set - # CONFIG_CPU_FREQ_STAT is not set --CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set - # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set --# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y - # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set - CONFIG_CPU_FREQ_GOV_PERFORMANCE=y - # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -@@ -202,6 +227,7 @@ CONFIG_XFRM=y - CONFIG_XFRM_USER=y - # CONFIG_XFRM_SUB_POLICY is not set - # CONFIG_XFRM_MIGRATE is not set -+# CONFIG_XFRM_STATISTICS is not set - CONFIG_NET_KEY=y - # CONFIG_NET_KEY_MIGRATE is not set - CONFIG_INET=y -@@ -260,82 +286,33 @@ CONFIG_IPV6_SIT=y - # CONFIG_NETWORK_SECMARK is not set - CONFIG_NETFILTER=y - # CONFIG_NETFILTER_DEBUG is not set --CONFIG_BRIDGE_NETFILTER=y -+# CONFIG_NETFILTER_ADVANCED is not set - - # - # Core Netfilter Configuration - # --# CONFIG_NETFILTER_NETLINK is not set --CONFIG_NF_CONNTRACK_ENABLED=m -+CONFIG_NETFILTER_NETLINK=m -+CONFIG_NETFILTER_NETLINK_LOG=m - CONFIG_NF_CONNTRACK=m --CONFIG_NF_CT_ACCT=y --CONFIG_NF_CONNTRACK_MARK=y --# CONFIG_NF_CONNTRACK_EVENTS is not set --CONFIG_NF_CT_PROTO_GRE=m --# CONFIG_NF_CT_PROTO_SCTP is not set --# CONFIG_NF_CT_PROTO_UDPLITE is not set --CONFIG_NF_CONNTRACK_AMANDA=m - CONFIG_NF_CONNTRACK_FTP=m --CONFIG_NF_CONNTRACK_H323=m - CONFIG_NF_CONNTRACK_IRC=m --CONFIG_NF_CONNTRACK_NETBIOS_NS=m --CONFIG_NF_CONNTRACK_PPTP=m --CONFIG_NF_CONNTRACK_SANE=m - CONFIG_NF_CONNTRACK_SIP=m --CONFIG_NF_CONNTRACK_TFTP=m -+CONFIG_NF_CT_NETLINK=m - CONFIG_NETFILTER_XTABLES=y --CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m --# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set --# CONFIG_NETFILTER_XT_TARGET_DSCP is not set - CONFIG_NETFILTER_XT_TARGET_MARK=m --CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m - CONFIG_NETFILTER_XT_TARGET_NFLOG=m --# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set --# CONFIG_NETFILTER_XT_TARGET_TRACE is not set - CONFIG_NETFILTER_XT_TARGET_TCPMSS=m --CONFIG_NETFILTER_XT_MATCH_COMMENT=m --CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m --# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set --CONFIG_NETFILTER_XT_MATCH_CONNMARK=m - CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m --# CONFIG_NETFILTER_XT_MATCH_DCCP is not set --# CONFIG_NETFILTER_XT_MATCH_DSCP is not set --CONFIG_NETFILTER_XT_MATCH_ESP=m --CONFIG_NETFILTER_XT_MATCH_HELPER=m --CONFIG_NETFILTER_XT_MATCH_LENGTH=m --CONFIG_NETFILTER_XT_MATCH_LIMIT=m --CONFIG_NETFILTER_XT_MATCH_MAC=m - CONFIG_NETFILTER_XT_MATCH_MARK=m - CONFIG_NETFILTER_XT_MATCH_POLICY=m --CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m --# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set --CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m --CONFIG_NETFILTER_XT_MATCH_QUOTA=m --CONFIG_NETFILTER_XT_MATCH_REALM=m --# CONFIG_NETFILTER_XT_MATCH_SCTP is not set - CONFIG_NETFILTER_XT_MATCH_STATE=m --CONFIG_NETFILTER_XT_MATCH_STATISTIC=m --CONFIG_NETFILTER_XT_MATCH_STRING=m --CONFIG_NETFILTER_XT_MATCH_TCPMSS=m --# CONFIG_NETFILTER_XT_MATCH_TIME is not set --# CONFIG_NETFILTER_XT_MATCH_U32 is not set --CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m - - # - # IP: Netfilter Configuration - # - CONFIG_NF_CONNTRACK_IPV4=m - CONFIG_NF_CONNTRACK_PROC_COMPAT=y --# CONFIG_IP_NF_QUEUE is not set - CONFIG_IP_NF_IPTABLES=m --CONFIG_IP_NF_MATCH_IPRANGE=m --CONFIG_IP_NF_MATCH_TOS=m --CONFIG_IP_NF_MATCH_RECENT=m --CONFIG_IP_NF_MATCH_ECN=m --CONFIG_IP_NF_MATCH_AH=m --CONFIG_IP_NF_MATCH_TTL=m --CONFIG_IP_NF_MATCH_OWNER=m --CONFIG_IP_NF_MATCH_ADDRTYPE=m - CONFIG_IP_NF_FILTER=m - CONFIG_IP_NF_TARGET_REJECT=m - CONFIG_IP_NF_TARGET_LOG=m -@@ -343,54 +320,25 @@ CONFIG_IP_NF_TARGET_LOG=m - CONFIG_NF_NAT=m - CONFIG_NF_NAT_NEEDED=y - CONFIG_IP_NF_TARGET_MASQUERADE=m --CONFIG_IP_NF_TARGET_REDIRECT=m --CONFIG_IP_NF_TARGET_NETMAP=m --CONFIG_IP_NF_TARGET_SAME=m --CONFIG_NF_NAT_SNMP_BASIC=m --CONFIG_NF_NAT_PROTO_GRE=m - CONFIG_NF_NAT_FTP=m - CONFIG_NF_NAT_IRC=m --CONFIG_NF_NAT_TFTP=m --CONFIG_NF_NAT_AMANDA=m --CONFIG_NF_NAT_PPTP=m --CONFIG_NF_NAT_H323=m -+# CONFIG_NF_NAT_TFTP is not set -+# CONFIG_NF_NAT_AMANDA is not set -+# CONFIG_NF_NAT_PPTP is not set -+# CONFIG_NF_NAT_H323 is not set - CONFIG_NF_NAT_SIP=m - CONFIG_IP_NF_MANGLE=m --CONFIG_IP_NF_TARGET_TOS=m --CONFIG_IP_NF_TARGET_ECN=m --CONFIG_IP_NF_TARGET_TTL=m --CONFIG_IP_NF_TARGET_CLUSTERIP=m --CONFIG_IP_NF_RAW=m --CONFIG_IP_NF_ARPTABLES=m --CONFIG_IP_NF_ARPFILTER=m --CONFIG_IP_NF_ARP_MANGLE=m - - # --# IPv6: Netfilter Configuration (EXPERIMENTAL) -+# IPv6: Netfilter Configuration - # - CONFIG_NF_CONNTRACK_IPV6=m --CONFIG_IP6_NF_QUEUE=m - CONFIG_IP6_NF_IPTABLES=m --CONFIG_IP6_NF_MATCH_RT=m --CONFIG_IP6_NF_MATCH_OPTS=m --CONFIG_IP6_NF_MATCH_FRAG=m --CONFIG_IP6_NF_MATCH_HL=m --CONFIG_IP6_NF_MATCH_OWNER=m - CONFIG_IP6_NF_MATCH_IPV6HEADER=m --CONFIG_IP6_NF_MATCH_AH=m --CONFIG_IP6_NF_MATCH_MH=m --CONFIG_IP6_NF_MATCH_EUI64=m - CONFIG_IP6_NF_FILTER=m - CONFIG_IP6_NF_TARGET_LOG=m - CONFIG_IP6_NF_TARGET_REJECT=m - CONFIG_IP6_NF_MANGLE=m --CONFIG_IP6_NF_TARGET_HL=m --CONFIG_IP6_NF_RAW=m -- --# --# Bridge: Netfilter Configuration --# --# CONFIG_BRIDGE_NF_EBTABLES is not set - # CONFIG_IP_DCCP is not set - # CONFIG_IP_SCTP is not set - # CONFIG_TIPC is not set -@@ -407,7 +355,6 @@ CONFIG_LLC=m - # CONFIG_ECONET is not set - # CONFIG_WAN_ROUTER is not set - # CONFIG_NET_SCHED is not set --CONFIG_NET_CLS_ROUTE=y - - # - # Network testing -@@ -415,6 +362,7 @@ CONFIG_NET_CLS_ROUTE=y - # CONFIG_NET_PKTGEN is not set - # CONFIG_NET_TCPPROBE is not set - # CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set - # CONFIG_IRDA is not set - # CONFIG_BT is not set - # CONFIG_AF_RXRPC is not set -@@ -531,11 +479,18 @@ CONFIG_BLK_DEV_NBD=m - CONFIG_BLK_DEV_RAM=m - CONFIG_BLK_DEV_RAM_COUNT=16 - CONFIG_BLK_DEV_RAM_SIZE=4096 --CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -+# CONFIG_BLK_DEV_XIP is not set - # CONFIG_CDROM_PKTCDVD is not set - # CONFIG_ATA_OVER_ETH is not set --# CONFIG_MISC_DEVICES is not set --# CONFIG_IDE is not set -+CONFIG_MISC_DEVICES=y -+# CONFIG_ATMEL_PWM is not set -+CONFIG_ATMEL_TCLIB=y -+CONFIG_ATMEL_TCB_CLKSRC=y -+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 -+# CONFIG_EEPROM_93CX6 is not set -+# CONFIG_ATMEL_SSC is not set -+# CONFIG_ENCLOSURE_SERVICES is not set -+# CONFIG_HAVE_IDE is not set - - # - # SCSI device support -@@ -568,11 +523,13 @@ CONFIG_PHYLIB=y - # CONFIG_SMSC_PHY is not set - # CONFIG_BROADCOM_PHY is not set - # CONFIG_ICPLUS_PHY is not set -+# CONFIG_REALTEK_PHY is not set - # CONFIG_FIXED_PHY is not set - # CONFIG_MDIO_BITBANG is not set - CONFIG_NET_ETHERNET=y - # CONFIG_MII is not set - CONFIG_MACB=y -+# CONFIG_ENC28J60 is not set - # CONFIG_IBM_NEW_EMAC_ZMII is not set - # CONFIG_IBM_NEW_EMAC_RGMII is not set - # CONFIG_IBM_NEW_EMAC_TAH is not set -@@ -599,7 +556,6 @@ CONFIG_PPPOE=m - # CONFIG_PPPOL2TP is not set - # CONFIG_SLIP is not set - CONFIG_SLHC=m --# CONFIG_SHAPER is not set - # CONFIG_NETCONSOLE is not set - # CONFIG_NETPOLL is not set - # CONFIG_NET_POLL_CONTROLLER is not set -@@ -633,6 +589,7 @@ CONFIG_SLHC=m - # - CONFIG_SERIAL_ATMEL=y - CONFIG_SERIAL_ATMEL_CONSOLE=y -+CONFIG_SERIAL_ATMEL_PDC=y - # CONFIG_SERIAL_ATMEL_TTYAT is not set - CONFIG_SERIAL_CORE=y - CONFIG_SERIAL_CORE_CONSOLE=y -@@ -640,8 +597,6 @@ CONFIG_UNIX98_PTYS=y - # CONFIG_LEGACY_PTYS is not set - # CONFIG_IPMI_HANDLER is not set - # CONFIG_HW_RANDOM is not set --# CONFIG_RTC is not set --# CONFIG_GEN_RTC is not set - # CONFIG_R3964 is not set - # CONFIG_RAW_DRIVER is not set - # CONFIG_TCG_TPM is not set -@@ -659,6 +614,7 @@ CONFIG_I2C_ALGOBIT=m - # - # I2C Hardware Bus support - # -+CONFIG_I2C_ATMELTWI=m - CONFIG_I2C_GPIO=m - # CONFIG_I2C_OCORES is not set - # CONFIG_I2C_PARPORT_LIGHT is not set -@@ -669,13 +625,12 @@ CONFIG_I2C_GPIO=m - # - # Miscellaneous I2C Chip support - # --# CONFIG_SENSORS_DS1337 is not set --# CONFIG_SENSORS_DS1374 is not set - # CONFIG_DS1682 is not set - # CONFIG_SENSORS_EEPROM is not set - # CONFIG_SENSORS_PCF8574 is not set --# CONFIG_SENSORS_PCA9539 is not set -+# CONFIG_PCF8575 is not set - # CONFIG_SENSORS_PCF8591 is not set -+# CONFIG_TPS65010 is not set - # CONFIG_SENSORS_MAX6875 is not set - # CONFIG_SENSORS_TSL2550 is not set - # CONFIG_I2C_DEBUG_CORE is not set -@@ -702,9 +657,27 @@ CONFIG_SPI_ATMEL=y - # CONFIG_SPI_AT25 is not set - CONFIG_SPI_SPIDEV=m - # CONFIG_SPI_TLE62X0 is not set -+CONFIG_HAVE_GPIO_LIB=y -+ -+# -+# GPIO Support -+# -+# CONFIG_DEBUG_GPIO is not set -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MCP23S08 is not set - # CONFIG_W1 is not set - # CONFIG_POWER_SUPPLY is not set - # CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set - CONFIG_WATCHDOG=y - # CONFIG_WATCHDOG_NOWAYOUT is not set - -@@ -757,10 +730,6 @@ CONFIG_USB_SUPPORT=y - # - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' - # -- --# --# USB Gadget Support --# - CONFIG_USB_GADGET=y - # CONFIG_USB_GADGET_DEBUG is not set - # CONFIG_USB_GADGET_DEBUG_FILES is not set -@@ -787,21 +756,24 @@ CONFIG_USB_FILE_STORAGE=m - # CONFIG_USB_FILE_STORAGE_TEST is not set - CONFIG_USB_G_SERIAL=m - # CONFIG_USB_MIDI_GADGET is not set --CONFIG_MMC=m -+# CONFIG_USB_G_PRINTER is not set -+CONFIG_MMC=y - # CONFIG_MMC_DEBUG is not set - # CONFIG_MMC_UNSAFE_RESUME is not set - - # - # MMC/SD Card Drivers - # --CONFIG_MMC_BLOCK=m -+CONFIG_MMC_BLOCK=y - CONFIG_MMC_BLOCK_BOUNCE=y - # CONFIG_SDIO_UART is not set - - # - # MMC/SD Host Controller Drivers - # -+CONFIG_MMC_ATMELMCI=y - CONFIG_MMC_SPI=m -+# CONFIG_MEMSTICK is not set - CONFIG_NEW_LEDS=y - CONFIG_LEDS_CLASS=y - -@@ -844,19 +816,22 @@ CONFIG_RTC_INTF_DEV=y - # CONFIG_RTC_DRV_PCF8563 is not set - # CONFIG_RTC_DRV_PCF8583 is not set - # CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set - - # - # SPI RTC drivers - # --# CONFIG_RTC_DRV_RS5C348 is not set - # CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set - - # - # Platform RTC drivers - # -+# CONFIG_RTC_DRV_DS1511 is not set - # CONFIG_RTC_DRV_DS1553 is not set --# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_M48T86 is not set - # CONFIG_RTC_DRV_M48T59 is not set - # CONFIG_RTC_DRV_V3020 is not set -@@ -874,25 +849,23 @@ CONFIG_RTC_DRV_AT32AP700X=y - # - # File systems - # --CONFIG_EXT2_FS=m -+CONFIG_EXT2_FS=y - # CONFIG_EXT2_FS_XATTR is not set - # CONFIG_EXT2_FS_XIP is not set --CONFIG_EXT3_FS=m -+CONFIG_EXT3_FS=y - # CONFIG_EXT3_FS_XATTR is not set - # CONFIG_EXT4DEV_FS is not set --CONFIG_JBD=m -+CONFIG_JBD=y - # CONFIG_REISERFS_FS is not set - # CONFIG_JFS_FS is not set - # CONFIG_FS_POSIX_ACL is not set - # CONFIG_XFS_FS is not set - # CONFIG_GFS2_FS is not set - # CONFIG_OCFS2_FS is not set --# CONFIG_MINIX_FS is not set --# CONFIG_ROMFS_FS is not set -+# CONFIG_DNOTIFY is not set - CONFIG_INOTIFY=y - CONFIG_INOTIFY_USER=y - # CONFIG_QUOTA is not set --# CONFIG_DNOTIFY is not set - # CONFIG_AUTOFS_FS is not set - # CONFIG_AUTOFS4_FS is not set - CONFIG_FUSE_FS=m -@@ -923,7 +896,7 @@ CONFIG_SYSFS=y - CONFIG_TMPFS=y - # CONFIG_TMPFS_POSIX_ACL is not set - # CONFIG_HUGETLB_PAGE is not set --CONFIG_CONFIGFS_FS=m -+CONFIG_CONFIGFS_FS=y - - # - # Miscellaneous filesystems -@@ -948,8 +921,10 @@ CONFIG_JFFS2_RTIME=y - # CONFIG_JFFS2_RUBIN is not set - # CONFIG_CRAMFS is not set - # CONFIG_VXFS_FS is not set -+# CONFIG_MINIX_FS is not set - # CONFIG_HPFS_FS is not set - # CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set - # CONFIG_SYSV_FS is not set - # CONFIG_UFS_FS is not set - CONFIG_NETWORK_FILESYSTEMS=y -@@ -1030,11 +1005,6 @@ CONFIG_NLS_ISO8859_1=m - # CONFIG_NLS_KOI8_U is not set - CONFIG_NLS_UTF8=m - # CONFIG_DLM is not set --CONFIG_INSTRUMENTATION=y --CONFIG_PROFILING=y --CONFIG_OPROFILE=m --CONFIG_KPROBES=y --# CONFIG_MARKERS is not set - - # - # Kernel hacking -@@ -1053,6 +1023,7 @@ CONFIG_SCHED_DEBUG=y - # CONFIG_SCHEDSTATS is not set - # CONFIG_TIMER_STATS is not set - # CONFIG_SLUB_DEBUG_ON is not set -+# CONFIG_SLUB_STATS is not set - # CONFIG_DEBUG_RT_MUTEXES is not set - # CONFIG_RT_MUTEX_TESTER is not set - # CONFIG_DEBUG_SPINLOCK is not set -@@ -1069,9 +1040,10 @@ CONFIG_DEBUG_BUGVERBOSE=y - # CONFIG_DEBUG_LIST is not set - # CONFIG_DEBUG_SG is not set - CONFIG_FRAME_POINTER=y --# CONFIG_FORCED_INLINING is not set - # CONFIG_BOOT_PRINTK_DELAY is not set - # CONFIG_RCU_TORTURE_TEST is not set -+# CONFIG_KPROBES_SANITY_TEST is not set -+# CONFIG_BACKTRACE_SELF_TEST is not set - # CONFIG_LKDTM is not set - # CONFIG_FAULT_INJECTION is not set - # CONFIG_SAMPLES is not set -@@ -1084,7 +1056,9 @@ CONFIG_FRAME_POINTER=y - # CONFIG_SECURITY_FILE_CAPABILITIES is not set - CONFIG_CRYPTO=y - CONFIG_CRYPTO_ALGAPI=y -+CONFIG_CRYPTO_AEAD=y - CONFIG_CRYPTO_BLKCIPHER=y -+# CONFIG_CRYPTO_SEQIV is not set - CONFIG_CRYPTO_HASH=y - CONFIG_CRYPTO_MANAGER=y - CONFIG_CRYPTO_HMAC=y -@@ -1103,6 +1077,9 @@ CONFIG_CRYPTO_CBC=y - CONFIG_CRYPTO_PCBC=m - # CONFIG_CRYPTO_LRW is not set - # CONFIG_CRYPTO_XTS is not set -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_CCM is not set - # CONFIG_CRYPTO_CRYPTD is not set - CONFIG_CRYPTO_DES=y - # CONFIG_CRYPTO_FCRYPT is not set -@@ -1117,12 +1094,14 @@ CONFIG_CRYPTO_ARC4=m - # CONFIG_CRYPTO_KHAZAD is not set - # CONFIG_CRYPTO_ANUBIS is not set - # CONFIG_CRYPTO_SEED is not set -+# CONFIG_CRYPTO_SALSA20 is not set - CONFIG_CRYPTO_DEFLATE=y - # CONFIG_CRYPTO_MICHAEL_MIC is not set - # CONFIG_CRYPTO_CRC32C is not set - # CONFIG_CRYPTO_CAMELLIA is not set - # CONFIG_CRYPTO_TEST is not set --# CONFIG_CRYPTO_AUTHENC is not set -+CONFIG_CRYPTO_AUTHENC=y -+# CONFIG_CRYPTO_LZO is not set - CONFIG_CRYPTO_HW=y - - # -@@ -1137,10 +1116,7 @@ CONFIG_CRC7=m - # CONFIG_LIBCRC32C is not set - CONFIG_ZLIB_INFLATE=y - CONFIG_ZLIB_DEFLATE=y --CONFIG_TEXTSEARCH=y --CONFIG_TEXTSEARCH_KMP=m --CONFIG_TEXTSEARCH_BM=m --CONFIG_TEXTSEARCH_FSM=m -+CONFIG_GENERIC_ALLOCATOR=y - CONFIG_PLIST=y - CONFIG_HAS_IOMEM=y - CONFIG_HAS_IOPORT=y ---- a/arch/avr32/configs/atstk1002_defconfig -+++ b/arch/avr32/configs/atstk1002_defconfig -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Linux kernel version: 2.6.24-rc7 --# Wed Jan 9 23:07:43 2008 -+# Linux kernel version: 2.6.25.4 -+# Wed Jun 11 15:29:18 2008 - # - CONFIG_AVR32=y - CONFIG_GENERIC_GPIO=y -@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y - CONFIG_GENERIC_IRQ_PROBE=y - CONFIG_RWSEM_GENERIC_SPINLOCK=y - CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y - # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set - # CONFIG_ARCH_HAS_ILOG2_U32 is not set - # CONFIG_ARCH_HAS_ILOG2_U64 is not set --CONFIG_ARCH_SUPPORTS_OPROFILE=y - CONFIG_GENERIC_HWEIGHT=y - CONFIG_GENERIC_CALIBRATE_DELAY=y - CONFIG_GENERIC_BUG=y -@@ -36,15 +36,15 @@ CONFIG_SYSVIPC_SYSCTL=y - CONFIG_POSIX_MQUEUE=y - # CONFIG_BSD_PROCESS_ACCT is not set - # CONFIG_TASKSTATS is not set --# CONFIG_USER_NS is not set --# CONFIG_PID_NS is not set - # CONFIG_AUDIT is not set - # CONFIG_IKCONFIG is not set - CONFIG_LOG_BUF_SHIFT=14 - # CONFIG_CGROUPS is not set --# CONFIG_FAIR_GROUP_SCHED is not set -+# CONFIG_GROUP_SCHED is not set - CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y - CONFIG_RELAY=y -+# CONFIG_NAMESPACES is not set - CONFIG_BLK_DEV_INITRD=y - CONFIG_INITRAMFS_SOURCE="" - CONFIG_CC_OPTIMIZE_FOR_SIZE=y -@@ -58,11 +58,13 @@ CONFIG_HOTPLUG=y - CONFIG_PRINTK=y - CONFIG_BUG=y - CONFIG_ELF_CORE=y -+# CONFIG_COMPAT_BRK is not set - # CONFIG_BASE_FULL is not set - CONFIG_FUTEX=y - CONFIG_ANON_INODES=y - CONFIG_EPOLL=y - CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y - CONFIG_EVENTFD=y - CONFIG_SHMEM=y - CONFIG_VM_EVENT_COUNTERS=y -@@ -70,6 +72,14 @@ CONFIG_SLUB_DEBUG=y - # CONFIG_SLAB is not set - CONFIG_SLUB=y - # CONFIG_SLOB is not set -+CONFIG_PROFILING=y -+# CONFIG_MARKERS is not set -+CONFIG_OPROFILE=m -+CONFIG_HAVE_OPROFILE=y -+CONFIG_KPROBES=y -+CONFIG_HAVE_KPROBES=y -+# CONFIG_HAVE_KRETPROBES is not set -+CONFIG_PROC_PAGE_MONITOR=y - CONFIG_SLABINFO=y - CONFIG_RT_MUTEXES=y - # CONFIG_TINY_SHMEM is not set -@@ -98,10 +108,15 @@ CONFIG_IOSCHED_CFQ=y - CONFIG_DEFAULT_CFQ=y - # CONFIG_DEFAULT_NOOP is not set - CONFIG_DEFAULT_IOSCHED="cfq" -+CONFIG_CLASSIC_RCU=y - - # - # System Type and features - # -+CONFIG_TICK_ONESHOT=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y - CONFIG_SUBARCH_AVR32B=y - CONFIG_MMU=y - CONFIG_PERFORMANCE_COUNTERS=y -@@ -113,12 +128,16 @@ CONFIG_BOARD_ATSTK1000=y - CONFIG_BOARD_ATSTK1002=y - # CONFIG_BOARD_ATSTK1003 is not set - # CONFIG_BOARD_ATSTK1004 is not set -+# CONFIG_BOARD_ATSTK1006 is not set - # CONFIG_BOARD_ATSTK100X_CUSTOM is not set - # CONFIG_BOARD_ATSTK100X_SPI1 is not set - # CONFIG_BOARD_ATSTK1000_J2_LED is not set - # CONFIG_BOARD_ATSTK1000_J2_LED8 is not set - # CONFIG_BOARD_ATSTK1000_J2_RGB is not set - CONFIG_BOARD_ATSTK1000_EXTDAC=y -+# CONFIG_BOARD_ATSTK100X_ENABLE_AC97 is not set -+# CONFIG_BOARD_ATSTK1000_CF_HACKS is not set -+# CONFIG_BOARD_ATSTK100X_ENABLE_PSIF is not set - CONFIG_LOADER_U_BOOT=y - - # -@@ -127,6 +146,7 @@ CONFIG_LOADER_U_BOOT=y - # CONFIG_AP700X_32_BIT_SMC is not set - CONFIG_AP700X_16_BIT_SMC=y - # CONFIG_AP700X_8_BIT_SMC is not set -+CONFIG_GPIO_DEV=y - CONFIG_LOAD_ADDRESS=0x10000000 - CONFIG_ENTRY_ADDRESS=0x90000000 - CONFIG_PHYS_OFFSET=0x10000000 -@@ -152,16 +172,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 - CONFIG_ZONE_DMA_FLAG=0 - CONFIG_VIRT_TO_BUS=y - # CONFIG_OWNERSHIP_TRACE is not set -+CONFIG_NMI_DEBUGGING=y -+CONFIG_DW_DMAC=y - # CONFIG_HZ_100 is not set - CONFIG_HZ_250=y - # CONFIG_HZ_300 is not set - # CONFIG_HZ_1000 is not set - CONFIG_HZ=250 -+# CONFIG_SCHED_HRTICK is not set - CONFIG_CMDLINE="" - - # - # Power management options - # -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_PM=y -+# CONFIG_PM_LEGACY is not set -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y - - # - # CPU Frequency scaling -@@ -170,9 +200,9 @@ CONFIG_CPU_FREQ=y - CONFIG_CPU_FREQ_TABLE=y - # CONFIG_CPU_FREQ_DEBUG is not set - # CONFIG_CPU_FREQ_STAT is not set --CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set - # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set --# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y - # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set - CONFIG_CPU_FREQ_GOV_PERFORMANCE=y - # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -@@ -208,6 +238,7 @@ CONFIG_XFRM=y - CONFIG_XFRM_USER=m - # CONFIG_XFRM_SUB_POLICY is not set - # CONFIG_XFRM_MIGRATE is not set -+# CONFIG_XFRM_STATISTICS is not set - CONFIG_NET_KEY=m - # CONFIG_NET_KEY_MIGRATE is not set - CONFIG_INET=y -@@ -279,6 +310,7 @@ CONFIG_LLC=m - # CONFIG_NET_PKTGEN is not set - # CONFIG_NET_TCPPROBE is not set - # CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set - # CONFIG_IRDA is not set - # CONFIG_BT is not set - # CONFIG_AF_RXRPC is not set -@@ -395,13 +427,18 @@ CONFIG_BLK_DEV_NBD=m - CONFIG_BLK_DEV_RAM=m - CONFIG_BLK_DEV_RAM_COUNT=16 - CONFIG_BLK_DEV_RAM_SIZE=4096 --CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -+# CONFIG_BLK_DEV_XIP is not set - # CONFIG_CDROM_PKTCDVD is not set - # CONFIG_ATA_OVER_ETH is not set - CONFIG_MISC_DEVICES=y -+CONFIG_ATMEL_PWM=m -+CONFIG_ATMEL_TCLIB=y -+CONFIG_ATMEL_TCB_CLKSRC=y -+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 - # CONFIG_EEPROM_93CX6 is not set - CONFIG_ATMEL_SSC=m --# CONFIG_IDE is not set -+# CONFIG_ENCLOSURE_SERVICES is not set -+# CONFIG_HAVE_IDE is not set - - # - # SCSI device support -@@ -444,6 +481,7 @@ CONFIG_SCSI_WAIT_SCAN=m - # CONFIG_SCSI_LOWLEVEL is not set - CONFIG_ATA=m - # CONFIG_ATA_NONSTANDARD is not set -+# CONFIG_SATA_MV is not set - CONFIG_PATA_AT32=m - # CONFIG_PATA_PLATFORM is not set - # CONFIG_MD is not set -@@ -469,11 +507,13 @@ CONFIG_PHYLIB=y - # CONFIG_SMSC_PHY is not set - # CONFIG_BROADCOM_PHY is not set - # CONFIG_ICPLUS_PHY is not set -+# CONFIG_REALTEK_PHY is not set - # CONFIG_FIXED_PHY is not set - # CONFIG_MDIO_BITBANG is not set - CONFIG_NET_ETHERNET=y - # CONFIG_MII is not set - CONFIG_MACB=y -+# CONFIG_ENC28J60 is not set - # CONFIG_IBM_NEW_EMAC_ZMII is not set - # CONFIG_IBM_NEW_EMAC_RGMII is not set - # CONFIG_IBM_NEW_EMAC_TAH is not set -@@ -500,7 +540,6 @@ CONFIG_PPP_BSDCOMP=m - # CONFIG_PPPOL2TP is not set - # CONFIG_SLIP is not set - CONFIG_SLHC=m --# CONFIG_SHAPER is not set - # CONFIG_NETCONSOLE is not set - # CONFIG_NETPOLL is not set - # CONFIG_NET_POLL_CONTROLLER is not set -@@ -568,6 +607,7 @@ CONFIG_MOUSE_GPIO=m - # - CONFIG_SERIAL_ATMEL=y - CONFIG_SERIAL_ATMEL_CONSOLE=y -+CONFIG_SERIAL_ATMEL_PDC=y - # CONFIG_SERIAL_ATMEL_TTYAT is not set - CONFIG_SERIAL_CORE=y - CONFIG_SERIAL_CORE_CONSOLE=y -@@ -575,8 +615,6 @@ CONFIG_UNIX98_PTYS=y - # CONFIG_LEGACY_PTYS is not set - # CONFIG_IPMI_HANDLER is not set - # CONFIG_HW_RANDOM is not set --# CONFIG_RTC is not set --# CONFIG_GEN_RTC is not set - # CONFIG_R3964 is not set - # CONFIG_RAW_DRIVER is not set - # CONFIG_TCG_TPM is not set -@@ -594,6 +632,7 @@ CONFIG_I2C_ALGOBIT=m - # - # I2C Hardware Bus support - # -+CONFIG_I2C_ATMELTWI=m - CONFIG_I2C_GPIO=m - # CONFIG_I2C_OCORES is not set - # CONFIG_I2C_PARPORT_LIGHT is not set -@@ -604,13 +643,12 @@ CONFIG_I2C_GPIO=m - # - # Miscellaneous I2C Chip support - # --# CONFIG_SENSORS_DS1337 is not set --# CONFIG_SENSORS_DS1374 is not set - # CONFIG_DS1682 is not set - # CONFIG_SENSORS_EEPROM is not set - # CONFIG_SENSORS_PCF8574 is not set --# CONFIG_SENSORS_PCA9539 is not set -+# CONFIG_PCF8575 is not set - # CONFIG_SENSORS_PCF8591 is not set -+# CONFIG_TPS65010 is not set - # CONFIG_SENSORS_MAX6875 is not set - # CONFIG_SENSORS_TSL2550 is not set - # CONFIG_I2C_DEBUG_CORE is not set -@@ -637,9 +675,27 @@ CONFIG_SPI_ATMEL=y - # CONFIG_SPI_AT25 is not set - CONFIG_SPI_SPIDEV=m - # CONFIG_SPI_TLE62X0 is not set -+CONFIG_HAVE_GPIO_LIB=y -+ -+# -+# GPIO Support -+# -+# CONFIG_DEBUG_GPIO is not set -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MCP23S08 is not set - # CONFIG_W1 is not set - # CONFIG_POWER_SUPPLY is not set - # CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set - CONFIG_WATCHDOG=y - # CONFIG_WATCHDOG_NOWAYOUT is not set - -@@ -732,12 +788,18 @@ CONFIG_SND_PCM_OSS_PLUGINS=y - # - # Generic devices - # -+CONFIG_SND_AC97_CODEC=m - # CONFIG_SND_DUMMY is not set - # CONFIG_SND_MTPAV is not set - # CONFIG_SND_SERIAL_U16550 is not set - # CONFIG_SND_MPU401 is not set - - # -+# AVR32 devices -+# -+CONFIG_SND_ATMEL_AC97=m -+ -+# - # SPI devices - # - CONFIG_SND_AT73C213=m -@@ -753,9 +815,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000 - # - - # -+# ALSA SoC audio for Freescale SOCs -+# -+ -+# - # Open Sound System - # - # CONFIG_SOUND_PRIME is not set -+CONFIG_AC97_BUS=m - # CONFIG_HID_SUPPORT is not set - CONFIG_USB_SUPPORT=y - # CONFIG_USB_ARCH_HAS_HCD is not set -@@ -765,10 +832,6 @@ CONFIG_USB_SUPPORT=y - # - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' - # -- --# --# USB Gadget Support --# - CONFIG_USB_GADGET=y - # CONFIG_USB_GADGET_DEBUG is not set - # CONFIG_USB_GADGET_DEBUG_FILES is not set -@@ -796,27 +859,31 @@ CONFIG_USB_FILE_STORAGE=m - # CONFIG_USB_FILE_STORAGE_TEST is not set - CONFIG_USB_G_SERIAL=m - # CONFIG_USB_MIDI_GADGET is not set --CONFIG_MMC=m -+# CONFIG_USB_G_PRINTER is not set -+CONFIG_MMC=y - # CONFIG_MMC_DEBUG is not set - # CONFIG_MMC_UNSAFE_RESUME is not set - - # - # MMC/SD Card Drivers - # --CONFIG_MMC_BLOCK=m -+CONFIG_MMC_BLOCK=y - CONFIG_MMC_BLOCK_BOUNCE=y - # CONFIG_SDIO_UART is not set - - # - # MMC/SD Host Controller Drivers - # -+CONFIG_MMC_ATMELMCI=y - CONFIG_MMC_SPI=m -+# CONFIG_MEMSTICK is not set - CONFIG_NEW_LEDS=y - CONFIG_LEDS_CLASS=m - - # - # LED drivers - # -+CONFIG_LEDS_ATMEL_PWM=m - CONFIG_LEDS_GPIO=m - - # -@@ -853,19 +920,22 @@ CONFIG_RTC_INTF_DEV=y - # CONFIG_RTC_DRV_PCF8563 is not set - # CONFIG_RTC_DRV_PCF8583 is not set - # CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set - - # - # SPI RTC drivers - # --# CONFIG_RTC_DRV_RS5C348 is not set - # CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set - - # - # Platform RTC drivers - # -+# CONFIG_RTC_DRV_DS1511 is not set - # CONFIG_RTC_DRV_DS1553 is not set --# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_M48T86 is not set - # CONFIG_RTC_DRV_M48T59 is not set - # CONFIG_RTC_DRV_V3020 is not set -@@ -883,13 +953,13 @@ CONFIG_RTC_DRV_AT32AP700X=y - # - # File systems - # --CONFIG_EXT2_FS=m -+CONFIG_EXT2_FS=y - # CONFIG_EXT2_FS_XATTR is not set - # CONFIG_EXT2_FS_XIP is not set --CONFIG_EXT3_FS=m -+CONFIG_EXT3_FS=y - # CONFIG_EXT3_FS_XATTR is not set - # CONFIG_EXT4DEV_FS is not set --CONFIG_JBD=m -+CONFIG_JBD=y - # CONFIG_JBD_DEBUG is not set - # CONFIG_REISERFS_FS is not set - # CONFIG_JFS_FS is not set -@@ -897,12 +967,10 @@ CONFIG_JBD=m - # CONFIG_XFS_FS is not set - # CONFIG_GFS2_FS is not set - # CONFIG_OCFS2_FS is not set --CONFIG_MINIX_FS=m --# CONFIG_ROMFS_FS is not set -+# CONFIG_DNOTIFY is not set - CONFIG_INOTIFY=y - CONFIG_INOTIFY_USER=y - # CONFIG_QUOTA is not set --# CONFIG_DNOTIFY is not set - # CONFIG_AUTOFS_FS is not set - # CONFIG_AUTOFS4_FS is not set - CONFIG_FUSE_FS=m -@@ -933,7 +1001,7 @@ CONFIG_SYSFS=y - CONFIG_TMPFS=y - # CONFIG_TMPFS_POSIX_ACL is not set - # CONFIG_HUGETLB_PAGE is not set --# CONFIG_CONFIGFS_FS is not set -+CONFIG_CONFIGFS_FS=y - - # - # Miscellaneous filesystems -@@ -957,8 +1025,10 @@ CONFIG_JFFS2_RTIME=y - # CONFIG_JFFS2_RUBIN is not set - # CONFIG_CRAMFS is not set - # CONFIG_VXFS_FS is not set -+CONFIG_MINIX_FS=m - # CONFIG_HPFS_FS is not set - # CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set - # CONFIG_SYSV_FS is not set - # CONFIG_UFS_FS is not set - CONFIG_NETWORK_FILESYSTEMS=y -@@ -1028,11 +1098,6 @@ CONFIG_NLS_ISO8859_1=m - # CONFIG_NLS_KOI8_U is not set - CONFIG_NLS_UTF8=m - # CONFIG_DLM is not set --CONFIG_INSTRUMENTATION=y --CONFIG_PROFILING=y --CONFIG_OPROFILE=m --CONFIG_KPROBES=y --# CONFIG_MARKERS is not set - - # - # Kernel hacking -@@ -1051,6 +1116,7 @@ CONFIG_SCHED_DEBUG=y - # CONFIG_SCHEDSTATS is not set - # CONFIG_TIMER_STATS is not set - # CONFIG_SLUB_DEBUG_ON is not set -+# CONFIG_SLUB_STATS is not set - # CONFIG_DEBUG_RT_MUTEXES is not set - # CONFIG_RT_MUTEX_TESTER is not set - # CONFIG_DEBUG_SPINLOCK is not set -@@ -1067,9 +1133,10 @@ CONFIG_DEBUG_BUGVERBOSE=y - # CONFIG_DEBUG_LIST is not set - # CONFIG_DEBUG_SG is not set - CONFIG_FRAME_POINTER=y --CONFIG_FORCED_INLINING=y - # CONFIG_BOOT_PRINTK_DELAY is not set - # CONFIG_RCU_TORTURE_TEST is not set -+# CONFIG_KPROBES_SANITY_TEST is not set -+# CONFIG_BACKTRACE_SELF_TEST is not set - # CONFIG_LKDTM is not set - # CONFIG_FAULT_INJECTION is not set - # CONFIG_SAMPLES is not set -@@ -1082,7 +1149,9 @@ CONFIG_FORCED_INLINING=y - # CONFIG_SECURITY_FILE_CAPABILITIES is not set - CONFIG_CRYPTO=y - CONFIG_CRYPTO_ALGAPI=m -+CONFIG_CRYPTO_AEAD=m - CONFIG_CRYPTO_BLKCIPHER=m -+# CONFIG_CRYPTO_SEQIV is not set - CONFIG_CRYPTO_HASH=m - CONFIG_CRYPTO_MANAGER=m - CONFIG_CRYPTO_HMAC=m -@@ -1101,6 +1170,9 @@ CONFIG_CRYPTO_CBC=m - # CONFIG_CRYPTO_PCBC is not set - # CONFIG_CRYPTO_LRW is not set - # CONFIG_CRYPTO_XTS is not set -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_CCM is not set - # CONFIG_CRYPTO_CRYPTD is not set - CONFIG_CRYPTO_DES=m - # CONFIG_CRYPTO_FCRYPT is not set -@@ -1115,12 +1187,14 @@ CONFIG_CRYPTO_DES=m - # CONFIG_CRYPTO_KHAZAD is not set - # CONFIG_CRYPTO_ANUBIS is not set - # CONFIG_CRYPTO_SEED is not set -+# CONFIG_CRYPTO_SALSA20 is not set - CONFIG_CRYPTO_DEFLATE=m - # CONFIG_CRYPTO_MICHAEL_MIC is not set - # CONFIG_CRYPTO_CRC32C is not set - # CONFIG_CRYPTO_CAMELLIA is not set - # CONFIG_CRYPTO_TEST is not set --# CONFIG_CRYPTO_AUTHENC is not set -+CONFIG_CRYPTO_AUTHENC=m -+# CONFIG_CRYPTO_LZO is not set - # CONFIG_CRYPTO_HW is not set - - # -@@ -1135,6 +1209,7 @@ CONFIG_CRC7=m - # CONFIG_LIBCRC32C is not set - CONFIG_ZLIB_INFLATE=y - CONFIG_ZLIB_DEFLATE=y -+CONFIG_GENERIC_ALLOCATOR=y - CONFIG_PLIST=y - CONFIG_HAS_IOMEM=y - CONFIG_HAS_IOPORT=y ---- a/arch/avr32/configs/atstk1003_defconfig -+++ b/arch/avr32/configs/atstk1003_defconfig -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Linux kernel version: 2.6.24-rc7 --# Wed Jan 9 22:54:34 2008 -+# Linux kernel version: 2.6.25.4 -+# Wed Jun 11 15:33:36 2008 - # - CONFIG_AVR32=y - CONFIG_GENERIC_GPIO=y -@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y - CONFIG_GENERIC_IRQ_PROBE=y - CONFIG_RWSEM_GENERIC_SPINLOCK=y - CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y - # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set - # CONFIG_ARCH_HAS_ILOG2_U32 is not set - # CONFIG_ARCH_HAS_ILOG2_U64 is not set --CONFIG_ARCH_SUPPORTS_OPROFILE=y - CONFIG_GENERIC_HWEIGHT=y - CONFIG_GENERIC_CALIBRATE_DELAY=y - CONFIG_GENERIC_BUG=y -@@ -39,17 +39,15 @@ CONFIG_BSD_PROCESS_ACCT_V3=y - CONFIG_TASKSTATS=y - CONFIG_TASK_DELAY_ACCT=y - # CONFIG_TASK_XACCT is not set --# CONFIG_USER_NS is not set --# CONFIG_PID_NS is not set - CONFIG_AUDIT=y - # CONFIG_IKCONFIG is not set - CONFIG_LOG_BUF_SHIFT=14 - # CONFIG_CGROUPS is not set --CONFIG_FAIR_GROUP_SCHED=y --CONFIG_FAIR_USER_SCHED=y --# CONFIG_FAIR_CGROUP_SCHED is not set -+# CONFIG_GROUP_SCHED is not set - CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y - CONFIG_RELAY=y -+# CONFIG_NAMESPACES is not set - CONFIG_BLK_DEV_INITRD=y - CONFIG_INITRAMFS_SOURCE="" - CONFIG_CC_OPTIMIZE_FOR_SIZE=y -@@ -63,11 +61,13 @@ CONFIG_HOTPLUG=y - CONFIG_PRINTK=y - CONFIG_BUG=y - CONFIG_ELF_CORE=y -+# CONFIG_COMPAT_BRK is not set - # CONFIG_BASE_FULL is not set - CONFIG_FUTEX=y - CONFIG_ANON_INODES=y - CONFIG_EPOLL=y - CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y - CONFIG_EVENTFD=y - CONFIG_SHMEM=y - CONFIG_VM_EVENT_COUNTERS=y -@@ -75,6 +75,14 @@ CONFIG_VM_EVENT_COUNTERS=y - # CONFIG_SLAB is not set - CONFIG_SLUB=y - # CONFIG_SLOB is not set -+CONFIG_PROFILING=y -+# CONFIG_MARKERS is not set -+CONFIG_OPROFILE=m -+CONFIG_HAVE_OPROFILE=y -+CONFIG_KPROBES=y -+CONFIG_HAVE_KPROBES=y -+# CONFIG_HAVE_KRETPROBES is not set -+CONFIG_PROC_PAGE_MONITOR=y - CONFIG_SLABINFO=y - CONFIG_RT_MUTEXES=y - # CONFIG_TINY_SHMEM is not set -@@ -103,10 +111,15 @@ CONFIG_IOSCHED_CFQ=y - CONFIG_DEFAULT_CFQ=y - # CONFIG_DEFAULT_NOOP is not set - CONFIG_DEFAULT_IOSCHED="cfq" -+CONFIG_CLASSIC_RCU=y - - # - # System Type and features - # -+CONFIG_TICK_ONESHOT=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y - CONFIG_SUBARCH_AVR32B=y - CONFIG_MMU=y - CONFIG_PERFORMANCE_COUNTERS=y -@@ -118,12 +131,16 @@ CONFIG_BOARD_ATSTK1000=y - # CONFIG_BOARD_ATSTK1002 is not set - CONFIG_BOARD_ATSTK1003=y - # CONFIG_BOARD_ATSTK1004 is not set -+# CONFIG_BOARD_ATSTK1006 is not set - # CONFIG_BOARD_ATSTK100X_CUSTOM is not set - # CONFIG_BOARD_ATSTK100X_SPI1 is not set - # CONFIG_BOARD_ATSTK1000_J2_LED is not set - # CONFIG_BOARD_ATSTK1000_J2_LED8 is not set - # CONFIG_BOARD_ATSTK1000_J2_RGB is not set - CONFIG_BOARD_ATSTK1000_EXTDAC=y -+# CONFIG_BOARD_ATSTK100X_ENABLE_AC97 is not set -+# CONFIG_BOARD_ATSTK1000_CF_HACKS is not set -+# CONFIG_BOARD_ATSTK100X_ENABLE_PSIF is not set - CONFIG_LOADER_U_BOOT=y - - # -@@ -132,6 +149,7 @@ CONFIG_LOADER_U_BOOT=y - # CONFIG_AP700X_32_BIT_SMC is not set - CONFIG_AP700X_16_BIT_SMC=y - # CONFIG_AP700X_8_BIT_SMC is not set -+CONFIG_GPIO_DEV=y - CONFIG_LOAD_ADDRESS=0x10000000 - CONFIG_ENTRY_ADDRESS=0x90000000 - CONFIG_PHYS_OFFSET=0x10000000 -@@ -157,16 +175,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 - CONFIG_ZONE_DMA_FLAG=0 - CONFIG_VIRT_TO_BUS=y - # CONFIG_OWNERSHIP_TRACE is not set -+CONFIG_NMI_DEBUGGING=y -+CONFIG_DW_DMAC=y - # CONFIG_HZ_100 is not set - CONFIG_HZ_250=y - # CONFIG_HZ_300 is not set - # CONFIG_HZ_1000 is not set - CONFIG_HZ=250 -+# CONFIG_SCHED_HRTICK is not set - CONFIG_CMDLINE="" - - # - # Power management options - # -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_PM=y -+# CONFIG_PM_LEGACY is not set -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y - - # - # CPU Frequency scaling -@@ -175,9 +203,9 @@ CONFIG_CPU_FREQ=y - CONFIG_CPU_FREQ_TABLE=y - # CONFIG_CPU_FREQ_DEBUG is not set - # CONFIG_CPU_FREQ_STAT is not set --CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set - # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set --# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y - # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set - CONFIG_CPU_FREQ_GOV_PERFORMANCE=y - # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -@@ -260,6 +288,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" - # CONFIG_NET_PKTGEN is not set - # CONFIG_NET_TCPPROBE is not set - # CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set - # CONFIG_IRDA is not set - # CONFIG_BT is not set - # CONFIG_AF_RXRPC is not set -@@ -376,13 +405,18 @@ CONFIG_BLK_DEV_NBD=m - CONFIG_BLK_DEV_RAM=m - CONFIG_BLK_DEV_RAM_COUNT=16 - CONFIG_BLK_DEV_RAM_SIZE=4096 --CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -+# CONFIG_BLK_DEV_XIP is not set - # CONFIG_CDROM_PKTCDVD is not set - # CONFIG_ATA_OVER_ETH is not set - CONFIG_MISC_DEVICES=y -+CONFIG_ATMEL_PWM=m -+CONFIG_ATMEL_TCLIB=y -+CONFIG_ATMEL_TCB_CLKSRC=y -+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 - # CONFIG_EEPROM_93CX6 is not set - CONFIG_ATMEL_SSC=m --# CONFIG_IDE is not set -+# CONFIG_ENCLOSURE_SERVICES is not set -+# CONFIG_HAVE_IDE is not set - - # - # SCSI device support -@@ -427,6 +461,7 @@ CONFIG_SCSI_LOWLEVEL=y - # CONFIG_SCSI_DEBUG is not set - CONFIG_ATA=m - # CONFIG_ATA_NONSTANDARD is not set -+# CONFIG_SATA_MV is not set - CONFIG_PATA_AT32=m - # CONFIG_PATA_PLATFORM is not set - # CONFIG_MD is not set -@@ -460,7 +495,6 @@ CONFIG_PPP_BSDCOMP=m - # CONFIG_PPPOL2TP is not set - # CONFIG_SLIP is not set - CONFIG_SLHC=m --# CONFIG_SHAPER is not set - # CONFIG_NETCONSOLE is not set - # CONFIG_NETPOLL is not set - # CONFIG_NET_POLL_CONTROLLER is not set -@@ -528,6 +562,7 @@ CONFIG_MOUSE_GPIO=m - # - CONFIG_SERIAL_ATMEL=y - CONFIG_SERIAL_ATMEL_CONSOLE=y -+CONFIG_SERIAL_ATMEL_PDC=y - # CONFIG_SERIAL_ATMEL_TTYAT is not set - CONFIG_SERIAL_CORE=y - CONFIG_SERIAL_CORE_CONSOLE=y -@@ -535,8 +570,6 @@ CONFIG_UNIX98_PTYS=y - # CONFIG_LEGACY_PTYS is not set - # CONFIG_IPMI_HANDLER is not set - # CONFIG_HW_RANDOM is not set --# CONFIG_RTC is not set --# CONFIG_GEN_RTC is not set - # CONFIG_R3964 is not set - # CONFIG_RAW_DRIVER is not set - # CONFIG_TCG_TPM is not set -@@ -554,6 +587,7 @@ CONFIG_I2C_ALGOBIT=m - # - # I2C Hardware Bus support - # -+CONFIG_I2C_ATMELTWI=m - CONFIG_I2C_GPIO=m - # CONFIG_I2C_OCORES is not set - # CONFIG_I2C_PARPORT_LIGHT is not set -@@ -564,13 +598,12 @@ CONFIG_I2C_GPIO=m - # - # Miscellaneous I2C Chip support - # --# CONFIG_SENSORS_DS1337 is not set --# CONFIG_SENSORS_DS1374 is not set - # CONFIG_DS1682 is not set - # CONFIG_SENSORS_EEPROM is not set - # CONFIG_SENSORS_PCF8574 is not set --# CONFIG_SENSORS_PCA9539 is not set -+# CONFIG_PCF8575 is not set - # CONFIG_SENSORS_PCF8591 is not set -+# CONFIG_TPS65010 is not set - # CONFIG_SENSORS_MAX6875 is not set - # CONFIG_SENSORS_TSL2550 is not set - # CONFIG_I2C_DEBUG_CORE is not set -@@ -597,9 +630,27 @@ CONFIG_SPI_ATMEL=y - # CONFIG_SPI_AT25 is not set - CONFIG_SPI_SPIDEV=m - # CONFIG_SPI_TLE62X0 is not set -+CONFIG_HAVE_GPIO_LIB=y -+ -+# -+# GPIO Support -+# -+# CONFIG_DEBUG_GPIO is not set -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MCP23S08 is not set - # CONFIG_W1 is not set - # CONFIG_POWER_SUPPLY is not set - # CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set - CONFIG_WATCHDOG=y - # CONFIG_WATCHDOG_NOWAYOUT is not set - -@@ -665,12 +716,18 @@ CONFIG_SND_VERBOSE_PROCFS=y - # - # Generic devices - # -+CONFIG_SND_AC97_CODEC=m - # CONFIG_SND_DUMMY is not set - # CONFIG_SND_MTPAV is not set - # CONFIG_SND_SERIAL_U16550 is not set - # CONFIG_SND_MPU401 is not set - - # -+# AVR32 devices -+# -+CONFIG_SND_ATMEL_AC97=m -+ -+# - # SPI devices - # - CONFIG_SND_AT73C213=m -@@ -686,9 +743,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000 - # - - # -+# ALSA SoC audio for Freescale SOCs -+# -+ -+# - # Open Sound System - # - # CONFIG_SOUND_PRIME is not set -+CONFIG_AC97_BUS=m - # CONFIG_HID_SUPPORT is not set - CONFIG_USB_SUPPORT=y - # CONFIG_USB_ARCH_HAS_HCD is not set -@@ -698,10 +760,6 @@ CONFIG_USB_SUPPORT=y - # - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' - # -- --# --# USB Gadget Support --# - CONFIG_USB_GADGET=y - # CONFIG_USB_GADGET_DEBUG is not set - # CONFIG_USB_GADGET_DEBUG_FILES is not set -@@ -729,27 +787,31 @@ CONFIG_USB_FILE_STORAGE=m - # CONFIG_USB_FILE_STORAGE_TEST is not set - CONFIG_USB_G_SERIAL=m - # CONFIG_USB_MIDI_GADGET is not set --CONFIG_MMC=m -+# CONFIG_USB_G_PRINTER is not set -+CONFIG_MMC=y - # CONFIG_MMC_DEBUG is not set - # CONFIG_MMC_UNSAFE_RESUME is not set - - # - # MMC/SD Card Drivers - # --CONFIG_MMC_BLOCK=m -+CONFIG_MMC_BLOCK=y - # CONFIG_MMC_BLOCK_BOUNCE is not set - # CONFIG_SDIO_UART is not set - - # - # MMC/SD Host Controller Drivers - # -+CONFIG_MMC_ATMELMCI=y - CONFIG_MMC_SPI=m -+# CONFIG_MEMSTICK is not set - CONFIG_NEW_LEDS=y - CONFIG_LEDS_CLASS=y - - # - # LED drivers - # -+CONFIG_LEDS_ATMEL_PWM=m - CONFIG_LEDS_GPIO=y - - # -@@ -786,19 +848,22 @@ CONFIG_RTC_INTF_DEV=y - # CONFIG_RTC_DRV_PCF8563 is not set - # CONFIG_RTC_DRV_PCF8583 is not set - # CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set - - # - # SPI RTC drivers - # --# CONFIG_RTC_DRV_RS5C348 is not set - # CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set - - # - # Platform RTC drivers - # -+# CONFIG_RTC_DRV_DS1511 is not set - # CONFIG_RTC_DRV_DS1553 is not set --# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_M48T86 is not set - # CONFIG_RTC_DRV_M48T59 is not set - # CONFIG_RTC_DRV_V3020 is not set -@@ -816,13 +881,13 @@ CONFIG_UIO=m - # - # File systems - # --CONFIG_EXT2_FS=m -+CONFIG_EXT2_FS=y - # CONFIG_EXT2_FS_XATTR is not set - # CONFIG_EXT2_FS_XIP is not set --CONFIG_EXT3_FS=m -+CONFIG_EXT3_FS=y - # CONFIG_EXT3_FS_XATTR is not set - # CONFIG_EXT4DEV_FS is not set --CONFIG_JBD=m -+CONFIG_JBD=y - # CONFIG_JBD_DEBUG is not set - # CONFIG_REISERFS_FS is not set - # CONFIG_JFS_FS is not set -@@ -830,12 +895,10 @@ CONFIG_JBD=m - # CONFIG_XFS_FS is not set - # CONFIG_GFS2_FS is not set - # CONFIG_OCFS2_FS is not set --# CONFIG_MINIX_FS is not set --# CONFIG_ROMFS_FS is not set -+# CONFIG_DNOTIFY is not set - CONFIG_INOTIFY=y - CONFIG_INOTIFY_USER=y - # CONFIG_QUOTA is not set --# CONFIG_DNOTIFY is not set - # CONFIG_AUTOFS_FS is not set - # CONFIG_AUTOFS4_FS is not set - CONFIG_FUSE_FS=m -@@ -866,7 +929,7 @@ CONFIG_SYSFS=y - CONFIG_TMPFS=y - # CONFIG_TMPFS_POSIX_ACL is not set - # CONFIG_HUGETLB_PAGE is not set --CONFIG_CONFIGFS_FS=m -+CONFIG_CONFIGFS_FS=y - - # - # Miscellaneous filesystems -@@ -891,8 +954,10 @@ CONFIG_JFFS2_RTIME=y - # CONFIG_JFFS2_RUBIN is not set - # CONFIG_CRAMFS is not set - # CONFIG_VXFS_FS is not set -+# CONFIG_MINIX_FS is not set - # CONFIG_HPFS_FS is not set - # CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set - # CONFIG_SYSV_FS is not set - # CONFIG_UFS_FS is not set - # CONFIG_NETWORK_FILESYSTEMS is not set -@@ -943,11 +1008,6 @@ CONFIG_NLS_ISO8859_1=m - # CONFIG_NLS_KOI8_U is not set - CONFIG_NLS_UTF8=m - # CONFIG_DLM is not set --CONFIG_INSTRUMENTATION=y --CONFIG_PROFILING=y --CONFIG_OPROFILE=m --CONFIG_KPROBES=y --# CONFIG_MARKERS is not set - - # - # Kernel hacking -@@ -965,6 +1025,7 @@ CONFIG_DETECT_SOFTLOCKUP=y - CONFIG_SCHED_DEBUG=y - # CONFIG_SCHEDSTATS is not set - # CONFIG_TIMER_STATS is not set -+# CONFIG_SLUB_STATS is not set - # CONFIG_DEBUG_RT_MUTEXES is not set - # CONFIG_RT_MUTEX_TESTER is not set - # CONFIG_DEBUG_SPINLOCK is not set -@@ -981,9 +1042,10 @@ CONFIG_DEBUG_BUGVERBOSE=y - # CONFIG_DEBUG_LIST is not set - # CONFIG_DEBUG_SG is not set - CONFIG_FRAME_POINTER=y --CONFIG_FORCED_INLINING=y - # CONFIG_BOOT_PRINTK_DELAY is not set - # CONFIG_RCU_TORTURE_TEST is not set -+# CONFIG_KPROBES_SANITY_TEST is not set -+# CONFIG_BACKTRACE_SELF_TEST is not set - # CONFIG_LKDTM is not set - # CONFIG_FAULT_INJECTION is not set - # CONFIG_SAMPLES is not set -@@ -1009,6 +1071,7 @@ CONFIG_CRC7=m - CONFIG_AUDIT_GENERIC=y - CONFIG_ZLIB_INFLATE=y - CONFIG_ZLIB_DEFLATE=y -+CONFIG_GENERIC_ALLOCATOR=y - CONFIG_PLIST=y - CONFIG_HAS_IOMEM=y - CONFIG_HAS_IOPORT=y ---- a/arch/avr32/configs/atstk1004_defconfig -+++ b/arch/avr32/configs/atstk1004_defconfig -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Linux kernel version: 2.6.24-rc7 --# Wed Jan 9 23:04:20 2008 -+# Linux kernel version: 2.6.25.4 -+# Wed Jun 11 15:37:49 2008 - # - CONFIG_AVR32=y - CONFIG_GENERIC_GPIO=y -@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y - CONFIG_GENERIC_IRQ_PROBE=y - CONFIG_RWSEM_GENERIC_SPINLOCK=y - CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y - # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set - # CONFIG_ARCH_HAS_ILOG2_U32 is not set - # CONFIG_ARCH_HAS_ILOG2_U64 is not set --CONFIG_ARCH_SUPPORTS_OPROFILE=y - CONFIG_GENERIC_HWEIGHT=y - CONFIG_GENERIC_CALIBRATE_DELAY=y - CONFIG_GENERIC_BUG=y -@@ -34,15 +34,15 @@ CONFIG_LOCALVERSION="" - # CONFIG_POSIX_MQUEUE is not set - # CONFIG_BSD_PROCESS_ACCT is not set - # CONFIG_TASKSTATS is not set --# CONFIG_USER_NS is not set --# CONFIG_PID_NS is not set - # CONFIG_AUDIT is not set - # CONFIG_IKCONFIG is not set - CONFIG_LOG_BUF_SHIFT=14 - # CONFIG_CGROUPS is not set --# CONFIG_FAIR_GROUP_SCHED is not set -+# CONFIG_GROUP_SCHED is not set - CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y - # CONFIG_RELAY is not set -+# CONFIG_NAMESPACES is not set - # CONFIG_BLK_DEV_INITRD is not set - CONFIG_CC_OPTIMIZE_FOR_SIZE=y - CONFIG_SYSCTL=y -@@ -54,24 +54,37 @@ CONFIG_HOTPLUG=y - CONFIG_PRINTK=y - CONFIG_BUG=y - CONFIG_ELF_CORE=y -+# CONFIG_COMPAT_BRK is not set - # CONFIG_BASE_FULL is not set - # CONFIG_FUTEX is not set - # CONFIG_EPOLL is not set - # CONFIG_SIGNALFD is not set -+# CONFIG_TIMERFD is not set - # CONFIG_EVENTFD is not set - CONFIG_SHMEM=y - CONFIG_VM_EVENT_COUNTERS=y - # CONFIG_SLAB is not set - # CONFIG_SLUB is not set - CONFIG_SLOB=y -+# CONFIG_PROFILING is not set -+# CONFIG_MARKERS is not set -+CONFIG_HAVE_OPROFILE=y -+CONFIG_HAVE_KPROBES=y -+# CONFIG_HAVE_KRETPROBES is not set -+# CONFIG_PROC_PAGE_MONITOR is not set - # CONFIG_TINY_SHMEM is not set - CONFIG_BASE_SMALL=1 - # CONFIG_MODULES is not set - # CONFIG_BLOCK is not set -+CONFIG_CLASSIC_RCU=y - - # - # System Type and features - # -+# CONFIG_TICK_ONESHOT is not set -+# CONFIG_NO_HZ is not set -+# CONFIG_HIGH_RES_TIMERS is not set -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y - CONFIG_SUBARCH_AVR32B=y - CONFIG_MMU=y - CONFIG_PERFORMANCE_COUNTERS=y -@@ -83,10 +96,14 @@ CONFIG_BOARD_ATSTK1000=y - # CONFIG_BOARD_ATSTK1002 is not set - # CONFIG_BOARD_ATSTK1003 is not set - CONFIG_BOARD_ATSTK1004=y -+# CONFIG_BOARD_ATSTK1006 is not set - # CONFIG_BOARD_ATSTK100X_CUSTOM is not set - # CONFIG_BOARD_ATSTK100X_SPI1 is not set - # CONFIG_BOARD_ATSTK1000_J2_LED is not set - CONFIG_BOARD_ATSTK1000_EXTDAC=y -+# CONFIG_BOARD_ATSTK100X_ENABLE_AC97 is not set -+# CONFIG_BOARD_ATSTK1000_CF_HACKS is not set -+# CONFIG_BOARD_ATSTK100X_ENABLE_PSIF is not set - CONFIG_LOADER_U_BOOT=y - - # -@@ -95,6 +112,7 @@ CONFIG_LOADER_U_BOOT=y - # CONFIG_AP700X_32_BIT_SMC is not set - CONFIG_AP700X_16_BIT_SMC=y - # CONFIG_AP700X_8_BIT_SMC is not set -+# CONFIG_GPIO_DEV is not set - CONFIG_LOAD_ADDRESS=0x10000000 - CONFIG_ENTRY_ADDRESS=0x90000000 - CONFIG_PHYS_OFFSET=0x10000000 -@@ -120,34 +138,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 - CONFIG_ZONE_DMA_FLAG=0 - CONFIG_VIRT_TO_BUS=y - # CONFIG_OWNERSHIP_TRACE is not set -+# CONFIG_NMI_DEBUGGING is not set -+CONFIG_DW_DMAC=y - # CONFIG_HZ_100 is not set - CONFIG_HZ_250=y - # CONFIG_HZ_300 is not set - # CONFIG_HZ_1000 is not set - CONFIG_HZ=250 -+# CONFIG_SCHED_HRTICK is not set - CONFIG_CMDLINE="" - - # - # Power management options - # -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+# CONFIG_PM is not set - - # - # CPU Frequency scaling - # --CONFIG_CPU_FREQ=y --CONFIG_CPU_FREQ_TABLE=y --# CONFIG_CPU_FREQ_DEBUG is not set --# CONFIG_CPU_FREQ_STAT is not set --CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y --# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set --# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set --# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set --CONFIG_CPU_FREQ_GOV_PERFORMANCE=y --# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set --CONFIG_CPU_FREQ_GOV_USERSPACE=y --CONFIG_CPU_FREQ_GOV_ONDEMAND=y --# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set --CONFIG_CPU_FREQ_AT32AP=y -+# CONFIG_CPU_FREQ is not set - - # - # Bus options -@@ -222,6 +232,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" - # - # CONFIG_NET_PKTGEN is not set - # CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set - # CONFIG_IRDA is not set - # CONFIG_BT is not set - # CONFIG_AF_RXRPC is not set -@@ -321,6 +332,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 - # CONFIG_MTD_UBI is not set - # CONFIG_PARPORT is not set - # CONFIG_MISC_DEVICES is not set -+# CONFIG_HAVE_IDE is not set - - # - # SCSI device support -@@ -358,6 +370,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 - # - CONFIG_SERIAL_ATMEL=y - CONFIG_SERIAL_ATMEL_CONSOLE=y -+# CONFIG_SERIAL_ATMEL_PDC is not set - # CONFIG_SERIAL_ATMEL_TTYAT is not set - CONFIG_SERIAL_CORE=y - CONFIG_SERIAL_CORE_CONSOLE=y -@@ -365,8 +378,6 @@ CONFIG_UNIX98_PTYS=y - # CONFIG_LEGACY_PTYS is not set - # CONFIG_IPMI_HANDLER is not set - # CONFIG_HW_RANDOM is not set --# CONFIG_RTC is not set --# CONFIG_GEN_RTC is not set - # CONFIG_R3964 is not set - # CONFIG_TCG_TPM is not set - # CONFIG_I2C is not set -@@ -389,9 +400,24 @@ CONFIG_SPI_ATMEL=y - # CONFIG_SPI_AT25 is not set - # CONFIG_SPI_SPIDEV is not set - # CONFIG_SPI_TLE62X0 is not set -+CONFIG_HAVE_GPIO_LIB=y -+ -+# -+# GPIO Support -+# -+ -+# -+# I2C GPIO expanders: -+# -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MCP23S08 is not set - # CONFIG_W1 is not set - # CONFIG_POWER_SUPPLY is not set - # CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set - CONFIG_WATCHDOG=y - # CONFIG_WATCHDOG_NOWAYOUT is not set - -@@ -471,10 +497,6 @@ CONFIG_USB_SUPPORT=y - # - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' - # -- --# --# USB Gadget Support --# - CONFIG_USB_GADGET=y - # CONFIG_USB_GADGET_DEBUG_FILES is not set - CONFIG_USB_GADGET_SELECTED=y -@@ -499,7 +521,9 @@ CONFIG_USB_ETH=y - # CONFIG_USB_FILE_STORAGE is not set - # CONFIG_USB_G_SERIAL is not set - # CONFIG_USB_MIDI_GADGET is not set -+# CONFIG_USB_G_PRINTER is not set - # CONFIG_MMC is not set -+# CONFIG_MEMSTICK is not set - # CONFIG_NEW_LEDS is not set - CONFIG_RTC_LIB=y - CONFIG_RTC_CLASS=y -@@ -519,15 +543,17 @@ CONFIG_RTC_INTF_DEV=y - # - # SPI RTC drivers - # --# CONFIG_RTC_DRV_RS5C348 is not set - # CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set - - # - # Platform RTC drivers - # -+# CONFIG_RTC_DRV_DS1511 is not set - # CONFIG_RTC_DRV_DS1553 is not set --# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set - # CONFIG_RTC_DRV_M48T86 is not set - # CONFIG_RTC_DRV_M48T59 is not set - # CONFIG_RTC_DRV_V3020 is not set -@@ -545,9 +571,9 @@ CONFIG_RTC_DRV_AT32AP700X=y - # - # File systems - # -+# CONFIG_DNOTIFY is not set - # CONFIG_INOTIFY is not set - # CONFIG_QUOTA is not set --# CONFIG_DNOTIFY is not set - # CONFIG_AUTOFS_FS is not set - # CONFIG_AUTOFS4_FS is not set - # CONFIG_FUSE_FS is not set -@@ -580,7 +606,6 @@ CONFIG_JFFS2_RTIME=y - # CONFIG_NETWORK_FILESYSTEMS is not set - # CONFIG_NLS is not set - # CONFIG_DLM is not set --# CONFIG_INSTRUMENTATION is not set - - # - # Kernel hacking -@@ -616,6 +641,7 @@ CONFIG_CRC32=y - # CONFIG_LIBCRC32C is not set - CONFIG_ZLIB_INFLATE=y - CONFIG_ZLIB_DEFLATE=y -+CONFIG_GENERIC_ALLOCATOR=y - CONFIG_HAS_IOMEM=y - CONFIG_HAS_IOPORT=y - CONFIG_HAS_DMA=y ---- /dev/null -+++ b/arch/avr32/configs/atstk1006_defconfig -@@ -0,0 +1,1235 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.25.4 -+# Wed Jun 11 15:40:45 2008 -+# -+CONFIG_AVR32=y -+CONFIG_GENERIC_GPIO=y -+CONFIG_GENERIC_HARDIRQS=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_TRACE_IRQFLAGS_SUPPORT=y -+CONFIG_HARDIRQS_SW_RESEND=y -+CONFIG_GENERIC_IRQ_PROBE=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y -+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set -+# CONFIG_ARCH_HAS_ILOG2_U32 is not set -+# CONFIG_ARCH_HAS_ILOG2_U64 is not set -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+CONFIG_GENERIC_BUG=y -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+CONFIG_POSIX_MQUEUE=y -+# CONFIG_BSD_PROCESS_ACCT is not set -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+# CONFIG_IKCONFIG is not set -+CONFIG_LOG_BUF_SHIFT=14 -+# CONFIG_CGROUPS is not set -+# CONFIG_GROUP_SCHED is not set -+CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y -+CONFIG_RELAY=y -+# CONFIG_NAMESPACES is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+CONFIG_SYSCTL=y -+CONFIG_EMBEDDED=y -+# CONFIG_SYSCTL_SYSCALL is not set -+CONFIG_KALLSYMS=y -+# CONFIG_KALLSYMS_ALL is not set -+# CONFIG_KALLSYMS_EXTRA_PASS is not set -+CONFIG_HOTPLUG=y -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_ELF_CORE=y -+# CONFIG_COMPAT_BRK is not set -+# CONFIG_BASE_FULL is not set -+CONFIG_FUTEX=y -+CONFIG_ANON_INODES=y -+CONFIG_EPOLL=y -+CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+CONFIG_SHMEM=y -+CONFIG_VM_EVENT_COUNTERS=y -+CONFIG_SLUB_DEBUG=y -+# CONFIG_SLAB is not set -+CONFIG_SLUB=y -+# CONFIG_SLOB is not set -+CONFIG_PROFILING=y -+# CONFIG_MARKERS is not set -+CONFIG_OPROFILE=m -+CONFIG_HAVE_OPROFILE=y -+CONFIG_KPROBES=y -+CONFIG_HAVE_KPROBES=y -+# CONFIG_HAVE_KRETPROBES is not set -+CONFIG_PROC_PAGE_MONITOR=y -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+# CONFIG_TINY_SHMEM is not set -+CONFIG_BASE_SMALL=1 -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_MODULE_FORCE_UNLOAD is not set -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+# CONFIG_KMOD is not set -+CONFIG_BLOCK=y -+# CONFIG_LBD is not set -+# CONFIG_BLK_DEV_IO_TRACE is not set -+# CONFIG_LSF is not set -+# CONFIG_BLK_DEV_BSG is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+# CONFIG_IOSCHED_AS is not set -+# CONFIG_IOSCHED_DEADLINE is not set -+CONFIG_IOSCHED_CFQ=y -+# CONFIG_DEFAULT_AS is not set -+# CONFIG_DEFAULT_DEADLINE is not set -+CONFIG_DEFAULT_CFQ=y -+# CONFIG_DEFAULT_NOOP is not set -+CONFIG_DEFAULT_IOSCHED="cfq" -+CONFIG_CLASSIC_RCU=y -+ -+# -+# System Type and features -+# -+CONFIG_TICK_ONESHOT=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -+CONFIG_SUBARCH_AVR32B=y -+CONFIG_MMU=y -+CONFIG_PERFORMANCE_COUNTERS=y -+CONFIG_PLATFORM_AT32AP=y -+CONFIG_CPU_AT32AP700X=y -+CONFIG_CPU_AT32AP7000=y -+CONFIG_BOARD_ATSTK1000=y -+# CONFIG_BOARD_ATNGW100 is not set -+# CONFIG_BOARD_ATSTK1002 is not set -+# CONFIG_BOARD_ATSTK1003 is not set -+# CONFIG_BOARD_ATSTK1004 is not set -+CONFIG_BOARD_ATSTK1006=y -+# CONFIG_BOARD_ATSTK100X_CUSTOM is not set -+# CONFIG_BOARD_ATSTK100X_SPI1 is not set -+# CONFIG_BOARD_ATSTK1000_J2_LED is not set -+# CONFIG_BOARD_ATSTK1000_J2_LED8 is not set -+# CONFIG_BOARD_ATSTK1000_J2_RGB is not set -+CONFIG_BOARD_ATSTK1000_EXTDAC=y -+# CONFIG_BOARD_ATSTK100X_ENABLE_AC97 is not set -+# CONFIG_BOARD_ATSTK1000_CF_HACKS is not set -+# CONFIG_BOARD_ATSTK100X_ENABLE_PSIF is not set -+CONFIG_LOADER_U_BOOT=y -+ -+# -+# Atmel AVR32 AP options -+# -+# CONFIG_AP700X_32_BIT_SMC is not set -+CONFIG_AP700X_16_BIT_SMC=y -+# CONFIG_AP700X_8_BIT_SMC is not set -+CONFIG_GPIO_DEV=y -+CONFIG_LOAD_ADDRESS=0x10000000 -+CONFIG_ENTRY_ADDRESS=0x90000000 -+CONFIG_PHYS_OFFSET=0x10000000 -+CONFIG_PREEMPT_NONE=y -+# CONFIG_PREEMPT_VOLUNTARY is not set -+# CONFIG_PREEMPT is not set -+# CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set -+# CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set -+# CONFIG_NEED_NODE_MEMMAP_SIZE is not set -+CONFIG_ARCH_FLATMEM_ENABLE=y -+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -+# CONFIG_ARCH_SPARSEMEM_ENABLE is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_DISCONTIGMEM_MANUAL is not set -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+# CONFIG_SPARSEMEM_STATIC is not set -+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set -+CONFIG_SPLIT_PTLOCK_CPUS=4 -+# CONFIG_RESOURCES_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_VIRT_TO_BUS=y -+# CONFIG_OWNERSHIP_TRACE is not set -+CONFIG_NMI_DEBUGGING=y -+CONFIG_DW_DMAC=y -+# CONFIG_HZ_100 is not set -+CONFIG_HZ_250=y -+# CONFIG_HZ_300 is not set -+# CONFIG_HZ_1000 is not set -+CONFIG_HZ=250 -+# CONFIG_SCHED_HRTICK is not set -+CONFIG_CMDLINE="" -+ -+# -+# Power management options -+# -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_PM=y -+# CONFIG_PM_LEGACY is not set -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y -+ -+# -+# CPU Frequency scaling -+# -+CONFIG_CPU_FREQ=y -+CONFIG_CPU_FREQ_TABLE=y -+# CONFIG_CPU_FREQ_DEBUG is not set -+# CONFIG_CPU_FREQ_STAT is not set -+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -+CONFIG_CPU_FREQ_GOV_USERSPACE=y -+CONFIG_CPU_FREQ_GOV_ONDEMAND=y -+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -+CONFIG_CPU_FREQ_AT32AP=y -+ -+# -+# Bus options -+# -+# CONFIG_ARCH_SUPPORTS_MSI is not set -+# CONFIG_PCCARD is not set -+ -+# -+# Executable file formats -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_BINFMT_MISC is not set -+ -+# -+# Networking -+# -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_PACKET=y -+CONFIG_PACKET_MMAP=y -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+CONFIG_XFRM_USER=m -+# CONFIG_XFRM_SUB_POLICY is not set -+# CONFIG_XFRM_MIGRATE is not set -+# CONFIG_XFRM_STATISTICS is not set -+CONFIG_NET_KEY=m -+# CONFIG_NET_KEY_MIGRATE is not set -+CONFIG_INET=y -+# CONFIG_IP_MULTICAST is not set -+# CONFIG_IP_ADVANCED_ROUTER is not set -+CONFIG_IP_FIB_HASH=y -+CONFIG_IP_PNP=y -+CONFIG_IP_PNP_DHCP=y -+# CONFIG_IP_PNP_BOOTP is not set -+# CONFIG_IP_PNP_RARP is not set -+CONFIG_NET_IPIP=m -+CONFIG_NET_IPGRE=m -+# CONFIG_ARPD is not set -+# CONFIG_SYN_COOKIES is not set -+CONFIG_INET_AH=m -+CONFIG_INET_ESP=m -+# CONFIG_INET_IPCOMP is not set -+# CONFIG_INET_XFRM_TUNNEL is not set -+CONFIG_INET_TUNNEL=m -+CONFIG_INET_XFRM_MODE_TRANSPORT=m -+CONFIG_INET_XFRM_MODE_TUNNEL=m -+CONFIG_INET_XFRM_MODE_BEET=m -+# CONFIG_INET_LRO is not set -+CONFIG_INET_DIAG=y -+CONFIG_INET_TCP_DIAG=y -+# CONFIG_TCP_CONG_ADVANCED is not set -+CONFIG_TCP_CONG_CUBIC=y -+CONFIG_DEFAULT_TCP_CONG="cubic" -+# CONFIG_TCP_MD5SIG is not set -+CONFIG_IPV6=m -+# CONFIG_IPV6_PRIVACY is not set -+# CONFIG_IPV6_ROUTER_PREF is not set -+# CONFIG_IPV6_OPTIMISTIC_DAD is not set -+CONFIG_INET6_AH=m -+CONFIG_INET6_ESP=m -+CONFIG_INET6_IPCOMP=m -+# CONFIG_IPV6_MIP6 is not set -+CONFIG_INET6_XFRM_TUNNEL=m -+CONFIG_INET6_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_TRANSPORT=m -+CONFIG_INET6_XFRM_MODE_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_BEET=m -+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -+CONFIG_IPV6_SIT=m -+CONFIG_IPV6_TUNNEL=m -+# CONFIG_IPV6_MULTIPLE_TABLES is not set -+# CONFIG_NETWORK_SECMARK is not set -+# CONFIG_NETFILTER is not set -+# CONFIG_IP_DCCP is not set -+# CONFIG_IP_SCTP is not set -+# CONFIG_TIPC is not set -+# CONFIG_ATM is not set -+CONFIG_BRIDGE=m -+# CONFIG_VLAN_8021Q is not set -+# CONFIG_DECNET is not set -+CONFIG_LLC=m -+# CONFIG_LLC2 is not set -+# CONFIG_IPX is not set -+# CONFIG_ATALK is not set -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+# CONFIG_NET_SCHED is not set -+ -+# -+# Network testing -+# -+# CONFIG_NET_PKTGEN is not set -+# CONFIG_NET_TCPPROBE is not set -+# CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set -+# CONFIG_IRDA is not set -+# CONFIG_BT is not set -+# CONFIG_AF_RXRPC is not set -+ -+# -+# Wireless -+# -+# CONFIG_CFG80211 is not set -+# CONFIG_WIRELESS_EXT is not set -+# CONFIG_MAC80211 is not set -+# CONFIG_IEEE80211 is not set -+# CONFIG_RFKILL is not set -+# CONFIG_NET_9P is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -+CONFIG_STANDALONE=y -+# CONFIG_PREVENT_FIRMWARE_BUILD is not set -+# CONFIG_FW_LOADER is not set -+# CONFIG_DEBUG_DRIVER is not set -+# CONFIG_DEBUG_DEVRES is not set -+# CONFIG_SYS_HYPERVISOR is not set -+# CONFIG_CONNECTOR is not set -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+# CONFIG_MTD_CONCAT is not set -+CONFIG_MTD_PARTITIONS=y -+# CONFIG_MTD_REDBOOT_PARTS is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLKDEVS=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL is not set -+# CONFIG_RFD_FTL is not set -+# CONFIG_SSFDC is not set -+# CONFIG_MTD_OOPS is not set -+ -+# -+# RAM/ROM/Flash chip drivers -+# -+CONFIG_MTD_CFI=y -+# CONFIG_MTD_JEDECPROBE is not set -+CONFIG_MTD_GEN_PROBE=y -+# CONFIG_MTD_CFI_ADV_OPTIONS is not set -+CONFIG_MTD_MAP_BANK_WIDTH_1=y -+CONFIG_MTD_MAP_BANK_WIDTH_2=y -+CONFIG_MTD_MAP_BANK_WIDTH_4=y -+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -+CONFIG_MTD_CFI_I1=y -+CONFIG_MTD_CFI_I2=y -+# CONFIG_MTD_CFI_I4 is not set -+# CONFIG_MTD_CFI_I8 is not set -+# CONFIG_MTD_CFI_INTELEXT is not set -+CONFIG_MTD_CFI_AMDSTD=y -+# CONFIG_MTD_CFI_STAA is not set -+CONFIG_MTD_CFI_UTIL=y -+# CONFIG_MTD_RAM is not set -+# CONFIG_MTD_ROM is not set -+# CONFIG_MTD_ABSENT is not set -+ -+# -+# Mapping drivers for chip access -+# -+# CONFIG_MTD_COMPLEX_MAPPINGS is not set -+CONFIG_MTD_PHYSMAP=y -+CONFIG_MTD_PHYSMAP_START=0x8000000 -+CONFIG_MTD_PHYSMAP_LEN=0x0 -+CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -+# CONFIG_MTD_PLATRAM is not set -+ -+# -+# Self-contained MTD device drivers -+# -+CONFIG_MTD_DATAFLASH=m -+CONFIG_MTD_M25P80=m -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+# CONFIG_MTD_BLOCK2MTD is not set -+ -+# -+# Disk-On-Chip Device Drivers -+# -+# CONFIG_MTD_DOC2000 is not set -+# CONFIG_MTD_DOC2001 is not set -+# CONFIG_MTD_DOC2001PLUS is not set -+CONFIG_MTD_NAND=y -+# CONFIG_MTD_NAND_VERIFY_WRITE is not set -+# CONFIG_MTD_NAND_ECC_SMC is not set -+# CONFIG_MTD_NAND_MUSEUM_IDS is not set -+CONFIG_MTD_NAND_IDS=y -+# CONFIG_MTD_NAND_DISKONCHIP is not set -+CONFIG_MTD_NAND_ATMEL=y -+CONFIG_MTD_NAND_ATMEL_ECC_HW=y -+# CONFIG_MTD_NAND_ATMEL_ECC_SOFT is not set -+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set -+# CONFIG_MTD_NAND_NANDSIM is not set -+# CONFIG_MTD_NAND_PLATFORM is not set -+# CONFIG_MTD_ONENAND is not set -+ -+# -+# UBI - Unsorted block images -+# -+CONFIG_MTD_UBI=m -+CONFIG_MTD_UBI_WL_THRESHOLD=4096 -+CONFIG_MTD_UBI_BEB_RESERVE=1 -+CONFIG_MTD_UBI_GLUEBI=y -+ -+# -+# UBI debugging options -+# -+# CONFIG_MTD_UBI_DEBUG is not set -+# CONFIG_PARPORT is not set -+CONFIG_BLK_DEV=y -+# CONFIG_BLK_DEV_COW_COMMON is not set -+CONFIG_BLK_DEV_LOOP=m -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+CONFIG_BLK_DEV_NBD=m -+CONFIG_BLK_DEV_RAM=m -+CONFIG_BLK_DEV_RAM_COUNT=16 -+CONFIG_BLK_DEV_RAM_SIZE=4096 -+# CONFIG_BLK_DEV_XIP is not set -+# CONFIG_CDROM_PKTCDVD is not set -+# CONFIG_ATA_OVER_ETH is not set -+CONFIG_MISC_DEVICES=y -+CONFIG_ATMEL_PWM=m -+CONFIG_ATMEL_TCLIB=y -+CONFIG_ATMEL_TCB_CLKSRC=y -+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 -+# CONFIG_EEPROM_93CX6 is not set -+CONFIG_ATMEL_SSC=m -+# CONFIG_ENCLOSURE_SERVICES is not set -+# CONFIG_HAVE_IDE is not set -+ -+# -+# SCSI device support -+# -+# CONFIG_RAID_ATTRS is not set -+CONFIG_SCSI=m -+CONFIG_SCSI_DMA=y -+# CONFIG_SCSI_TGT is not set -+# CONFIG_SCSI_NETLINK is not set -+# CONFIG_SCSI_PROC_FS is not set -+ -+# -+# SCSI support type (disk, tape, CD-ROM) -+# -+CONFIG_BLK_DEV_SD=m -+# CONFIG_CHR_DEV_ST is not set -+# CONFIG_CHR_DEV_OSST is not set -+CONFIG_BLK_DEV_SR=m -+# CONFIG_BLK_DEV_SR_VENDOR is not set -+# CONFIG_CHR_DEV_SG is not set -+# CONFIG_CHR_DEV_SCH is not set -+ -+# -+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -+# -+# CONFIG_SCSI_MULTI_LUN is not set -+# CONFIG_SCSI_CONSTANTS is not set -+# CONFIG_SCSI_LOGGING is not set -+# CONFIG_SCSI_SCAN_ASYNC is not set -+CONFIG_SCSI_WAIT_SCAN=m -+ -+# -+# SCSI Transports -+# -+# CONFIG_SCSI_SPI_ATTRS is not set -+# CONFIG_SCSI_FC_ATTRS is not set -+# CONFIG_SCSI_ISCSI_ATTRS is not set -+# CONFIG_SCSI_SAS_LIBSAS is not set -+# CONFIG_SCSI_SRP_ATTRS is not set -+# CONFIG_SCSI_LOWLEVEL is not set -+CONFIG_ATA=m -+# CONFIG_ATA_NONSTANDARD is not set -+# CONFIG_SATA_MV is not set -+CONFIG_PATA_AT32=m -+# CONFIG_PATA_PLATFORM is not set -+# CONFIG_MD is not set -+CONFIG_NETDEVICES=y -+# CONFIG_NETDEVICES_MULTIQUEUE is not set -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_MACVLAN is not set -+# CONFIG_EQUALIZER is not set -+CONFIG_TUN=m -+# CONFIG_VETH is not set -+CONFIG_PHYLIB=y -+ -+# -+# MII PHY device drivers -+# -+# CONFIG_MARVELL_PHY is not set -+# CONFIG_DAVICOM_PHY is not set -+# CONFIG_QSEMI_PHY is not set -+# CONFIG_LXT_PHY is not set -+# CONFIG_CICADA_PHY is not set -+# CONFIG_VITESSE_PHY is not set -+# CONFIG_SMSC_PHY is not set -+# CONFIG_BROADCOM_PHY is not set -+# CONFIG_ICPLUS_PHY is not set -+# CONFIG_REALTEK_PHY is not set -+# CONFIG_FIXED_PHY is not set -+# CONFIG_MDIO_BITBANG is not set -+CONFIG_NET_ETHERNET=y -+# CONFIG_MII is not set -+CONFIG_MACB=y -+# CONFIG_ENC28J60 is not set -+# CONFIG_IBM_NEW_EMAC_ZMII is not set -+# CONFIG_IBM_NEW_EMAC_RGMII is not set -+# CONFIG_IBM_NEW_EMAC_TAH is not set -+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -+# CONFIG_B44 is not set -+# CONFIG_NETDEV_1000 is not set -+# CONFIG_NETDEV_10000 is not set -+ -+# -+# Wireless LAN -+# -+# CONFIG_WLAN_PRE80211 is not set -+# CONFIG_WLAN_80211 is not set -+# CONFIG_WAN is not set -+CONFIG_PPP=m -+# CONFIG_PPP_MULTILINK is not set -+# CONFIG_PPP_FILTER is not set -+CONFIG_PPP_ASYNC=m -+# CONFIG_PPP_SYNC_TTY is not set -+CONFIG_PPP_DEFLATE=m -+CONFIG_PPP_BSDCOMP=m -+# CONFIG_PPP_MPPE is not set -+# CONFIG_PPPOE is not set -+# CONFIG_PPPOL2TP is not set -+# CONFIG_SLIP is not set -+CONFIG_SLHC=m -+# CONFIG_NETCONSOLE is not set -+# CONFIG_NETPOLL is not set -+# CONFIG_NET_POLL_CONTROLLER is not set -+# CONFIG_ISDN is not set -+# CONFIG_PHONE is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=m -+# CONFIG_INPUT_FF_MEMLESS is not set -+CONFIG_INPUT_POLLDEV=m -+ -+# -+# Userland interfaces -+# -+CONFIG_INPUT_MOUSEDEV=m -+CONFIG_INPUT_MOUSEDEV_PSAUX=y -+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -+# CONFIG_INPUT_JOYDEV is not set -+CONFIG_INPUT_EVDEV=m -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+CONFIG_INPUT_KEYBOARD=y -+# CONFIG_KEYBOARD_ATKBD is not set -+# CONFIG_KEYBOARD_SUNKBD is not set -+# CONFIG_KEYBOARD_LKKBD is not set -+# CONFIG_KEYBOARD_XTKBD is not set -+# CONFIG_KEYBOARD_NEWTON is not set -+# CONFIG_KEYBOARD_STOWAWAY is not set -+CONFIG_KEYBOARD_GPIO=m -+CONFIG_INPUT_MOUSE=y -+# CONFIG_MOUSE_PS2 is not set -+# CONFIG_MOUSE_SERIAL is not set -+# CONFIG_MOUSE_VSXXXAA is not set -+CONFIG_MOUSE_GPIO=m -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+# CONFIG_INPUT_TOUCHSCREEN is not set -+# CONFIG_INPUT_MISC is not set -+ -+# -+# Hardware I/O ports -+# -+# CONFIG_SERIO is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+# CONFIG_VT is not set -+# CONFIG_SERIAL_NONSTANDARD is not set -+ -+# -+# Serial drivers -+# -+# CONFIG_SERIAL_8250 is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_ATMEL=y -+CONFIG_SERIAL_ATMEL_CONSOLE=y -+CONFIG_SERIAL_ATMEL_PDC=y -+# CONFIG_SERIAL_ATMEL_TTYAT is not set -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+CONFIG_UNIX98_PTYS=y -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+CONFIG_I2C=m -+CONFIG_I2C_BOARDINFO=y -+CONFIG_I2C_CHARDEV=m -+ -+# -+# I2C Algorithms -+# -+CONFIG_I2C_ALGOBIT=m -+# CONFIG_I2C_ALGOPCF is not set -+# CONFIG_I2C_ALGOPCA is not set -+ -+# -+# I2C Hardware Bus support -+# -+CONFIG_I2C_ATMELTWI=m -+CONFIG_I2C_GPIO=m -+# CONFIG_I2C_OCORES is not set -+# CONFIG_I2C_PARPORT_LIGHT is not set -+# CONFIG_I2C_SIMTEC is not set -+# CONFIG_I2C_TAOS_EVM is not set -+# CONFIG_I2C_STUB is not set -+ -+# -+# Miscellaneous I2C Chip support -+# -+# CONFIG_DS1682 is not set -+# CONFIG_SENSORS_EEPROM is not set -+# CONFIG_SENSORS_PCF8574 is not set -+# CONFIG_PCF8575 is not set -+# CONFIG_SENSORS_PCF8591 is not set -+# CONFIG_TPS65010 is not set -+# CONFIG_SENSORS_MAX6875 is not set -+# CONFIG_SENSORS_TSL2550 is not set -+# CONFIG_I2C_DEBUG_CORE is not set -+# CONFIG_I2C_DEBUG_ALGO is not set -+# CONFIG_I2C_DEBUG_BUS is not set -+# CONFIG_I2C_DEBUG_CHIP is not set -+ -+# -+# SPI support -+# -+CONFIG_SPI=y -+# CONFIG_SPI_DEBUG is not set -+CONFIG_SPI_MASTER=y -+ -+# -+# SPI Master Controller Drivers -+# -+CONFIG_SPI_ATMEL=y -+# CONFIG_SPI_BITBANG is not set -+ -+# -+# SPI Protocol Masters -+# -+# CONFIG_SPI_AT25 is not set -+CONFIG_SPI_SPIDEV=m -+# CONFIG_SPI_TLE62X0 is not set -+CONFIG_HAVE_GPIO_LIB=y -+ -+# -+# GPIO Support -+# -+# CONFIG_DEBUG_GPIO is not set -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MCP23S08 is not set -+# CONFIG_W1 is not set -+# CONFIG_POWER_SUPPLY is not set -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+CONFIG_WATCHDOG=y -+# CONFIG_WATCHDOG_NOWAYOUT is not set -+ -+# -+# Watchdog Device Drivers -+# -+# CONFIG_SOFT_WATCHDOG is not set -+CONFIG_AT32AP700X_WDT=y -+ -+# -+# Sonics Silicon Backplane -+# -+CONFIG_SSB_POSSIBLE=y -+# CONFIG_SSB is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MFD_SM501 is not set -+ -+# -+# Multimedia devices -+# -+# CONFIG_VIDEO_DEV is not set -+# CONFIG_DVB_CORE is not set -+# CONFIG_DAB is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VGASTATE is not set -+# CONFIG_VIDEO_OUTPUT_CONTROL is not set -+CONFIG_FB=y -+# CONFIG_FIRMWARE_EDID is not set -+# CONFIG_FB_DDC is not set -+CONFIG_FB_CFB_FILLRECT=y -+CONFIG_FB_CFB_COPYAREA=y -+CONFIG_FB_CFB_IMAGEBLIT=y -+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -+# CONFIG_FB_SYS_FILLRECT is not set -+# CONFIG_FB_SYS_COPYAREA is not set -+# CONFIG_FB_SYS_IMAGEBLIT is not set -+# CONFIG_FB_SYS_FOPS is not set -+CONFIG_FB_DEFERRED_IO=y -+# CONFIG_FB_SVGALIB is not set -+# CONFIG_FB_MACMODES is not set -+# CONFIG_FB_BACKLIGHT is not set -+# CONFIG_FB_MODE_HELPERS is not set -+# CONFIG_FB_TILEBLITTING is not set -+ -+# -+# Frame buffer hardware drivers -+# -+# CONFIG_FB_S1D13XXX is not set -+CONFIG_FB_ATMEL=y -+# CONFIG_FB_VIRTUAL is not set -+CONFIG_BACKLIGHT_LCD_SUPPORT=y -+CONFIG_LCD_CLASS_DEVICE=y -+CONFIG_LCD_LTV350QV=y -+# CONFIG_BACKLIGHT_CLASS_DEVICE is not set -+ -+# -+# Display device support -+# -+# CONFIG_DISPLAY_SUPPORT is not set -+# CONFIG_LOGO is not set -+ -+# -+# Sound -+# -+CONFIG_SOUND=m -+ -+# -+# Advanced Linux Sound Architecture -+# -+CONFIG_SND=m -+CONFIG_SND_TIMER=m -+CONFIG_SND_PCM=m -+# CONFIG_SND_SEQUENCER is not set -+CONFIG_SND_OSSEMUL=y -+CONFIG_SND_MIXER_OSS=m -+CONFIG_SND_PCM_OSS=m -+CONFIG_SND_PCM_OSS_PLUGINS=y -+# CONFIG_SND_DYNAMIC_MINORS is not set -+# CONFIG_SND_SUPPORT_OLD_API is not set -+# CONFIG_SND_VERBOSE_PROCFS is not set -+# CONFIG_SND_VERBOSE_PRINTK is not set -+# CONFIG_SND_DEBUG is not set -+ -+# -+# Generic devices -+# -+CONFIG_SND_AC97_CODEC=m -+# CONFIG_SND_DUMMY is not set -+# CONFIG_SND_MTPAV is not set -+# CONFIG_SND_SERIAL_U16550 is not set -+# CONFIG_SND_MPU401 is not set -+ -+# -+# AVR32 devices -+# -+CONFIG_SND_ATMEL_AC97=m -+ -+# -+# SPI devices -+# -+CONFIG_SND_AT73C213=m -+CONFIG_SND_AT73C213_TARGET_BITRATE=48000 -+ -+# -+# System on Chip audio support -+# -+# CONFIG_SND_SOC is not set -+ -+# -+# SoC Audio support for SuperH -+# -+ -+# -+# ALSA SoC audio for Freescale SOCs -+# -+ -+# -+# Open Sound System -+# -+# CONFIG_SOUND_PRIME is not set -+CONFIG_AC97_BUS=m -+# CONFIG_HID_SUPPORT is not set -+CONFIG_USB_SUPPORT=y -+# CONFIG_USB_ARCH_HAS_HCD is not set -+# CONFIG_USB_ARCH_HAS_OHCI is not set -+# CONFIG_USB_ARCH_HAS_EHCI is not set -+ -+# -+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -+# -+CONFIG_USB_GADGET=y -+# CONFIG_USB_GADGET_DEBUG is not set -+# CONFIG_USB_GADGET_DEBUG_FILES is not set -+# CONFIG_USB_GADGET_DEBUG_FS is not set -+CONFIG_USB_GADGET_SELECTED=y -+# CONFIG_USB_GADGET_AMD5536UDC is not set -+CONFIG_USB_GADGET_ATMEL_USBA=y -+CONFIG_USB_ATMEL_USBA=y -+# CONFIG_USB_GADGET_FSL_USB2 is not set -+# CONFIG_USB_GADGET_NET2280 is not set -+# CONFIG_USB_GADGET_PXA2XX is not set -+# CONFIG_USB_GADGET_M66592 is not set -+# CONFIG_USB_GADGET_GOKU is not set -+# CONFIG_USB_GADGET_LH7A40X is not set -+# CONFIG_USB_GADGET_OMAP is not set -+# CONFIG_USB_GADGET_S3C2410 is not set -+# CONFIG_USB_GADGET_AT91 is not set -+# CONFIG_USB_GADGET_DUMMY_HCD is not set -+CONFIG_USB_GADGET_DUALSPEED=y -+CONFIG_USB_ZERO=m -+CONFIG_USB_ETH=m -+CONFIG_USB_ETH_RNDIS=y -+CONFIG_USB_GADGETFS=m -+CONFIG_USB_FILE_STORAGE=m -+# CONFIG_USB_FILE_STORAGE_TEST is not set -+CONFIG_USB_G_SERIAL=m -+# CONFIG_USB_MIDI_GADGET is not set -+# CONFIG_USB_G_PRINTER is not set -+CONFIG_MMC=y -+# CONFIG_MMC_DEBUG is not set -+# CONFIG_MMC_UNSAFE_RESUME is not set -+ -+# -+# MMC/SD Card Drivers -+# -+CONFIG_MMC_BLOCK=y -+CONFIG_MMC_BLOCK_BOUNCE=y -+# CONFIG_SDIO_UART is not set -+ -+# -+# MMC/SD Host Controller Drivers -+# -+CONFIG_MMC_ATMELMCI=y -+CONFIG_MMC_SPI=m -+# CONFIG_MEMSTICK is not set -+CONFIG_NEW_LEDS=y -+CONFIG_LEDS_CLASS=m -+ -+# -+# LED drivers -+# -+CONFIG_LEDS_ATMEL_PWM=m -+CONFIG_LEDS_GPIO=m -+ -+# -+# LED Triggers -+# -+CONFIG_LEDS_TRIGGERS=y -+CONFIG_LEDS_TRIGGER_TIMER=m -+CONFIG_LEDS_TRIGGER_HEARTBEAT=m -+CONFIG_RTC_LIB=y -+CONFIG_RTC_CLASS=y -+CONFIG_RTC_HCTOSYS=y -+CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -+# CONFIG_RTC_DEBUG is not set -+ -+# -+# RTC interfaces -+# -+CONFIG_RTC_INTF_SYSFS=y -+CONFIG_RTC_INTF_PROC=y -+CONFIG_RTC_INTF_DEV=y -+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -+# CONFIG_RTC_DRV_TEST is not set -+ -+# -+# I2C RTC drivers -+# -+# CONFIG_RTC_DRV_DS1307 is not set -+# CONFIG_RTC_DRV_DS1374 is not set -+# CONFIG_RTC_DRV_DS1672 is not set -+# CONFIG_RTC_DRV_MAX6900 is not set -+# CONFIG_RTC_DRV_RS5C372 is not set -+# CONFIG_RTC_DRV_ISL1208 is not set -+# CONFIG_RTC_DRV_X1205 is not set -+# CONFIG_RTC_DRV_PCF8563 is not set -+# CONFIG_RTC_DRV_PCF8583 is not set -+# CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set -+ -+# -+# SPI RTC drivers -+# -+# CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set -+ -+# -+# Platform RTC drivers -+# -+# CONFIG_RTC_DRV_DS1511 is not set -+# CONFIG_RTC_DRV_DS1553 is not set -+# CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set -+# CONFIG_RTC_DRV_M48T86 is not set -+# CONFIG_RTC_DRV_M48T59 is not set -+# CONFIG_RTC_DRV_V3020 is not set -+ -+# -+# on-CPU RTC drivers -+# -+CONFIG_RTC_DRV_AT32AP700X=y -+ -+# -+# Userspace I/O -+# -+# CONFIG_UIO is not set -+ -+# -+# File systems -+# -+CONFIG_EXT2_FS=y -+# CONFIG_EXT2_FS_XATTR is not set -+# CONFIG_EXT2_FS_XIP is not set -+CONFIG_EXT3_FS=y -+# CONFIG_EXT3_FS_XATTR is not set -+# CONFIG_EXT4DEV_FS is not set -+CONFIG_JBD=y -+# CONFIG_JBD_DEBUG is not set -+# CONFIG_REISERFS_FS is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+# CONFIG_XFS_FS is not set -+# CONFIG_GFS2_FS is not set -+# CONFIG_OCFS2_FS is not set -+# CONFIG_DNOTIFY is not set -+CONFIG_INOTIFY=y -+CONFIG_INOTIFY_USER=y -+# CONFIG_QUOTA is not set -+# CONFIG_AUTOFS_FS is not set -+# CONFIG_AUTOFS4_FS is not set -+CONFIG_FUSE_FS=m -+ -+# -+# CD-ROM/DVD Filesystems -+# -+# CONFIG_ISO9660_FS is not set -+# CONFIG_UDF_FS is not set -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=m -+CONFIG_MSDOS_FS=m -+CONFIG_VFAT_FS=m -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -+# CONFIG_NTFS_FS is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+CONFIG_PROC_KCORE=y -+CONFIG_PROC_SYSCTL=y -+CONFIG_SYSFS=y -+CONFIG_TMPFS=y -+# CONFIG_TMPFS_POSIX_ACL is not set -+# CONFIG_HUGETLB_PAGE is not set -+CONFIG_CONFIGFS_FS=y -+ -+# -+# Miscellaneous filesystems -+# -+# CONFIG_ADFS_FS is not set -+# CONFIG_AFFS_FS is not set -+# CONFIG_HFS_FS is not set -+# CONFIG_HFSPLUS_FS is not set -+# CONFIG_BEFS_FS is not set -+# CONFIG_BFS_FS is not set -+# CONFIG_EFS_FS is not set -+CONFIG_JFFS2_FS=y -+CONFIG_JFFS2_FS_DEBUG=0 -+# CONFIG_JFFS2_FS_WRITEBUFFER is not set -+# CONFIG_JFFS2_SUMMARY is not set -+# CONFIG_JFFS2_FS_XATTR is not set -+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -+CONFIG_JFFS2_ZLIB=y -+# CONFIG_JFFS2_LZO is not set -+CONFIG_JFFS2_RTIME=y -+# CONFIG_JFFS2_RUBIN is not set -+# CONFIG_CRAMFS is not set -+# CONFIG_VXFS_FS is not set -+CONFIG_MINIX_FS=m -+# CONFIG_HPFS_FS is not set -+# CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_SYSV_FS is not set -+# CONFIG_UFS_FS is not set -+CONFIG_NETWORK_FILESYSTEMS=y -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3=y -+# CONFIG_NFS_V3_ACL is not set -+# CONFIG_NFS_V4 is not set -+# CONFIG_NFS_DIRECTIO is not set -+# CONFIG_NFSD is not set -+CONFIG_ROOT_NFS=y -+CONFIG_LOCKD=y -+CONFIG_LOCKD_V4=y -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=y -+# CONFIG_SUNRPC_BIND34 is not set -+# CONFIG_RPCSEC_GSS_KRB5 is not set -+# CONFIG_RPCSEC_GSS_SPKM3 is not set -+# CONFIG_SMB_FS is not set -+# CONFIG_CIFS is not set -+# CONFIG_NCP_FS is not set -+# CONFIG_CODA_FS is not set -+# CONFIG_AFS_FS is not set -+ -+# -+# Partition Types -+# -+# CONFIG_PARTITION_ADVANCED is not set -+CONFIG_MSDOS_PARTITION=y -+CONFIG_NLS=m -+CONFIG_NLS_DEFAULT="iso8859-1" -+CONFIG_NLS_CODEPAGE_437=m -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+# CONFIG_NLS_CODEPAGE_850 is not set -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+# CONFIG_NLS_CODEPAGE_866 is not set -+# CONFIG_NLS_CODEPAGE_869 is not set -+# CONFIG_NLS_CODEPAGE_936 is not set -+# CONFIG_NLS_CODEPAGE_950 is not set -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+# CONFIG_NLS_CODEPAGE_1250 is not set -+# CONFIG_NLS_CODEPAGE_1251 is not set -+# CONFIG_NLS_ASCII is not set -+CONFIG_NLS_ISO8859_1=m -+# CONFIG_NLS_ISO8859_2 is not set -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+CONFIG_NLS_UTF8=m -+# CONFIG_DLM is not set -+ -+# -+# Kernel hacking -+# -+# CONFIG_PRINTK_TIME is not set -+CONFIG_ENABLE_WARN_DEPRECATED=y -+CONFIG_ENABLE_MUST_CHECK=y -+CONFIG_MAGIC_SYSRQ=y -+# CONFIG_UNUSED_SYMBOLS is not set -+CONFIG_DEBUG_FS=y -+# CONFIG_HEADERS_CHECK is not set -+CONFIG_DEBUG_KERNEL=y -+# CONFIG_DEBUG_SHIRQ is not set -+CONFIG_DETECT_SOFTLOCKUP=y -+CONFIG_SCHED_DEBUG=y -+# CONFIG_SCHEDSTATS is not set -+# CONFIG_TIMER_STATS is not set -+# CONFIG_SLUB_DEBUG_ON is not set -+# CONFIG_SLUB_STATS is not set -+# CONFIG_DEBUG_RT_MUTEXES is not set -+# CONFIG_RT_MUTEX_TESTER is not set -+# CONFIG_DEBUG_SPINLOCK is not set -+# CONFIG_DEBUG_MUTEXES is not set -+# CONFIG_DEBUG_LOCK_ALLOC is not set -+# CONFIG_PROVE_LOCKING is not set -+# CONFIG_LOCK_STAT is not set -+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -+# CONFIG_DEBUG_KOBJECT is not set -+CONFIG_DEBUG_BUGVERBOSE=y -+# CONFIG_DEBUG_INFO is not set -+# CONFIG_DEBUG_VM is not set -+# CONFIG_DEBUG_LIST is not set -+# CONFIG_DEBUG_SG is not set -+CONFIG_FRAME_POINTER=y -+# CONFIG_BOOT_PRINTK_DELAY is not set -+# CONFIG_RCU_TORTURE_TEST is not set -+# CONFIG_KPROBES_SANITY_TEST is not set -+# CONFIG_BACKTRACE_SELF_TEST is not set -+# CONFIG_LKDTM is not set -+# CONFIG_FAULT_INJECTION is not set -+# CONFIG_SAMPLES is not set -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITY_FILE_CAPABILITIES is not set -+CONFIG_CRYPTO=y -+CONFIG_CRYPTO_ALGAPI=m -+CONFIG_CRYPTO_AEAD=m -+CONFIG_CRYPTO_BLKCIPHER=m -+# CONFIG_CRYPTO_SEQIV is not set -+CONFIG_CRYPTO_HASH=m -+CONFIG_CRYPTO_MANAGER=m -+CONFIG_CRYPTO_HMAC=m -+# CONFIG_CRYPTO_XCBC is not set -+# CONFIG_CRYPTO_NULL is not set -+# CONFIG_CRYPTO_MD4 is not set -+CONFIG_CRYPTO_MD5=m -+CONFIG_CRYPTO_SHA1=m -+# CONFIG_CRYPTO_SHA256 is not set -+# CONFIG_CRYPTO_SHA512 is not set -+# CONFIG_CRYPTO_WP512 is not set -+# CONFIG_CRYPTO_TGR192 is not set -+# CONFIG_CRYPTO_GF128MUL is not set -+# CONFIG_CRYPTO_ECB is not set -+CONFIG_CRYPTO_CBC=m -+# CONFIG_CRYPTO_PCBC is not set -+# CONFIG_CRYPTO_LRW is not set -+# CONFIG_CRYPTO_XTS is not set -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_CCM is not set -+# CONFIG_CRYPTO_CRYPTD is not set -+CONFIG_CRYPTO_DES=m -+# CONFIG_CRYPTO_FCRYPT is not set -+# CONFIG_CRYPTO_BLOWFISH is not set -+# CONFIG_CRYPTO_TWOFISH is not set -+# CONFIG_CRYPTO_SERPENT is not set -+# CONFIG_CRYPTO_AES is not set -+# CONFIG_CRYPTO_CAST5 is not set -+# CONFIG_CRYPTO_CAST6 is not set -+# CONFIG_CRYPTO_TEA is not set -+# CONFIG_CRYPTO_ARC4 is not set -+# CONFIG_CRYPTO_KHAZAD is not set -+# CONFIG_CRYPTO_ANUBIS is not set -+# CONFIG_CRYPTO_SEED is not set -+# CONFIG_CRYPTO_SALSA20 is not set -+CONFIG_CRYPTO_DEFLATE=m -+# CONFIG_CRYPTO_MICHAEL_MIC is not set -+# CONFIG_CRYPTO_CRC32C is not set -+# CONFIG_CRYPTO_CAMELLIA is not set -+# CONFIG_CRYPTO_TEST is not set -+CONFIG_CRYPTO_AUTHENC=m -+# CONFIG_CRYPTO_LZO is not set -+# CONFIG_CRYPTO_HW is not set -+ -+# -+# Library routines -+# -+CONFIG_BITREVERSE=y -+CONFIG_CRC_CCITT=m -+# CONFIG_CRC16 is not set -+CONFIG_CRC_ITU_T=m -+CONFIG_CRC32=y -+CONFIG_CRC7=m -+# CONFIG_LIBCRC32C is not set -+CONFIG_ZLIB_INFLATE=y -+CONFIG_ZLIB_DEFLATE=y -+CONFIG_GENERIC_ALLOCATOR=y -+CONFIG_PLIST=y -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_IOPORT=y -+CONFIG_HAS_DMA=y ---- /dev/null -+++ b/arch/avr32/drivers/Makefile -@@ -0,0 +1 @@ -+obj-$(CONFIG_DW_DMAC) += dw-dmac.o ---- /dev/null -+++ b/arch/avr32/drivers/dw-dmac.c -@@ -0,0 +1,761 @@ -+/* -+ * Driver for the Synopsys DesignWare DMA Controller -+ * -+ * Copyright (C) 2005-2006 Atmel Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "dw-dmac.h" -+ -+#define DMAC_NR_CHANNELS 3 -+#define DMAC_MAX_BLOCKSIZE 4095 -+ -+enum { -+ CH_STATE_FREE = 0, -+ CH_STATE_ALLOCATED, -+ CH_STATE_BUSY, -+}; -+ -+struct dw_dma_lli { -+ dma_addr_t sar; -+ dma_addr_t dar; -+ dma_addr_t llp; -+ u32 ctllo; -+ u32 ctlhi; -+ u32 sstat; -+ u32 dstat; -+}; -+ -+struct dw_dma_block { -+ struct dw_dma_lli *lli_vaddr; -+ dma_addr_t lli_dma_addr; -+}; -+ -+struct dw_dma_channel { -+ unsigned int state; -+ int is_cyclic; -+ struct dma_request_sg *req_sg; -+ struct dma_request_cyclic *req_cyclic; -+ unsigned int nr_blocks; -+ int direction; -+ struct dw_dma_block *block; -+}; -+ -+struct dw_dma_controller { -+ spinlock_t lock; -+ void * __iomem regs; -+ struct dma_pool *lli_pool; -+ struct clk *hclk; -+ struct dma_controller dma; -+ struct dw_dma_channel channel[DMAC_NR_CHANNELS]; -+}; -+#define to_dw_dmac(dmac) container_of(dmac, struct dw_dma_controller, dma) -+ -+#define dmac_writel_hi(dmac, reg, value) \ -+ __raw_writel((value), (dmac)->regs + DW_DMAC_##reg + 4) -+#define dmac_readl_hi(dmac, reg) \ -+ __raw_readl((dmac)->regs + DW_DMAC_##reg + 4) -+#define dmac_writel_lo(dmac, reg, value) \ -+ __raw_writel((value), (dmac)->regs + DW_DMAC_##reg) -+#define dmac_readl_lo(dmac, reg) \ -+ __raw_readl((dmac)->regs + DW_DMAC_##reg) -+#define dmac_chan_writel_hi(dmac, chan, reg, value) \ -+ __raw_writel((value), ((dmac)->regs + 0x58 * (chan) \ -+ + DW_DMAC_CHAN_##reg + 4)) -+#define dmac_chan_readl_hi(dmac, chan, reg) \ -+ __raw_readl((dmac)->regs + 0x58 * (chan) + DW_DMAC_CHAN_##reg + 4) -+#define dmac_chan_writel_lo(dmac, chan, reg, value) \ -+ __raw_writel((value), (dmac)->regs + 0x58 * (chan) + DW_DMAC_CHAN_##reg) -+#define dmac_chan_readl_lo(dmac, chan, reg) \ -+ __raw_readl((dmac)->regs + 0x58 * (chan) + DW_DMAC_CHAN_##reg) -+#define set_channel_bit(dmac, reg, chan) \ -+ dmac_writel_lo(dmac, reg, (1 << (chan)) | (1 << ((chan) + 8))) -+#define clear_channel_bit(dmac, reg, chan) \ -+ dmac_writel_lo(dmac, reg, (0 << (chan)) | (1 << ((chan) + 8))) -+ -+static int dmac_alloc_channel(struct dma_controller *_dmac) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ struct dw_dma_channel *chan; -+ unsigned long flags; -+ int i; -+ -+ spin_lock_irqsave(&dmac->lock, flags); -+ for (i = 0; i < DMAC_NR_CHANNELS; i++) -+ if (dmac->channel[i].state == CH_STATE_FREE) -+ break; -+ -+ if (i < DMAC_NR_CHANNELS) { -+ chan = &dmac->channel[i]; -+ chan->state = CH_STATE_ALLOCATED; -+ } else { -+ i = -EBUSY; -+ } -+ -+ spin_unlock_irqrestore(&dmac->lock, flags); -+ -+ return i; -+} -+ -+static void dmac_release_channel(struct dma_controller *_dmac, int channel) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ -+ BUG_ON(channel >= DMAC_NR_CHANNELS -+ || dmac->channel[channel].state != CH_STATE_ALLOCATED); -+ -+ dmac->channel[channel].state = CH_STATE_FREE; -+} -+ -+static struct dw_dma_block *allocate_blocks(struct dw_dma_controller *dmac, -+ unsigned int nr_blocks) -+{ -+ struct dw_dma_block *block; -+ void *p; -+ unsigned int i; -+ -+ block = kmalloc(nr_blocks * sizeof(*block), -+ GFP_KERNEL); -+ if (unlikely(!block)) -+ return NULL; -+ -+ for (i = 0; i < nr_blocks; i++) { -+ p = dma_pool_alloc(dmac->lli_pool, GFP_KERNEL, -+ &block[i].lli_dma_addr); -+ block[i].lli_vaddr = p; -+ if (unlikely(!p)) -+ goto fail; -+ } -+ -+ return block; -+ -+fail: -+ for (i = 0; i < nr_blocks; i++) { -+ if (!block[i].lli_vaddr) -+ break; -+ dma_pool_free(dmac->lli_pool, block[i].lli_vaddr, -+ block[i].lli_dma_addr); -+ } -+ kfree(block); -+ return NULL; -+} -+ -+static void cleanup_channel(struct dw_dma_controller *dmac, -+ struct dw_dma_channel *chan) -+{ -+ unsigned int i; -+ -+ if (chan->nr_blocks > 1) { -+ for (i = 0; i < chan->nr_blocks; i++) -+ dma_pool_free(dmac->lli_pool, chan->block[i].lli_vaddr, -+ chan->block[i].lli_dma_addr); -+ kfree(chan->block); -+ } -+ -+ chan->state = CH_STATE_ALLOCATED; -+} -+ -+static int dmac_prepare_request_sg(struct dma_controller *_dmac, -+ struct dma_request_sg *req) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ struct dw_dma_channel *chan; -+ unsigned long ctlhi, ctllo, cfghi, cfglo; -+ unsigned long block_size; -+ unsigned int nr_blocks; -+ int ret, i, direction; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&dmac->lock, flags); -+ -+ ret = -EINVAL; -+ if (req->req.channel >= DMAC_NR_CHANNELS -+ || dmac->channel[req->req.channel].state != CH_STATE_ALLOCATED -+ || req->block_size > DMAC_MAX_BLOCKSIZE) { -+ spin_unlock_irqrestore(&dmac->lock, flags); -+ return -EINVAL; -+ } -+ -+ chan = &dmac->channel[req->req.channel]; -+ chan->state = CH_STATE_BUSY; -+ chan->req_sg = req; -+ chan->is_cyclic = 0; -+ -+ /* -+ * We have marked the channel as busy, so no need to keep the -+ * lock as long as we only touch the channel-specific -+ * registers -+ */ -+ spin_unlock_irqrestore(&dmac->lock, flags); -+ -+ /* -+ * There may be limitations in the driver and/or the DMA -+ * controller that prevents us from sending a whole -+ * scatterlist item in one go. Taking this into account, -+ * calculate the number of block transfers we need to set up. -+ * -+ * FIXME: Let the peripheral driver know about the maximum -+ * block size we support. We really don't want to use a -+ * different block size than what was suggested by the -+ * peripheral. -+ * -+ * Each block will get its own Linked List Item (LLI) below. -+ */ -+ block_size = req->block_size; -+ nr_blocks = req->nr_blocks; -+ pr_debug("block_size %lu, nr_blocks %u nr_sg = %u\n", -+ block_size, nr_blocks, req->nr_sg); -+ -+ BUG_ON(nr_blocks == 0); -+ chan->nr_blocks = nr_blocks; -+ -+ ret = -EINVAL; -+ cfglo = cfghi = 0; -+ switch (req->direction) { -+ case DMA_DIR_MEM_TO_PERIPH: -+ direction = DMA_TO_DEVICE; -+ cfghi = req->periph_id << (43 - 32); -+ break; -+ -+ case DMA_DIR_PERIPH_TO_MEM: -+ direction = DMA_FROM_DEVICE; -+ cfghi = req->periph_id << (39 - 32); -+ break; -+ default: -+ goto out_unclaim_channel; -+ } -+ -+ chan->direction = direction; -+ -+ dmac_chan_writel_hi(dmac, req->req.channel, CFG, cfghi); -+ dmac_chan_writel_lo(dmac, req->req.channel, CFG, cfglo); -+ -+ ctlhi = block_size >> req->width; -+ ctllo = ((req->direction << 20) -+ // | (1 << 14) | (1 << 11) // source/dest burst trans len -+ | (req->width << 4) | (req->width << 1) -+ | (1 << 0)); // interrupt enable -+ -+ if (nr_blocks == 1) { -+ /* Only one block: No need to use block chaining */ -+ if (direction == DMA_TO_DEVICE) { -+ dmac_chan_writel_lo(dmac, req->req.channel, SAR, -+ req->sg->dma_address); -+ dmac_chan_writel_lo(dmac, req->req.channel, DAR, -+ req->data_reg); -+ ctllo |= 2 << 7; // no dst increment -+ } else { -+ dmac_chan_writel_lo(dmac, req->req.channel, SAR, -+ req->data_reg); -+ dmac_chan_writel_lo(dmac, req->req.channel, DAR, -+ req->sg->dma_address); -+ ctllo |= 2 << 9; // no src increment -+ } -+ dmac_chan_writel_lo(dmac, req->req.channel, CTL, ctllo); -+ dmac_chan_writel_hi(dmac, req->req.channel, CTL, ctlhi); -+ pr_debug("ctl hi:lo 0x%lx:%lx\n", ctlhi, ctllo); -+ } else { -+ struct dw_dma_lli *lli, *lli_prev = NULL; -+ int j = 0, offset = 0; -+ -+ ret = -ENOMEM; -+ chan->block = allocate_blocks(dmac, nr_blocks); -+ if (!chan->block) -+ goto out_unclaim_channel; -+ -+ if (direction == DMA_TO_DEVICE) -+ ctllo |= 1 << 28 | 1 << 27 | 2 << 7; -+ else -+ ctllo |= 1 << 28 | 1 << 27 | 2 << 9; -+ -+ /* -+ * Map scatterlist items to blocks. One scatterlist -+ * item may need more than one block for the reasons -+ * mentioned above. -+ */ -+ for (i = 0; i < nr_blocks; i++) { -+ lli = chan->block[i].lli_vaddr; -+ if (lli_prev) { -+ lli_prev->llp = chan->block[i].lli_dma_addr; -+ pr_debug("lli[%d] (0x%p/0x%x): 0x%x 0x%x 0x%x 0x%x 0x%x\n", -+ i - 1, chan->block[i - 1].lli_vaddr, -+ chan->block[i - 1].lli_dma_addr, -+ lli_prev->sar, lli_prev->dar, lli_prev->llp, -+ lli_prev->ctllo, lli_prev->ctlhi); -+ } -+ lli->llp = 0; -+ lli->ctllo = ctllo; -+ lli->ctlhi = ctlhi; -+ if (direction == DMA_TO_DEVICE) { -+ lli->sar = req->sg[j].dma_address + offset; -+ lli->dar = req->data_reg; -+ } else { -+ lli->sar = req->data_reg; -+ lli->dar = req->sg[j].dma_address + offset; -+ } -+ lli_prev = lli; -+ -+ offset += block_size; -+ if (offset > req->sg[j].length) { -+ j++; -+ offset = 0; -+ } -+ } -+ -+ pr_debug("lli[%d] (0x%p/0x%x): 0x%x 0x%x 0x%x 0x%x 0x%x\n", -+ i - 1, chan->block[i - 1].lli_vaddr, -+ chan->block[i - 1].lli_dma_addr, lli_prev->sar, -+ lli_prev->dar, lli_prev->llp, -+ lli_prev->ctllo, lli_prev->ctlhi); -+ -+ /* -+ * SAR, DAR and CTL are initialized from the LLI. We -+ * only have to enable the LLI bits in CTL. -+ */ -+ dmac_chan_writel_hi(dmac, req->req.channel, CTL, 0); -+ dmac_chan_writel_lo(dmac, req->req.channel, LLP, -+ chan->block[0].lli_dma_addr); -+ dmac_chan_writel_lo(dmac, req->req.channel, CTL, 1 << 28 | 1 << 27); -+ } -+ -+ set_channel_bit(dmac, MASK_XFER, req->req.channel); -+ set_channel_bit(dmac, MASK_ERROR, req->req.channel); -+ if (req->req.block_complete) -+ set_channel_bit(dmac, MASK_BLOCK, req->req.channel); -+ else -+ clear_channel_bit(dmac, MASK_BLOCK, req->req.channel); -+ -+ return 0; -+ -+out_unclaim_channel: -+ chan->state = CH_STATE_ALLOCATED; -+ return ret; -+} -+ -+static int dmac_prepare_request_cyclic(struct dma_controller *_dmac, -+ struct dma_request_cyclic *req) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ struct dw_dma_channel *chan; -+ unsigned long ctlhi, ctllo, cfghi, cfglo; -+ unsigned long block_size; -+ int ret, i, direction; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&dmac->lock, flags); -+ -+ block_size = (req->buffer_size/req->periods) >> req->width; -+ -+ ret = -EINVAL; -+ if (req->req.channel >= DMAC_NR_CHANNELS -+ || dmac->channel[req->req.channel].state != CH_STATE_ALLOCATED -+ || (req->periods == 0) -+ || block_size > DMAC_MAX_BLOCKSIZE) { -+ spin_unlock_irqrestore(&dmac->lock, flags); -+ return -EINVAL; -+ } -+ -+ chan = &dmac->channel[req->req.channel]; -+ chan->state = CH_STATE_BUSY; -+ chan->is_cyclic = 1; -+ chan->req_cyclic = req; -+ -+ /* -+ * We have marked the channel as busy, so no need to keep the -+ * lock as long as we only touch the channel-specific -+ * registers -+ */ -+ spin_unlock_irqrestore(&dmac->lock, flags); -+ -+ /* -+ Setup -+ */ -+ BUG_ON(req->buffer_size % req->periods); -+ /* printk(KERN_INFO "block_size = %lu, periods = %u\n", block_size, req->periods); */ -+ -+ chan->nr_blocks = req->periods; -+ -+ ret = -EINVAL; -+ cfglo = cfghi = 0; -+ switch (req->direction) { -+ case DMA_DIR_MEM_TO_PERIPH: -+ direction = DMA_TO_DEVICE; -+ cfghi = req->periph_id << (43 - 32); -+ break; -+ -+ case DMA_DIR_PERIPH_TO_MEM: -+ direction = DMA_FROM_DEVICE; -+ cfghi = req->periph_id << (39 - 32); -+ break; -+ default: -+ goto out_unclaim_channel; -+ } -+ -+ chan->direction = direction; -+ -+ dmac_chan_writel_hi(dmac, req->req.channel, CFG, cfghi); -+ dmac_chan_writel_lo(dmac, req->req.channel, CFG, cfglo); -+ -+ ctlhi = block_size; -+ ctllo = ((req->direction << 20) -+ | (req->width << 4) | (req->width << 1) -+ | (1 << 0)); // interrupt enable -+ -+ { -+ struct dw_dma_lli *lli = NULL, *lli_prev = NULL; -+ -+ ret = -ENOMEM; -+ chan->block = allocate_blocks(dmac, req->periods); -+ if (!chan->block) -+ goto out_unclaim_channel; -+ -+ if (direction == DMA_TO_DEVICE) -+ ctllo |= 1 << 28 | 1 << 27 | 2 << 7; -+ else -+ ctllo |= 1 << 28 | 1 << 27 | 2 << 9; -+ -+ /* -+ * Set up a linked list items where each period gets -+ * an item. The linked list item for the last period -+ * points back to the star of the buffer making a -+ * cyclic buffer. -+ */ -+ for (i = 0; i < req->periods; i++) { -+ lli = chan->block[i].lli_vaddr; -+ if (lli_prev) { -+ lli_prev->llp = chan->block[i].lli_dma_addr; -+ /* printk(KERN_INFO "lli[%d] (0x%p/0x%x): 0x%x 0x%x 0x%x 0x%x 0x%x\n", -+ i - 1, chan->block[i - 1].lli_vaddr, -+ chan->block[i - 1].lli_dma_addr, -+ lli_prev->sar, lli_prev->dar, lli_prev->llp, -+ lli_prev->ctllo, lli_prev->ctlhi);*/ -+ } -+ lli->llp = 0; -+ lli->ctllo = ctllo; -+ lli->ctlhi = ctlhi; -+ if (direction == DMA_TO_DEVICE) { -+ lli->sar = req->buffer_start + i*(block_size << req->width); -+ lli->dar = req->data_reg; -+ } else { -+ lli->sar = req->data_reg; -+ lli->dar = req->buffer_start + i*(block_size << req->width); -+ } -+ lli_prev = lli; -+ } -+ lli->llp = chan->block[0].lli_dma_addr; -+ -+ /*printk(KERN_INFO "lli[%d] (0x%p/0x%x): 0x%x 0x%x 0x%x 0x%x 0x%x\n", -+ i - 1, chan->block[i - 1].lli_vaddr, -+ chan->block[i - 1].lli_dma_addr, lli_prev->sar, -+ lli_prev->dar, lli_prev->llp, -+ lli_prev->ctllo, lli_prev->ctlhi); */ -+ -+ /* -+ * SAR, DAR and CTL are initialized from the LLI. We -+ * only have to enable the LLI bits in CTL. -+ */ -+ dmac_chan_writel_lo(dmac, req->req.channel, LLP, -+ chan->block[0].lli_dma_addr); -+ dmac_chan_writel_lo(dmac, req->req.channel, CTL, 1 << 28 | 1 << 27); -+ } -+ -+ clear_channel_bit(dmac, MASK_XFER, req->req.channel); -+ set_channel_bit(dmac, MASK_ERROR, req->req.channel); -+ if (req->req.block_complete) -+ set_channel_bit(dmac, MASK_BLOCK, req->req.channel); -+ else -+ clear_channel_bit(dmac, MASK_BLOCK, req->req.channel); -+ -+ return 0; -+ -+out_unclaim_channel: -+ chan->state = CH_STATE_ALLOCATED; -+ return ret; -+} -+ -+static int dmac_start_request(struct dma_controller *_dmac, -+ unsigned int channel) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ -+ BUG_ON(channel >= DMAC_NR_CHANNELS); -+ -+ set_channel_bit(dmac, CH_EN, channel); -+ -+ return 0; -+} -+ -+static dma_addr_t dmac_get_current_pos(struct dma_controller *_dmac, -+ unsigned int channel) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ struct dw_dma_channel *chan; -+ dma_addr_t current_pos; -+ -+ BUG_ON(channel >= DMAC_NR_CHANNELS); -+ -+ chan = &dmac->channel[channel]; -+ -+ switch (chan->direction) { -+ case DMA_TO_DEVICE: -+ current_pos = dmac_chan_readl_lo(dmac, channel, SAR); -+ break; -+ case DMA_FROM_DEVICE: -+ current_pos = dmac_chan_readl_lo(dmac, channel, DAR); -+ break; -+ default: -+ return 0; -+ } -+ -+ -+ if (!current_pos) { -+ if (chan->is_cyclic) { -+ current_pos = chan->req_cyclic->buffer_start; -+ } else { -+ current_pos = chan->req_sg->sg->dma_address; -+ } -+ } -+ -+ return current_pos; -+} -+ -+ -+static int dmac_stop_request(struct dma_controller *_dmac, -+ unsigned int channel) -+{ -+ struct dw_dma_controller *dmac = to_dw_dmac(_dmac); -+ struct dw_dma_channel *chan; -+ -+ BUG_ON(channel >= DMAC_NR_CHANNELS); -+ -+ chan = &dmac->channel[channel]; -+ pr_debug("stop: st%u s%08x d%08x l%08x ctl0x%08x:0x%08x\n", -+ chan->state, dmac_chan_readl_lo(dmac, channel, SAR), -+ dmac_chan_readl_lo(dmac, channel, DAR), -+ dmac_chan_readl_lo(dmac, channel, LLP), -+ dmac_chan_readl_hi(dmac, channel, CTL), -+ dmac_chan_readl_lo(dmac, channel, CTL)); -+ -+ if (chan->state == CH_STATE_BUSY) { -+ clear_channel_bit(dmac, CH_EN, channel); -+ cleanup_channel(dmac, &dmac->channel[channel]); -+ } -+ -+ return 0; -+} -+ -+ -+static void dmac_block_complete(struct dw_dma_controller *dmac) -+{ -+ struct dw_dma_channel *chan; -+ unsigned long status, chanid; -+ -+ status = dmac_readl_lo(dmac, STATUS_BLOCK); -+ -+ while (status) { -+ struct dma_request *req; -+ chanid = __ffs(status); -+ chan = &dmac->channel[chanid]; -+ -+ if (chan->is_cyclic) { -+ BUG_ON(!chan->req_cyclic -+ || !chan->req_cyclic->req.block_complete); -+ req = &chan->req_cyclic->req; -+ } else { -+ BUG_ON(!chan->req_sg || !chan->req_sg->req.block_complete); -+ req = &chan->req_sg->req; -+ } -+ dmac_writel_lo(dmac, CLEAR_BLOCK, 1 << chanid); -+ req->block_complete(req); -+ status = dmac_readl_lo(dmac, STATUS_BLOCK); -+ } -+} -+ -+static void dmac_xfer_complete(struct dw_dma_controller *dmac) -+{ -+ struct dw_dma_channel *chan; -+ struct dma_request *req; -+ unsigned long status, chanid; -+ -+ status = dmac_readl_lo(dmac, STATUS_XFER); -+ -+ while (status) { -+ chanid = __ffs(status); -+ chan = &dmac->channel[chanid]; -+ -+ dmac_writel_lo(dmac, CLEAR_XFER, 1 << chanid); -+ -+ req = &chan->req_sg->req; -+ BUG_ON(!req); -+ cleanup_channel(dmac, chan); -+ if (req->xfer_complete) -+ req->xfer_complete(req); -+ -+ status = dmac_readl_lo(dmac, STATUS_XFER); -+ } -+} -+ -+static void dmac_error(struct dw_dma_controller *dmac) -+{ -+ struct dw_dma_channel *chan; -+ unsigned long status, chanid; -+ -+ status = dmac_readl_lo(dmac, STATUS_ERROR); -+ -+ while (status) { -+ struct dma_request *req; -+ -+ chanid = __ffs(status); -+ chan = &dmac->channel[chanid]; -+ -+ dmac_writel_lo(dmac, CLEAR_ERROR, 1 << chanid); -+ clear_channel_bit(dmac, CH_EN, chanid); -+ -+ if (chan->is_cyclic) { -+ BUG_ON(!chan->req_cyclic); -+ req = &chan->req_cyclic->req; -+ } else { -+ BUG_ON(!chan->req_sg); -+ req = &chan->req_sg->req; -+ } -+ -+ cleanup_channel(dmac, chan); -+ if (req->error) -+ req->error(req); -+ -+ status = dmac_readl_lo(dmac, STATUS_XFER); -+ } -+} -+ -+static irqreturn_t dmac_interrupt(int irq, void *dev_id) -+{ -+ struct dw_dma_controller *dmac = dev_id; -+ unsigned long status; -+ int ret = IRQ_NONE; -+ -+ spin_lock(&dmac->lock); -+ -+ status = dmac_readl_lo(dmac, STATUS_INT); -+ -+ while (status) { -+ ret = IRQ_HANDLED; -+ if (status & 0x10) -+ dmac_error(dmac); -+ if (status & 0x02) -+ dmac_block_complete(dmac); -+ if (status & 0x01) -+ dmac_xfer_complete(dmac); -+ -+ status = dmac_readl_lo(dmac, STATUS_INT); -+ } -+ -+ spin_unlock(&dmac->lock); -+ return ret; -+} -+ -+static int __devinit dmac_probe(struct platform_device *pdev) -+{ -+ struct dw_dma_controller *dmac; -+ struct resource *regs; -+ int ret; -+ -+ regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ if (!regs) -+ return -ENXIO; -+ -+ dmac = kmalloc(sizeof(*dmac), GFP_KERNEL); -+ if (!dmac) -+ return -ENOMEM; -+ memset(dmac, 0, sizeof(*dmac)); -+ -+ dmac->hclk = clk_get(&pdev->dev, "hclk"); -+ if (IS_ERR(dmac->hclk)) { -+ ret = PTR_ERR(dmac->hclk); -+ goto out_free_dmac; -+ } -+ clk_enable(dmac->hclk); -+ -+ ret = -ENOMEM; -+ dmac->lli_pool = dma_pool_create("dmac", &pdev->dev, -+ sizeof(struct dw_dma_lli), 4, 0); -+ if (!dmac->lli_pool) -+ goto out_disable_clk; -+ -+ spin_lock_init(&dmac->lock); -+ dmac->dma.dev = &pdev->dev; -+ dmac->dma.alloc_channel = dmac_alloc_channel; -+ dmac->dma.release_channel = dmac_release_channel; -+ dmac->dma.prepare_request_sg = dmac_prepare_request_sg; -+ dmac->dma.prepare_request_cyclic = dmac_prepare_request_cyclic; -+ dmac->dma.start_request = dmac_start_request; -+ dmac->dma.stop_request = dmac_stop_request; -+ dmac->dma.get_current_pos = dmac_get_current_pos; -+ -+ dmac->regs = ioremap(regs->start, regs->end - regs->start + 1); -+ if (!dmac->regs) -+ goto out_free_pool; -+ -+ ret = request_irq(platform_get_irq(pdev, 0), dmac_interrupt, -+ IRQF_SAMPLE_RANDOM, pdev->name, dmac); -+ if (ret) -+ goto out_unmap_regs; -+ -+ /* Enable the DMA controller */ -+ dmac_writel_lo(dmac, CFG, 1); -+ -+ register_dma_controller(&dmac->dma); -+ -+ printk(KERN_INFO -+ "dmac%d: DesignWare DMA controller at 0x%p irq %d\n", -+ dmac->dma.id, dmac->regs, platform_get_irq(pdev, 0)); -+ -+ return 0; -+ -+out_unmap_regs: -+ iounmap(dmac->regs); -+out_free_pool: -+ dma_pool_destroy(dmac->lli_pool); -+out_disable_clk: -+ clk_disable(dmac->hclk); -+ clk_put(dmac->hclk); -+out_free_dmac: -+ kfree(dmac); -+ return ret; -+} -+ -+static struct platform_driver dmac_driver = { -+ .probe = dmac_probe, -+ .driver = { -+ .name = "dmaca", -+ }, -+}; -+ -+static int __init dmac_init(void) -+{ -+ return platform_driver_register(&dmac_driver); -+} -+subsys_initcall(dmac_init); -+ -+static void __exit dmac_exit(void) -+{ -+ platform_driver_unregister(&dmac_driver); -+} -+module_exit(dmac_exit); -+ -+MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller driver"); -+MODULE_AUTHOR("Haavard Skinnemoen "); -+MODULE_LICENSE("GPL"); ---- /dev/null -+++ b/arch/avr32/drivers/dw-dmac.h -@@ -0,0 +1,42 @@ -+/* -+ * Driver for the Synopsys DesignWare DMA Controller -+ * -+ * Copyright (C) 2005-2006 Atmel Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#ifndef __AVR32_DW_DMAC_H__ -+#define __AVR32_DW_DMAC_H__ -+ -+#define DW_DMAC_CFG 0x398 -+#define DW_DMAC_CH_EN 0x3a0 -+ -+#define DW_DMAC_STATUS_XFER 0x2e8 -+#define DW_DMAC_STATUS_BLOCK 0x2f0 -+#define DW_DMAC_STATUS_ERROR 0x308 -+ -+#define DW_DMAC_MASK_XFER 0x310 -+#define DW_DMAC_MASK_BLOCK 0x318 -+#define DW_DMAC_MASK_ERROR 0x330 -+ -+#define DW_DMAC_CLEAR_XFER 0x338 -+#define DW_DMAC_CLEAR_BLOCK 0x340 -+#define DW_DMAC_CLEAR_ERROR 0x358 -+ -+#define DW_DMAC_STATUS_INT 0x360 -+ -+#define DW_DMAC_CHAN_SAR 0x000 -+#define DW_DMAC_CHAN_DAR 0x008 -+#define DW_DMAC_CHAN_LLP 0x010 -+#define DW_DMAC_CHAN_CTL 0x018 -+#define DW_DMAC_CHAN_SSTAT 0x020 -+#define DW_DMAC_CHAN_DSTAT 0x028 -+#define DW_DMAC_CHAN_SSTATAR 0x030 -+#define DW_DMAC_CHAN_DSTATAR 0x038 -+#define DW_DMAC_CHAN_CFG 0x040 -+#define DW_DMAC_CHAN_SGR 0x048 -+#define DW_DMAC_CHAN_DSR 0x050 -+ -+#endif /* __AVR32_DW_DMAC_H__ */ ---- a/arch/avr32/kernel/Makefile -+++ b/arch/avr32/kernel/Makefile -@@ -9,6 +9,7 @@ obj-y += syscall_table.o syscall-stub - obj-y += setup.o traps.o semaphore.o ocd.o ptrace.o - obj-y += signal.o sys_avr32.o process.o time.o - obj-y += init_task.o switch_to.o cpu.o -+obj-y += dma-controller.o - obj-$(CONFIG_MODULES) += module.o avr32_ksyms.o - obj-$(CONFIG_KPROBES) += kprobes.o - obj-$(CONFIG_STACKTRACE) += stacktrace.o ---- a/arch/avr32/kernel/avr32_ksyms.c -+++ b/arch/avr32/kernel/avr32_ksyms.c -@@ -29,7 +29,9 @@ EXPORT_SYMBOL(__avr32_asr64); - */ - EXPORT_SYMBOL(memset); - EXPORT_SYMBOL(memcpy); -+ - EXPORT_SYMBOL(clear_page); -+EXPORT_SYMBOL(copy_page); - - /* - * Userspace access stuff. -@@ -41,6 +43,8 @@ EXPORT_SYMBOL(strncpy_from_user); - EXPORT_SYMBOL(__strncpy_from_user); - EXPORT_SYMBOL(clear_user); - EXPORT_SYMBOL(__clear_user); -+EXPORT_SYMBOL(strnlen_user); -+ - EXPORT_SYMBOL(csum_partial); - EXPORT_SYMBOL(csum_partial_copy_generic); - ---- /dev/null -+++ b/arch/avr32/kernel/dma-controller.c -@@ -0,0 +1,34 @@ -+/* -+ * Preliminary DMA controller framework for AVR32 -+ * -+ * Copyright (C) 2005-2006 Atmel Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#include -+ -+static LIST_HEAD(controllers); -+ -+int register_dma_controller(struct dma_controller *dmac) -+{ -+ static int next_id; -+ -+ dmac->id = next_id++; -+ list_add_tail(&dmac->list, &controllers); -+ -+ return 0; -+} -+EXPORT_SYMBOL(register_dma_controller); -+ -+struct dma_controller *find_dma_controller(int id) -+{ -+ struct dma_controller *dmac; -+ -+ list_for_each_entry(dmac, &controllers, list) -+ if (dmac->id == id) -+ return dmac; -+ return NULL; -+} -+EXPORT_SYMBOL(find_dma_controller); ---- a/arch/avr32/kernel/entry-avr32b.S -+++ b/arch/avr32/kernel/entry-avr32b.S -@@ -74,50 +74,41 @@ exception_vectors: - .align 2 - bral do_dtlb_modified - -- /* -- * r0 : PGD/PT/PTE -- * r1 : Offending address -- * r2 : Scratch register -- * r3 : Cause (5, 12 or 13) -- */ - #define tlbmiss_save pushm r0-r3 - #define tlbmiss_restore popm r0-r3 - -- .section .tlbx.ex.text,"ax",@progbits -+ .org 0x50 - .global itlb_miss - itlb_miss: - tlbmiss_save - rjmp tlb_miss_common - -- .section .tlbr.ex.text,"ax",@progbits -+ .org 0x60 - dtlb_miss_read: - tlbmiss_save - rjmp tlb_miss_common - -- .section .tlbw.ex.text,"ax",@progbits -+ .org 0x70 - dtlb_miss_write: - tlbmiss_save - - .global tlb_miss_common -+ .align 2 - tlb_miss_common: - mfsr r0, SYSREG_TLBEAR - mfsr r1, SYSREG_PTBR - -- /* Is it the vmalloc space? */ -- bld r0, 31 -- brcs handle_vmalloc_miss -- -- /* First level lookup */ -+ /* -+ * First level lookup: The PGD contains virtual pointers to -+ * the second-level page tables, but they may be NULL if not -+ * present. -+ */ - pgtbl_lookup: - lsr r2, r0, PGDIR_SHIFT - ld.w r3, r1[r2 << 2] - bfextu r1, r0, PAGE_SHIFT, PGDIR_SHIFT - PAGE_SHIFT -- bld r3, _PAGE_BIT_PRESENT -- brcc page_table_not_present -- -- /* Translate to virtual address in P1. */ -- andl r3, 0xf000 -- sbr r3, 31 -+ cp.w r3, 0 -+ breq page_table_not_present - - /* Second level lookup */ - ld.w r2, r3[r1 << 2] -@@ -148,16 +139,55 @@ pgtbl_lookup: - tlbmiss_restore - rete - --handle_vmalloc_miss: -- /* Simply do the lookup in init's page table */ -+ /* The slow path of the TLB miss handler */ -+ .align 2 -+page_table_not_present: -+ /* Do we need to synchronize with swapper_pg_dir? */ -+ bld r0, 31 -+ brcs sync_with_swapper_pg_dir -+ -+page_not_present: -+ tlbmiss_restore -+ sub sp, 4 -+ stmts --sp, r0-lr -+ rcall save_full_context_ex -+ mfsr r12, SYSREG_ECR -+ mov r11, sp -+ rcall do_page_fault -+ rjmp ret_from_exception -+ -+ .align 2 -+sync_with_swapper_pg_dir: -+ /* -+ * If swapper_pg_dir contains a non-NULL second-level page -+ * table pointer, copy it into the current PGD. If not, we -+ * must handle it as a full-blown page fault. -+ * -+ * Jumping back to pgtbl_lookup causes an unnecessary lookup, -+ * but it is guaranteed to be a cache hit, it won't happen -+ * very often, and we absolutely do not want to sacrifice any -+ * performance in the fast path in order to improve this. -+ */ - mov r1, lo(swapper_pg_dir) - orh r1, hi(swapper_pg_dir) -+ ld.w r3, r1[r2 << 2] -+ cp.w r3, 0 -+ breq page_not_present -+ mfsr r1, SYSREG_PTBR -+ st.w r1[r2 << 2], r3 - rjmp pgtbl_lookup - -+ /* -+ * We currently have two bytes left at this point until we -+ * crash into the system call handler... -+ * -+ * Don't worry, the assembler will let us know. -+ */ -+ - - /* --- System Call --- */ - -- .section .scall.text,"ax",@progbits -+ .org 0x100 - system_call: - #ifdef CONFIG_PREEMPT - mask_interrupts -@@ -266,18 +296,6 @@ syscall_exit_work: - brcc syscall_exit_cont - rjmp enter_monitor_mode - -- /* The slow path of the TLB miss handler */ --page_table_not_present: --page_not_present: -- tlbmiss_restore -- sub sp, 4 -- stmts --sp, r0-lr -- rcall save_full_context_ex -- mfsr r12, SYSREG_ECR -- mov r11, sp -- rcall do_page_fault -- rjmp ret_from_exception -- - /* This function expects to find offending PC in SYSREG_RAR_EX */ - .type save_full_context_ex, @function - .align 2 -@@ -741,26 +759,6 @@ irq_level\level: - - .section .irq.text,"ax",@progbits - --.global cpu_idle_sleep --cpu_idle_sleep: -- mask_interrupts -- get_thread_info r8 -- ld.w r9, r8[TI_flags] -- bld r9, TIF_NEED_RESCHED -- brcs cpu_idle_enable_int_and_exit -- sbr r9, TIF_CPU_GOING_TO_SLEEP -- st.w r8[TI_flags], r9 -- unmask_interrupts -- sleep 0 --cpu_idle_skip_sleep: -- mask_interrupts -- ld.w r9, r8[TI_flags] -- cbr r9, TIF_CPU_GOING_TO_SLEEP -- st.w r8[TI_flags], r9 --cpu_idle_enable_int_and_exit: -- unmask_interrupts -- retal r12 -- - .global irq_level0 - .global irq_level1 - .global irq_level2 ---- a/arch/avr32/kernel/process.c -+++ b/arch/avr32/kernel/process.c -@@ -18,11 +18,11 @@ - #include - #include - -+#include -+ - void (*pm_power_off)(void) = NULL; - EXPORT_SYMBOL(pm_power_off); - --extern void cpu_idle_sleep(void); -- - /* - * This file handles the architecture-dependent parts of process handling.. - */ -@@ -54,6 +54,8 @@ void machine_halt(void) - - void machine_power_off(void) - { -+ if (pm_power_off) -+ pm_power_off(); - } - - void machine_restart(char *cmd) ---- a/arch/avr32/kernel/setup.c -+++ b/arch/avr32/kernel/setup.c -@@ -274,6 +274,8 @@ static int __init early_parse_fbmem(char - printk(KERN_WARNING - "Failed to allocate framebuffer memory\n"); - fbmem_size = 0; -+ } else { -+ memset(__va(fbmem_start), 0, fbmem_size); - } - } - ---- a/arch/avr32/kernel/signal.c -+++ b/arch/avr32/kernel/signal.c -@@ -93,6 +93,9 @@ asmlinkage int sys_rt_sigreturn(struct p - if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) - goto badframe; - -+ if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->sp) == -EFAULT) -+ goto badframe; -+ - pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", - regs->pc, regs->lr, regs->sp); - ---- a/arch/avr32/kernel/time.c -+++ b/arch/avr32/kernel/time.c -@@ -1,233 +1,147 @@ - /* - * Copyright (C) 2004-2007 Atmel Corporation - * -- * Based on MIPS implementation arch/mips/kernel/time.c -- * Copyright 2001 MontaVista Software Inc. -- * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -- - #include --#include --#include --#include -+#include -+#include - #include - #include --#include --#include --#include --#include --#include --#include -+#include -+#include - --#include - #include --#include --#include - --/* how many counter cycles in a jiffy? */ --static u32 cycles_per_jiffy; -+#include - --/* the count value for the next timer interrupt */ --static u32 expirelo; - --cycle_t __weak read_cycle_count(void) -+static cycle_t read_cycle_count(void) - { - return (cycle_t)sysreg_read(COUNT); - } - --struct clocksource __weak clocksource_avr32 = { -- .name = "avr32", -- .rating = 350, -+/* -+ * The architectural cycle count registers are a fine clocksource unless -+ * the system idle loop use sleep states like "idle": the CPU cycles -+ * measured by COUNT (and COMPARE) don't happen during sleep states. -+ * Their duration also changes if cpufreq changes the CPU clock rate. -+ * So we rate the clocksource using COUNT as very low quality. -+ */ -+static struct clocksource counter = { -+ .name = "avr32_counter", -+ .rating = 50, - .read = read_cycle_count, - .mask = CLOCKSOURCE_MASK(32), - .shift = 16, - .flags = CLOCK_SOURCE_IS_CONTINUOUS, - }; - --irqreturn_t __weak timer_interrupt(int irq, void *dev_id); -- --struct irqaction timer_irqaction = { -- .handler = timer_interrupt, -- .flags = IRQF_DISABLED, -- .name = "timer", --}; -- --/* -- * By default we provide the null RTC ops -- */ --static unsigned long null_rtc_get_time(void) --{ -- return mktime(2007, 1, 1, 0, 0, 0); --} -- --static int null_rtc_set_time(unsigned long sec) -+static irqreturn_t timer_interrupt(int irq, void *dev_id) - { -- return 0; --} -- --static unsigned long (*rtc_get_time)(void) = null_rtc_get_time; --static int (*rtc_set_time)(unsigned long) = null_rtc_set_time; -+ struct clock_event_device *evdev = dev_id; - --static void avr32_timer_ack(void) --{ -- u32 count; -- -- /* Ack this timer interrupt and set the next one */ -- expirelo += cycles_per_jiffy; -- /* setting COMPARE to 0 stops the COUNT-COMPARE */ -- if (expirelo == 0) { -- sysreg_write(COMPARE, expirelo + 1); -- } else { -- sysreg_write(COMPARE, expirelo); -- } -+ /* -+ * Disable the interrupt until the clockevent subsystem -+ * reprograms it. -+ */ -+ sysreg_write(COMPARE, 0); - -- /* Check to see if we have missed any timer interrupts */ -- count = sysreg_read(COUNT); -- if ((count - expirelo) < 0x7fffffff) { -- expirelo = count + cycles_per_jiffy; -- sysreg_write(COMPARE, expirelo); -- } -+ evdev->event_handler(evdev); -+ return IRQ_HANDLED; - } - --int __weak avr32_hpt_init(void) --{ -- int ret; -- unsigned long mult, shift, count_hz; -- -- count_hz = clk_get_rate(boot_cpu_data.clk); -- shift = clocksource_avr32.shift; -- mult = clocksource_hz2mult(count_hz, shift); -- clocksource_avr32.mult = mult; -- -- { -- u64 tmp; -- -- tmp = TICK_NSEC; -- tmp <<= shift; -- tmp += mult / 2; -- do_div(tmp, mult); -- -- cycles_per_jiffy = tmp; -- } -+static struct irqaction timer_irqaction = { -+ .handler = timer_interrupt, -+ .flags = IRQF_TIMER | IRQF_DISABLED, -+ .name = "avr32_comparator", -+}; - -- ret = setup_irq(0, &timer_irqaction); -- if (ret) { -- pr_debug("timer: could not request IRQ 0: %d\n", ret); -- return -ENODEV; -- } -+static int comparator_next_event(unsigned long delta, -+ struct clock_event_device *evdev) -+{ -+ unsigned long flags; - -- printk(KERN_INFO "timer: AT32AP COUNT-COMPARE at irq 0, " -- "%lu.%03lu MHz\n", -- ((count_hz + 500) / 1000) / 1000, -- ((count_hz + 500) / 1000) % 1000); -+ raw_local_irq_save(flags); - -- return 0; --} -+ /* The time to read COUNT then update COMPARE must be less -+ * than the min_delta_ns value for this clockevent source. -+ */ -+ sysreg_write(COMPARE, (sysreg_read(COUNT) + delta) ? : 1); - --/* -- * Taken from MIPS c0_hpt_timer_init(). -- * -- * The reason COUNT is written twice is probably to make sure we don't get any -- * timer interrupts while we are messing with the counter. -- */ --int __weak avr32_hpt_start(void) --{ -- u32 count = sysreg_read(COUNT); -- expirelo = (count / cycles_per_jiffy + 1) * cycles_per_jiffy; -- sysreg_write(COUNT, expirelo - cycles_per_jiffy); -- sysreg_write(COMPARE, expirelo); -- sysreg_write(COUNT, count); -+ raw_local_irq_restore(flags); - - return 0; - } - --/* -- * local_timer_interrupt() does profiling and process accounting on a -- * per-CPU basis. -- * -- * In UP mode, it is invoked from the (global) timer_interrupt. -- */ --void local_timer_interrupt(int irq, void *dev_id) -+static void comparator_mode(enum clock_event_mode mode, -+ struct clock_event_device *evdev) - { -- if (current->pid) -- profile_tick(CPU_PROFILING); -- update_process_times(user_mode(get_irq_regs())); -+ switch (mode) { -+ case CLOCK_EVT_MODE_ONESHOT: -+ pr_debug("%s: start\n", evdev->name); -+ /* FALLTHROUGH */ -+ case CLOCK_EVT_MODE_RESUME: -+ cpu_disable_idle_sleep(); -+ break; -+ case CLOCK_EVT_MODE_UNUSED: -+ case CLOCK_EVT_MODE_SHUTDOWN: -+ sysreg_write(COMPARE, 0); -+ pr_debug("%s: stop\n", evdev->name); -+ cpu_enable_idle_sleep(); -+ break; -+ default: -+ BUG(); -+ } - } - --irqreturn_t __weak timer_interrupt(int irq, void *dev_id) --{ -- /* ack timer interrupt and try to set next interrupt */ -- avr32_timer_ack(); -- -- /* -- * Call the generic timer interrupt handler -- */ -- write_seqlock(&xtime_lock); -- do_timer(1); -- write_sequnlock(&xtime_lock); -- -- /* -- * In UP mode, we call local_timer_interrupt() to do profiling -- * and process accounting. -- * -- * SMP is not supported yet. -- */ -- local_timer_interrupt(irq, dev_id); -- -- return IRQ_HANDLED; --} -+static struct clock_event_device comparator = { -+ .name = "avr32_comparator", -+ .features = CLOCK_EVT_FEAT_ONESHOT, -+ .shift = 16, -+ .rating = 50, -+ .cpumask = CPU_MASK_CPU0, -+ .set_next_event = comparator_next_event, -+ .set_mode = comparator_mode, -+}; - - void __init time_init(void) - { -+ unsigned long counter_hz; - int ret; - -- /* -- * Make sure we don't get any COMPARE interrupts before we can -- * handle them. -- */ -- sysreg_write(COMPARE, 0); -- -- xtime.tv_sec = rtc_get_time(); -+ xtime.tv_sec = mktime(2007, 1, 1, 0, 0, 0); - xtime.tv_nsec = 0; - - set_normalized_timespec(&wall_to_monotonic, - -xtime.tv_sec, -xtime.tv_nsec); - -- ret = avr32_hpt_init(); -- if (ret) { -- pr_debug("timer: failed setup: %d\n", ret); -- return; -- } -+ /* figure rate for counter */ -+ counter_hz = clk_get_rate(boot_cpu_data.clk); -+ counter.mult = clocksource_hz2mult(counter_hz, counter.shift); - -- ret = clocksource_register(&clocksource_avr32); -+ ret = clocksource_register(&counter); - if (ret) - pr_debug("timer: could not register clocksource: %d\n", ret); - -- ret = avr32_hpt_start(); -- if (ret) { -- pr_debug("timer: failed starting: %d\n", ret); -- return; -- } --} -+ /* setup COMPARE clockevent */ -+ comparator.mult = div_sc(counter_hz, NSEC_PER_SEC, comparator.shift); -+ comparator.max_delta_ns = clockevent_delta2ns((u32)~0, &comparator); -+ comparator.min_delta_ns = clockevent_delta2ns(50, &comparator) + 1; - --static struct sysdev_class timer_class = { -- .name = "timer", --}; -+ sysreg_write(COMPARE, 0); -+ timer_irqaction.dev_id = &comparator; - --static struct sys_device timer_device = { -- .id = 0, -- .cls = &timer_class, --}; -+ ret = setup_irq(0, &timer_irqaction); -+ if (ret) -+ pr_debug("timer: could not request IRQ 0: %d\n", ret); -+ else { -+ clockevents_register_device(&comparator); - --static int __init init_timer_sysfs(void) --{ -- int err = sysdev_class_register(&timer_class); -- if (!err) -- err = sysdev_register(&timer_device); -- return err; -+ pr_info("%s: irq 0, %lu.%03lu MHz\n", comparator.name, -+ ((counter_hz + 500) / 1000) / 1000, -+ ((counter_hz + 500) / 1000) % 1000); -+ } - } -- --device_initcall(init_timer_sysfs); ---- a/arch/avr32/kernel/vmlinux.lds.S -+++ b/arch/avr32/kernel/vmlinux.lds.S -@@ -68,14 +68,6 @@ SECTIONS - _evba = .; - _text = .; - *(.ex.text) -- . = 0x50; -- *(.tlbx.ex.text) -- . = 0x60; -- *(.tlbr.ex.text) -- . = 0x70; -- *(.tlbw.ex.text) -- . = 0x100; -- *(.scall.text) - *(.irq.text) - KPROBES_TEXT - TEXT_TEXT -@@ -107,6 +99,10 @@ SECTIONS - */ - *(.data.init_task) - -+ /* Then, the page-aligned data */ -+ . = ALIGN(PAGE_SIZE); -+ *(.data.page_aligned) -+ - /* Then, the cacheline aligned data */ - . = ALIGN(L1_CACHE_BYTES); - *(.data.cacheline_aligned) ---- a/arch/avr32/lib/io-readsb.S -+++ b/arch/avr32/lib/io-readsb.S -@@ -41,7 +41,7 @@ __raw_readsb: - 2: sub r10, -4 - reteq r12 - --3: ld.uh r8, r12[0] -+3: ld.ub r8, r12[0] - sub r10, 1 - st.b r11++, r8 - brne 3b ---- a/arch/avr32/mach-at32ap/Kconfig -+++ b/arch/avr32/mach-at32ap/Kconfig -@@ -26,6 +26,13 @@ config AP700X_8_BIT_SMC - - endchoice - -+config GPIO_DEV -+ bool "GPIO /dev interface" -+ select CONFIGFS_FS -+ default n -+ help -+ Say `Y' to enable a /dev interface to the GPIO pins. -+ - endmenu - - endif # PLATFORM_AT32AP ---- a/arch/avr32/mach-at32ap/Makefile -+++ b/arch/avr32/mach-at32ap/Makefile -@@ -1,4 +1,9 @@ --obj-y += at32ap.o clock.o intc.o extint.o pio.o hsmc.o --obj-$(CONFIG_CPU_AT32AP700X) += at32ap700x.o --obj-$(CONFIG_CPU_AT32AP700X) += time-tc.o -+obj-y += pdc.o clock.o intc.o extint.o pio.o hsmc.o -+obj-$(CONFIG_CPU_AT32AP700X) += at32ap700x.o pm-at32ap700x.o - obj-$(CONFIG_CPU_FREQ_AT32AP) += cpufreq.o -+obj-$(CONFIG_GPIO_DEV) += gpio-dev.o -+obj-$(CONFIG_PM) += pm.o -+ -+ifeq ($(CONFIG_PM_DEBUG),y) -+CFLAGS_pm.o += -DDEBUG -+endif ---- a/arch/avr32/mach-at32ap/at32ap.c -+++ /dev/null -@@ -1,56 +0,0 @@ --/* -- * Copyright (C) 2006 Atmel Corporation -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License version 2 as -- * published by the Free Software Foundation. -- */ -- --#include --#include --#include --#include -- --#include -- --void __init setup_platform(void) --{ -- at32_clock_init(); -- at32_portmux_init(); --} -- --static int __init pdc_probe(struct platform_device *pdev) --{ -- struct clk *pclk, *hclk; -- -- pclk = clk_get(&pdev->dev, "pclk"); -- if (IS_ERR(pclk)) { -- dev_err(&pdev->dev, "no pclk defined\n"); -- return PTR_ERR(pclk); -- } -- hclk = clk_get(&pdev->dev, "hclk"); -- if (IS_ERR(hclk)) { -- dev_err(&pdev->dev, "no hclk defined\n"); -- clk_put(pclk); -- return PTR_ERR(hclk); -- } -- -- clk_enable(pclk); -- clk_enable(hclk); -- -- dev_info(&pdev->dev, "Atmel Peripheral DMA Controller enabled\n"); -- return 0; --} -- --static struct platform_driver pdc_driver = { -- .probe = pdc_probe, -- .driver = { -- .name = "pdc", -- }, --}; -- --static int __init pdc_init(void) --{ -- return platform_driver_register(&pdc_driver); --} --arch_initcall(pdc_init); ---- a/arch/avr32/mach-at32ap/at32ap700x.c -+++ b/arch/avr32/mach-at32ap/at32ap700x.c -@@ -6,11 +6,13 @@ - * published by the Free Software Foundation. - */ - #include -+#include - #include - #include - #include - #include - #include -+#include - - #include - #include -@@ -18,6 +20,7 @@ - #include - #include - #include -+#include - - #include