[kernel] update to 2.6.25.19, and refresh patches
authorGabor Juhos <juhosg@openwrt.org>
Fri, 7 Nov 2008 08:44:56 +0000 (08:44 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 7 Nov 2008 08:44:56 +0000 (08:44 +0000)
SVN-Revision: 13137

119 files changed:
include/kernel-version.mk
target/linux/at91/Makefile
target/linux/at91/patches-2.6.25/000-at91patches.patch
target/linux/at91/patches-2.6.25/001-vlink-machine.patch
target/linux/at91/patches-2.6.25/002-led-driver.patch
target/linux/at91/patches-2.6.25/003-gpio-driver.patch
target/linux/at91/patches-2.6.25/007-mtd-partition.patch
target/linux/at91/patches-2.6.25/008-fdl-serial.patch
target/linux/at91/patches-2.6.25/009-fdl-uartinit.patch
target/linux/at91/patches-2.6.25/010-dm9161a-phyfix.patch
target/linux/at91/patches-2.6.25/014-initpartition.patch
target/linux/at91/patches-2.6.25/017-usb_serial_endpoint_size.patch
target/linux/au1000/Makefile
target/linux/au1000/patches/001-au1000_gpio_kconfig.patch
target/linux/au1000/patches/002-sys_btn_gpio.patch
target/linux/au1000/patches/005-au1000_eth_link_beat.patch
target/linux/au1000/patches/012-mtx1_cmdline.patch
target/linux/au1000/patches/013-openwrt_rootfs.patch
target/linux/au1000/patches/014-au1000_eth_ioctl.patch
target/linux/au1000/patches/016-net-irq.patch
target/linux/au1000/patches/017-gpio-dir.patch
target/linux/avr32/Makefile
target/linux/avr32/patches/100-git_sync.patch
target/linux/avr32/patches/110-openwrt_flashmap.patch
target/linux/brcm47xx/Makefile
target/linux/brcm47xx/patches-2.6.25/100-board_support.patch
target/linux/brcm47xx/patches-2.6.25/110-flash_map.patch
target/linux/brcm47xx/patches-2.6.25/130-remove_scache.patch
target/linux/brcm47xx/patches-2.6.25/150-cpu_fixes.patch
target/linux/brcm47xx/patches-2.6.25/160-kmap_coherent.patch
target/linux/brcm47xx/patches-2.6.25/210-b44_phy_fix.patch
target/linux/brcm47xx/patches-2.6.25/220-bcm5354.patch
target/linux/brcm47xx/patches-2.6.25/250-ohci-ssb-usb2.patch
target/linux/brcm47xx/patches-2.6.25/260-ohci-set-dma-mask.patch
target/linux/brcm47xx/patches-2.6.25/310-no_highpage.patch
target/linux/brcm47xx/patches-2.6.25/400-arch-bcm47xx.patch
target/linux/brcm47xx/patches-2.6.25/500-lzma_initramfs.patch
target/linux/brcm47xx/patches-2.6.25/601-mips-remove-pci-collision-check.patch
target/linux/brcm47xx/patches-2.6.25/620-ssb-modinit-fix.patch
target/linux/brcm47xx/patches-2.6.25/630-ssb-fix-irq-init.patch
target/linux/brcm47xx/patches-2.6.25/680-ssb-support-8bit-writes.patch
target/linux/brcm47xx/patches-2.6.25/690-mips-allow-pciregister-after-boot.patch
target/linux/brcm47xx/patches-2.6.25/700-ssb-gigabit-ethernet-driver.patch
target/linux/brcm47xx/patches-2.6.25/710-add-gpio-is-valid.patch
target/linux/brcm47xx/patches-2.6.25/800-fix_cfe_detection.patch
target/linux/etrax/Makefile
target/linux/etrax/patches/100-compile_fixes.patch
target/linux/etrax/patches/101-cris-eth-driver.patch
target/linux/etrax/patches/200-samsung_flash.patch
target/linux/etrax/patches/201-flashsize.patch
target/linux/etrax/patches/300-sysfs.patch
target/linux/etrax/patches/301-usb_support.patch
target/linux/generic-2.6/patches-2.6.25/001-squashfs.patch
target/linux/generic-2.6/patches-2.6.25/002-lzma_decompress.patch
target/linux/generic-2.6/patches-2.6.25/003-squashfs_lzma.patch
target/linux/generic-2.6/patches-2.6.25/004-extra_optimization.patch
target/linux/generic-2.6/patches-2.6.25/005-squashfs_fix.patch
target/linux/generic-2.6/patches-2.6.25/006-gcc4_inline_fix.patch
target/linux/generic-2.6/patches-2.6.25/007-samsung_flash.patch
target/linux/generic-2.6/patches-2.6.25/009-revert_intel_flash_breakage.patch
target/linux/generic-2.6/patches-2.6.25/060-block2mtd_init.patch
target/linux/generic-2.6/patches-2.6.25/065-rootfs_split.patch
target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch
target/linux/generic-2.6/patches-2.6.25/080-mtd_plat_nand_chip_fixup.patch
target/linux/generic-2.6/patches-2.6.25/100-netfilter_layer7_2.17.patch
target/linux/generic-2.6/patches-2.6.25/101-netfilter_layer7_pktmatch.patch
target/linux/generic-2.6/patches-2.6.25/110-ipp2p_0.8.1rc1.patch
target/linux/generic-2.6/patches-2.6.25/130-netfilter_ipset.patch
target/linux/generic-2.6/patches-2.6.25/140-netfilter_time.patch
target/linux/generic-2.6/patches-2.6.25/150-netfilter_imq.patch
target/linux/generic-2.6/patches-2.6.25/170-netfilter_chaostables_0.8.patch
target/linux/generic-2.6/patches-2.6.25/171-netfilter_tarpit.patch
target/linux/generic-2.6/patches-2.6.25/180-netfilter_depends.patch
target/linux/generic-2.6/patches-2.6.25/190-netfilter_rtsp.patch
target/linux/generic-2.6/patches-2.6.25/200-sched_esfq.patch
target/linux/generic-2.6/patches-2.6.25/202-mips-freestanding.patch
target/linux/generic-2.6/patches-2.6.25/204-jffs2_eofdetect.patch
target/linux/generic-2.6/patches-2.6.25/208-rtl8110sb_fix.patch
target/linux/generic-2.6/patches-2.6.25/209-mini_fo.patch
target/linux/generic-2.6/patches-2.6.25/210-mini_fo_2.6.25_fixes.patch
target/linux/generic-2.6/patches-2.6.25/211-mini_fo_2.6.25_dentry_open_war.patch
target/linux/generic-2.6/patches-2.6.25/213-kobject_uevent.patch
target/linux/generic-2.6/patches-2.6.25/220-sound_kconfig.patch
target/linux/generic-2.6/patches-2.6.25/400-ledtrig_morse.patch
target/linux/generic-2.6/patches-2.6.25/401-led_alix.patch
target/linux/generic-2.6/patches-2.6.25/402-ledtrig_default_on.patch
target/linux/generic-2.6/patches-2.6.25/410-gpio_buttons.patch
target/linux/generic-2.6/patches-2.6.25/420-gpiodev.patch
target/linux/generic-2.6/patches-2.6.25/510-yaffs_support.patch
target/linux/generic-2.6/patches-2.6.25/512-yaffs_2.6.25_fix.patch
target/linux/generic-2.6/patches-2.6.25/600-phy_extension.patch
target/linux/generic-2.6/patches-2.6.25/610-phy_detect.patch
target/linux/generic-2.6/patches-2.6.25/620-phy_adm6996.patch
target/linux/generic-2.6/patches-2.6.25/630-phy_packets.patch
target/linux/generic-2.6/patches-2.6.25/640-mvswitch.patch
target/linux/generic-2.6/patches-2.6.25/700-powerpc_git.patch
target/linux/generic-2.6/patches-2.6.25/801-usb_serial_endpoint_size.patch
target/linux/generic-2.6/patches-2.6.25/840-unable_to_open_console.patch
target/linux/generic-2.6/patches-2.6.25/850-jffs2_erase_progress_indicator.patch
target/linux/generic-2.6/patches-2.6.25/900-headers_type_and_time.patch
target/linux/generic-2.6/patches-2.6.25/902-darwin_scripts_include.patch
target/linux/generic-2.6/patches-2.6.25/903-hostap_txpower.patch
target/linux/generic-2.6/patches-2.6.25/903-stddef_include.patch
target/linux/generic-2.6/patches-2.6.25/904-ls_time_locale.patch
target/linux/generic-2.6/patches-2.6.25/910-m25p80_redboot_partitions.patch
target/linux/generic-2.6/patches-2.6.25/921-gpio_spi_driver.patch
target/linux/generic-2.6/patches-2.6.25/922-gpiommc.patch
target/linux/generic-2.6/patches-2.6.25/923-gpiommc-configfs-locking.patch
target/linux/generic-2.6/patches-2.6.25/930-ppc_big_endian_io_memory_accessors.patch
target/linux/generic-2.6/patches-2.6.25/940-arm_mach_types.patch
target/linux/generic-2.6/patches-2.6.25/950-ocf-linux-26-20080704.patch
target/linux/generic-2.6/patches-2.6.25/960-backport_gpiolib_better_rmmod_infrastructure.patch
target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch
target/linux/generic-2.6/patches-2.6.25/962-backport_gpiolib_dynamic_gpio_number_allocation.patch
target/linux/generic-2.6/patches-2.6.25/963-backport_gpio_chip_reserve.patch
target/linux/generic-2.6/patches-2.6.25/964-backport_gpiolib_fix_off_by_one_errors.patch
target/linux/generic-2.6/patches-2.6.25/981-backport_usb_serial_sierrawireless_ids.patch
target/linux/ps3/Makefile
target/linux/x86/Makefile

index a9b9286..6bdc5c1 100644 (file)
@@ -22,8 +22,8 @@ endif
 ifeq ($(LINUX_VERSION),2.6.24.7)
   LINUX_KERNEL_MD5SUM:=40a73780d51525d28d36dec852c680c4
 endif
-ifeq ($(LINUX_VERSION),2.6.25.17)
-  LINUX_KERNEL_MD5SUM:=30618bff93fd4fd048e20a9a6aab8e5d
+ifeq ($(LINUX_VERSION),2.6.25.19)
+  LINUX_KERNEL_MD5SUM:=1b20d2d2a5a0f119372a166eaf816e13
 endif
 ifeq ($(LINUX_VERSION),2.6.26.7)
   LINUX_KERNEL_MD5SUM:=ada8af1e3ec15bd6e9bdbcadf23a9cc2
index e616467..d90d105 100644 (file)
@@ -11,7 +11,7 @@ BOARD:=at91
 BOARDNAME:=Atmel AT91
 FEATURES:=squashfs usb
 
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
 
 include $(INCLUDE_DIR)/target.mk
 
index 74962b2..06c2935 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-at91/Kconfig
 +++ b/arch/arm/mach-at91/Kconfig
-@@ -12,18 +12,28 @@
+@@ -12,18 +12,28 @@ config ARCH_AT91RM9200
  
  config ARCH_AT91SAM9260
        bool "AT91SAM9260 or AT91SAM9XE"
@@ -29,7 +29,7 @@
  
  config ARCH_AT91X40
        bool "AT91x40"
-@@ -45,7 +55,7 @@
+@@ -45,7 +55,7 @@ config MACH_ONEARM
        depends on ARCH_AT91RM9200
        help
          Select this if you are using Ajeco's 1ARM Single Board Computer.
@@ -38,7 +38,7 @@
  
  config ARCH_AT91RM9200DK
        bool "Atmel AT91RM9200-DK Development board"
-@@ -94,7 +104,7 @@
+@@ -94,7 +104,7 @@ config MACH_KB9200
        depends on ARCH_AT91RM9200
        help
          Select this if you are using KwikByte's KB920x board.
@@ -47,7 +47,7 @@
  
  config MACH_PICOTUX2XX
        bool "picotux 200"
-@@ -109,6 +119,38 @@
+@@ -109,6 +119,38 @@ config MACH_KAFA
        help
          Select this if you are using Sperry-Sun's KAFA board.
  
@@ -86,7 +86,7 @@
  endif
  
  # ----------------------------------------------------------
-@@ -133,6 +175,34 @@
+@@ -133,6 +175,34 @@ config MACH_AT91SAM9260EK
          Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
          <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
  
  endif
  
  # ----------------------------------------------------------
-@@ -163,6 +233,13 @@
+@@ -163,6 +233,13 @@ config MACH_AT91SAM9263EK
          Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
          <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
  
  endif
  
  # ----------------------------------------------------------
-@@ -216,7 +293,7 @@
+@@ -216,7 +293,7 @@ comment "AT91 Board Options"
  
  config MTD_AT91_DATAFLASH_CARD
        bool "Enable DataFlash Card support"
        help
          Enable support for the DataFlash card.
  
-@@ -237,6 +314,19 @@
+@@ -237,6 +314,19 @@ config AT91_PROGRAMMABLE_CLOCKS
          Select this if you need to program one or more of the PCK0..PCK3
          programmable clock outputs.
  
         range 32 1024
 --- a/arch/arm/mach-at91/Makefile
 +++ b/arch/arm/mach-at91/Makefile
-@@ -28,16 +28,26 @@
+@@ -28,16 +28,26 @@ obj-$(CONFIG_MACH_CARMEVA) += board-carm
  obj-$(CONFIG_MACH_KB9200)     += board-kb9202.o
  obj-$(CONFIG_MACH_ATEB9200)   += board-eb9200.o
  obj-$(CONFIG_MACH_KAFA)               += board-kafa.o
  
  # AT91SAM9RL board-specific support
  obj-$(CONFIG_MACH_AT91SAM9RLEK)       += board-sam9rlek.o
-@@ -50,9 +60,11 @@
+@@ -50,9 +60,11 @@ obj-$(CONFIG_MACH_AT91EB01) += board-eb0
  
  # Drivers
  obj-y                         += leds.o
  
  #include "generic.h"
  #include "clock.h"
-@@ -288,6 +291,12 @@
+@@ -288,6 +291,12 @@ static void at91cap9_reset(void)
        at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
  }
  
  /* --------------------------------------------------------------------
   *  AT91CAP9 processor initialization
   * -------------------------------------------------------------------- */
-@@ -298,6 +307,7 @@
+@@ -298,6 +307,7 @@ void __init at91cap9_initialize(unsigned
        iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
  
        at91_arch_reset = at91cap9_reset;
        at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
  
        /* Init clock subsystem */
-@@ -308,6 +318,12 @@
+@@ -308,6 +318,12 @@ void __init at91cap9_initialize(unsigned
  
        /* Register GPIO subsystem */
        at91_gpio_init(at91cap9_gpio, 4);
  
  #include "generic.h"
  
-@@ -69,6 +71,9 @@
+@@ -69,6 +71,9 @@ void __init at91_add_device_usbh(struct 
        if (!data)
                return;
  
        /* Enable VBus control for UHP ports */
        for (i = 0; i < data->ports; i++) {
                if (data->vbus_pin[i])
-@@ -84,6 +89,110 @@
+@@ -84,6 +89,110 @@ void __init at91_add_device_usbh(struct 
  
  
  /* --------------------------------------------------------------------
   *  Ethernet
   * -------------------------------------------------------------------- */
  
-@@ -246,7 +355,7 @@
+@@ -246,7 +355,7 @@ void __init at91_add_device_mmc(short mm
                }
  
                mmc0_data = *data;
                platform_device_register(&at91cap9_mmc0_device);
        } else {                        /* MCI1 */
                /* CLK */
-@@ -283,10 +392,15 @@
+@@ -283,10 +392,15 @@ static struct at91_nand_data nand_data;
  #define NAND_BASE     AT91_CHIPSELECT_3
  
  static struct resource nand_resources[] = {
        }
  };
  
-@@ -344,6 +458,7 @@
+@@ -344,6 +458,7 @@ void __init at91_add_device_nand(struct 
  void __init at91_add_device_nand(struct at91_nand_data *data) {}
  #endif
  
  /* --------------------------------------------------------------------
   *  TWI (i2c)
   * -------------------------------------------------------------------- */
-@@ -532,17 +647,64 @@
+@@ -532,17 +647,64 @@ void __init at91_add_device_spi(struct s
  
  
  /* --------------------------------------------------------------------
        platform_device_register(&at91cap9_rtt_device);
  }
  
-@@ -660,6 +822,9 @@
+@@ -660,6 +822,9 @@ void __init at91_add_device_lcdc(struct 
        if (!data)
                return;
  
        at91_set_A_periph(AT91_PIN_PC1, 0);     /* LCDHSYNC */
        at91_set_A_periph(AT91_PIN_PC2, 0);     /* LCDDOTCK */
        at91_set_A_periph(AT91_PIN_PC3, 0);     /* LCDDEN */
-@@ -990,7 +1155,7 @@
+@@ -990,7 +1155,7 @@ static inline void configure_usart2_pins
                at91_set_B_periph(AT91_PIN_PD6, 0);     /* CTS2 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
-@@ -1031,8 +1196,6 @@
+@@ -1031,8 +1196,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -1043,6 +1206,9 @@
+@@ -1043,6 +1206,9 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  }
  #else
  void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
-@@ -1060,6 +1226,7 @@
+@@ -1060,6 +1226,7 @@ static int __init at91_add_standard_devi
  {
        at91_add_device_rtt();
        at91_add_device_watchdog();
  
 --- a/arch/arm/mach-at91/at91rm9200_devices.c
 +++ b/arch/arm/mach-at91/at91rm9200_devices.c
-@@ -513,7 +513,18 @@
+@@ -513,7 +513,18 @@ void __init at91_add_device_i2c(struct i
   *  SPI
   * -------------------------------------------------------------------- */
  
  static u64 spi_dmamask = DMA_BIT_MASK(32);
  
  static struct resource spi_resources[] = {
-@@ -530,7 +541,7 @@
+@@ -530,7 +541,7 @@ static struct resource spi_resources[] =
  };
  
  static struct platform_device at91rm9200_spi_device = {
        .id             = 0,
        .dev            = {
                                .dma_mask               = &spi_dmamask,
-@@ -563,6 +574,12 @@
+@@ -563,6 +574,12 @@ void __init at91_add_device_spi(struct s
                else
                        at91_set_gpio_output(cs_pin, 1);
  
  
                /* pass chip-select pin to driver */
                devices[i].controller_data = (void *) cs_pin;
-@@ -577,6 +594,90 @@
+@@ -577,6 +594,90 @@ void __init at91_add_device_spi(struct s
  
  
  /* --------------------------------------------------------------------
   *  RTC
   * -------------------------------------------------------------------- */
  
-@@ -589,6 +690,7 @@
+@@ -589,6 +690,7 @@ static struct platform_device at91rm9200
  
  static void __init at91_add_device_rtc(void)
  {
        platform_device_register(&at91rm9200_rtc_device);
  }
  #else
-@@ -1019,7 +1121,7 @@
+@@ -1019,7 +1121,7 @@ static inline void configure_usart3_pins
                at91_set_B_periph(AT91_PIN_PB0, 0);     /* RTS3 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init __deprecated at91_init_serial(struct at91_uart_config *config)
-@@ -1110,8 +1212,6 @@
+@@ -1110,8 +1212,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -1122,6 +1222,9 @@
+@@ -1122,6 +1222,9 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  }
  #else
  void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
-@@ -1141,6 +1244,7 @@
+@@ -1141,6 +1244,7 @@ static int __init at91_add_standard_devi
  {
        at91_add_device_rtc();
        at91_add_device_watchdog();
  
 --- a/arch/arm/mach-at91/at91rm9200_time.c
 +++ b/arch/arm/mach-at91/at91rm9200_time.c
-@@ -136,8 +136,6 @@
+@@ -136,8 +136,6 @@ clkevt32k_next_event(unsigned long delta
        u32             alm;
        int             status = 0;
  
  
  #include "generic.h"
  #include "clock.h"
-@@ -267,6 +269,11 @@
+@@ -267,6 +269,11 @@ static void at91sam9260_reset(void)
        at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
  }
  
  
  /* --------------------------------------------------------------------
   *  AT91SAM9260 processor initialization
-@@ -304,6 +311,7 @@
+@@ -304,6 +311,7 @@ void __init at91sam9260_initialize(unsig
                iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
  
        at91_arch_reset = at91sam9260_reset;
  
  #include "generic.h"
  
-@@ -288,10 +288,15 @@
+@@ -288,10 +288,15 @@ static struct at91_nand_data nand_data;
  #define NAND_BASE     AT91_CHIPSELECT_3
  
  static struct resource nand_resources[] = {
        }
  };
  
-@@ -540,6 +545,90 @@
+@@ -540,6 +545,90 @@ void __init at91_add_device_spi(struct s
  
  
  /* --------------------------------------------------------------------
   *  RTT
   * -------------------------------------------------------------------- */
  
-@@ -553,13 +642,14 @@
+@@ -553,13 +642,14 @@ static struct resource rtt_resources[] =
  
  static struct platform_device at91sam9260_rtt_device = {
        .name           = "at91_rtt",
        platform_device_register(&at91sam9260_rtt_device);
  }
  
-@@ -962,7 +1052,7 @@
+@@ -962,7 +1052,7 @@ static inline void configure_usart5_pins
        at91_set_A_periph(AT91_PIN_PB13, 0);            /* RXD5 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init __deprecated at91_init_serial(struct at91_uart_config *config)
-@@ -1073,8 +1163,6 @@
+@@ -1073,8 +1163,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -1085,6 +1173,9 @@
+@@ -1085,6 +1173,9 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  }
  #else
  void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
-@@ -1103,6 +1194,7 @@
+@@ -1103,6 +1194,7 @@ static int __init at91_add_standard_devi
  {
        at91_add_device_rtt();
        at91_add_device_watchdog();
  
  #include "generic.h"
  #include "clock.h"
-@@ -245,6 +247,11 @@
+@@ -245,6 +247,11 @@ static void at91sam9261_reset(void)
        at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
  }
  
  
  /* --------------------------------------------------------------------
   *  AT91SAM9261 processor initialization
-@@ -256,6 +263,7 @@
+@@ -256,6 +263,7 @@ void __init at91sam9261_initialize(unsig
        iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
  
        at91_arch_reset = at91sam9261_reset;
  
  #include "generic.h"
  
-@@ -548,6 +548,55 @@
+@@ -548,6 +548,55 @@ void __init at91_add_device_lcdc(struct 
  
  
  /* --------------------------------------------------------------------
   *  RTT
   * -------------------------------------------------------------------- */
  
-@@ -561,13 +610,14 @@
+@@ -561,13 +610,14 @@ static struct resource rtt_resources[] =
  
  static struct platform_device at91sam9261_rtt_device = {
        .name           = "at91_rtt",
        platform_device_register(&at91sam9261_rtt_device);
  }
  
-@@ -938,7 +988,7 @@
+@@ -938,7 +988,7 @@ static inline void configure_usart2_pins
                at91_set_B_periph(AT91_PIN_PA16, 0);    /* CTS2 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init __deprecated at91_init_serial(struct at91_uart_config *config)
-@@ -1019,8 +1069,6 @@
+@@ -1019,8 +1069,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -1031,6 +1079,9 @@
+@@ -1031,6 +1079,9 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  }
  #else
  void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
-@@ -1050,6 +1101,7 @@
+@@ -1050,6 +1101,7 @@ static int __init at91_add_standard_devi
  {
        at91_add_device_rtt();
        at91_add_device_watchdog();
  
  #include "generic.h"
  #include "clock.h"
-@@ -271,6 +273,11 @@
+@@ -271,6 +273,11 @@ static void at91sam9263_reset(void)
        at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
  }
  
  
  /* --------------------------------------------------------------------
   *  AT91SAM9263 processor initialization
-@@ -282,6 +289,7 @@
+@@ -282,6 +289,7 @@ void __init at91sam9263_initialize(unsig
        iotable_init(at91sam9263_io_desc, ARRAY_SIZE(at91sam9263_io_desc));
  
        at91_arch_reset = at91sam9263_reset;
  
  #include "generic.h"
  
-@@ -308,7 +308,7 @@
+@@ -308,7 +308,7 @@ void __init at91_add_device_mmc(short mm
                }
  
                mmc0_data = *data;
                platform_device_register(&at91sam9263_mmc0_device);
        } else {                        /* MCI1 */
                /* CLK */
-@@ -358,10 +358,15 @@
+@@ -358,10 +358,15 @@ static struct at91_nand_data nand_data;
  #define NAND_BASE     AT91_CHIPSELECT_3
  
  static struct resource nand_resources[] = {
        }
  };
  
-@@ -783,6 +788,43 @@
+@@ -783,6 +788,43 @@ void __init at91_add_device_isi(void) {}
  
  
  /* --------------------------------------------------------------------
   *  RTT
   * -------------------------------------------------------------------- */
  
-@@ -818,7 +860,9 @@
+@@ -818,7 +860,9 @@ static struct platform_device at91sam926
  
  static void __init at91_add_device_rtt(void)
  {
        platform_device_register(&at91sam9263_rtt1_device);
  }
  
-@@ -933,9 +977,6 @@
+@@ -933,9 +977,6 @@ static inline void configure_ssc1_pins(u
  }
  
  /*
   * SSC controllers are accessed through library code, instead of any
   * kind of all-singing/all-dancing driver.  For example one could be
   * used by a particular I2S audio codec's driver, while another one
-@@ -1146,7 +1187,7 @@
+@@ -1146,7 +1187,7 @@ static inline void configure_usart2_pins
                at91_set_B_periph(AT91_PIN_PD6, 0);     /* CTS2 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init __deprecated at91_init_serial(struct at91_uart_config *config)
-@@ -1227,8 +1268,6 @@
+@@ -1227,8 +1268,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -1239,9 +1278,12 @@
+@@ -1239,9 +1278,12 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
  void __init at91_set_serial_console(unsigned portnr) {}
  void __init at91_add_device_serial(void) {}
-@@ -1257,6 +1299,7 @@
+@@ -1257,6 +1299,7 @@ static int __init at91_add_standard_devi
  {
        at91_add_device_rtt();
        at91_add_device_watchdog();
  
  #include "generic.h"
  #include "clock.h"
-@@ -244,6 +246,11 @@
+@@ -244,6 +246,11 @@ static void at91sam9rl_reset(void)
        at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
  }
  
  
  /* --------------------------------------------------------------------
   *  AT91SAM9RL processor initialization
-@@ -274,6 +281,7 @@
+@@ -274,6 +281,7 @@ void __init at91sam9rl_initialize(unsign
        iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc));
  
        at91_arch_reset = at91sam9rl_reset;
   *  MMC / SD
   * -------------------------------------------------------------------- */
  
-@@ -105,10 +200,15 @@
+@@ -105,10 +200,15 @@ static struct at91_nand_data nand_data;
  #define NAND_BASE     AT91_CHIPSELECT_3
  
  static struct resource nand_resources[] = {
        }
  };
  
-@@ -385,6 +485,100 @@
+@@ -385,6 +485,100 @@ void __init at91_add_device_lcdc(struct 
  
  
  /* --------------------------------------------------------------------
   *  RTC
   * -------------------------------------------------------------------- */
  
-@@ -397,6 +591,7 @@
+@@ -397,6 +591,7 @@ static struct platform_device at91sam9rl
  
  static void __init at91_add_device_rtc(void)
  {
        platform_device_register(&at91sam9rl_rtc_device);
  }
  #else
-@@ -418,13 +613,14 @@
+@@ -418,13 +613,14 @@ static struct resource rtt_resources[] =
  
  static struct platform_device at91sam9rl_rtt_device = {
        .name           = "at91_rtt",
        platform_device_register(&at91sam9rl_rtt_device);
  }
  
-@@ -539,9 +735,6 @@
+@@ -539,9 +735,6 @@ static inline void configure_ssc1_pins(u
  }
  
  /*
   * SSC controllers are accessed through library code, instead of any
   * kind of all-singing/all-dancing driver.  For example one could be
   * used by a particular I2S audio codec's driver, while another one
-@@ -802,7 +995,7 @@
+@@ -802,7 +995,7 @@ static inline void configure_usart3_pins
                at91_set_B_periph(AT91_PIN_PD3, 0);     /* CTS3 */
  }
  
  struct platform_device *atmel_default_console_device; /* the serial console device */
  
  void __init __deprecated at91_init_serial(struct at91_uart_config *config)
-@@ -893,8 +1086,6 @@
+@@ -893,8 +1086,6 @@ void __init at91_set_serial_console(unsi
  {
        if (portnr < ATMEL_MAX_UART)
                atmel_default_console_device = at91_uarts[portnr];
  }
  
  void __init at91_add_device_serial(void)
-@@ -905,6 +1096,9 @@
+@@ -905,6 +1096,9 @@ void __init at91_add_device_serial(void)
                if (at91_uarts[i])
                        platform_device_register(at91_uarts[i]);
        }
  }
  #else
  void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
-@@ -925,6 +1119,7 @@
+@@ -925,6 +1119,7 @@ static int __init at91_add_standard_devi
        at91_add_device_rtc();
        at91_add_device_rtt();
        at91_add_device_watchdog();
  
  #include "generic.h"
  
-@@ -78,6 +76,12 @@
+@@ -78,6 +76,12 @@ static struct at91_usbh_data __initdata 
        .ports          = 2,
  };
  
  
  /*
   * ADS7846 Touchscreen
-@@ -130,7 +134,7 @@
+@@ -130,7 +134,7 @@ static struct spi_board_info cap9adk_spi
        {
                .modalias       = "ads7846",
                .chip_select    = 3,            /* can be 2 or 3, depending on J2 jumper */
                .bus_num        = 0,
                .platform_data  = &ads_info,
                .irq            = AT91_PIN_PC4,
-@@ -324,8 +328,9 @@
+@@ -324,8 +328,9 @@ static void __init cap9adk_board_init(vo
        /* Serial */
        at91_add_device_serial();
        /* USB Host */
        /* SPI */
        at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices));
        /* Touchscreen */
-@@ -341,7 +346,6 @@
+@@ -341,7 +346,6 @@ static void __init cap9adk_board_init(vo
        /* I2C */
        at91_add_device_i2c(NULL, 0);
        /* LCD Controller */
  }
  
  static void __init carmeva_init_irq(void)
-@@ -117,6 +114,30 @@
+@@ -117,6 +114,30 @@ static struct spi_board_info carmeva_spi
        },
  };
  
  static void __init carmeva_board_init(void)
  {
        /* Serial */
-@@ -135,6 +156,8 @@
+@@ -135,6 +156,8 @@ static void __init carmeva_board_init(vo
  //    at91_add_device_cf(&carmeva_cf_data);
        /* MMC */
        at91_add_device_mmc(0, &carmeva_mmc_data);
 +MACHINE_END
 --- a/arch/arm/mach-at91/board-csb337.c
 +++ b/arch/arm/mach-at91/board-csb337.c
-@@ -61,6 +61,7 @@
+@@ -61,6 +61,7 @@ static void __init csb337_map_io(void)
  
        /* Setup the LEDs */
        at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
  
        /* Setup the serial ports and console */
        at91_init_serial(&csb337_uart_config);
-@@ -202,11 +203,11 @@
+@@ -202,11 +203,11 @@ static struct platform_device csb300_but
  
  static void __init csb300_add_device_buttons(void)
  {
        at91_set_deglitch(AT91_PIN_PA21, 1);
  
        platform_device_register(&csb300_button_device);
-@@ -233,7 +234,7 @@
+@@ -233,7 +234,7 @@ static struct gpio_led csb_leds[] = {
                .gpio                   = AT91_PIN_PB0,
                .active_low             = 1,
                .default_trigger        = "ide-disk",
  }
  
  static void __init csb637_init_irq(void)
-@@ -118,8 +107,19 @@
+@@ -118,8 +107,19 @@ static struct platform_device csb_flash 
        .num_resources  = ARRAY_SIZE(csb_flash_resources),
  };
  
  static void __init dk_map_io(void)
  {
        /* Initialize processor: 18.432 MHz crystal */
-@@ -64,8 +54,16 @@
+@@ -64,8 +54,16 @@ static void __init dk_map_io(void)
        /* Setup the LEDs */
        at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
  
  }
  
  static void __init dk_init_irq(void)
-@@ -73,6 +71,185 @@
+@@ -73,6 +71,185 @@ static void __init dk_init_irq(void)
        at91rm9200_init_interrupts(NULL);
  }
  
  static struct at91_eth_data __initdata dk_eth_data = {
        .phy_irq_pin    = AT91_PIN_PC4,
        .is_rmii        = 1,
-@@ -164,7 +341,7 @@
+@@ -164,7 +341,7 @@ static struct at91_nand_data __initdata 
  #define DK_FLASH_SIZE 0x200000
  
  static struct physmap_flash_data dk_flash_data = {
  };
  
  static struct resource dk_flash_resource = {
-@@ -223,8 +400,12 @@
+@@ -223,8 +400,12 @@ static void __init dk_board_init(void)
        platform_device_register(&dk_flash);
        /* LEDs */
        at91_gpio_leds(dk_leds, ARRAY_SIZE(dk_leds));
  static void __init ek_map_io(void)
  {
        /* Initialize processor: 18.432 MHz crystal */
-@@ -64,8 +54,16 @@
+@@ -64,8 +54,16 @@ static void __init ek_map_io(void)
        /* Setup the LEDs */
        at91_init_leds(AT91_PIN_PB1, AT91_PIN_PB2);
  
  }
  
  static void __init ek_init_irq(void)
-@@ -73,6 +71,187 @@
+@@ -73,6 +71,187 @@ static void __init ek_init_irq(void)
        at91rm9200_init_interrupts(NULL);
  }
  
  static struct at91_eth_data __initdata ek_eth_data = {
        .phy_irq_pin    = AT91_PIN_PC4,
        .is_rmii        = 1,
-@@ -122,7 +301,7 @@
+@@ -122,7 +301,7 @@ static struct i2c_board_info __initdata 
  #define EK_FLASH_SIZE 0x200000
  
  static struct physmap_flash_data ek_flash_data = {
  };
  
  static struct resource ek_flash_resource = {
-@@ -189,7 +368,7 @@
+@@ -189,7 +368,7 @@ static void __init ek_board_init(void)
        /* LEDs */
        at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
        /* VGA */
  
  static void __init kb9202_map_io(void)
  {
-@@ -59,8 +50,20 @@
+@@ -59,8 +50,20 @@ static void __init kb9202_map_io(void)
        /* Set up the LEDs */
        at91_init_leds(AT91_PIN_PC19, AT91_PIN_PC18);
  
  }
  
  static void __init kb9202_init_irq(void)
-@@ -111,6 +114,48 @@
+@@ -111,6 +114,48 @@ static struct at91_nand_data __initdata 
        .partition_info = nand_partitions,
  };
  
  static void __init kb9202_board_init(void)
  {
        /* Serial */
-@@ -129,6 +174,8 @@
+@@ -129,6 +174,8 @@ static void __init kb9202_board_init(voi
        at91_add_device_spi(NULL, 0);
        /* NAND */
        at91_add_device_nand(&kb9202_nand_data);
  }
  
  static void __init ek_init_irq(void)
-@@ -85,6 +89,35 @@
+@@ -85,6 +89,35 @@ static struct at91_udc_data __initdata e
  
  
  /*
   * SPI devices.
   */
  static struct spi_board_info ek_spi_devices[] = {
-@@ -110,6 +143,8 @@
+@@ -110,6 +143,8 @@ static struct spi_board_info ek_spi_devi
                .chip_select    = 0,
                .max_speed_hz   = 10 * 1000 * 1000,
                .bus_num        = 1,
        },
  #endif
  };
-@@ -172,6 +207,74 @@
+@@ -172,6 +207,74 @@ static struct at91_mmc_data __initdata e
  //    .vcc_pin        = ... not connected
  };
  
  static void __init ek_board_init(void)
  {
        /* Serial */
-@@ -190,6 +293,16 @@
+@@ -190,6 +293,16 @@ static void __init ek_board_init(void)
        at91_add_device_mmc(0, &ek_mmc_data);
        /* I2C */
        at91_add_device_i2c(NULL, 0);
  static void __init ek_map_io(void)
  {
        /* Initialize processor: 18.432 MHz crystal */
-@@ -68,8 +60,11 @@
+@@ -68,8 +60,11 @@ static void __init ek_map_io(void)
        /* Setup the LEDs */
        at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14);
  
  }
  
  static void __init ek_init_irq(void)
-@@ -239,6 +234,35 @@
+@@ -239,6 +234,35 @@ static void __init ek_add_device_ts(void
  #endif
  
  /*
   * SPI devices
   */
  static struct spi_board_info ek_spi_devices[] = {
-@@ -252,10 +276,11 @@
+@@ -252,10 +276,11 @@ static struct spi_board_info ek_spi_devi
        {
                .modalias       = "ads7846",
                .chip_select    = 2,
        },
  #endif
  #if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
-@@ -271,6 +296,9 @@
+@@ -271,6 +296,9 @@ static struct spi_board_info ek_spi_devi
                .chip_select    = 3,
                .max_speed_hz   = 10 * 1000 * 1000,
                .bus_num        = 0,
        },
  #endif
  };
-@@ -408,24 +436,28 @@
+@@ -408,24 +436,28 @@ static struct gpio_keys_button ek_button
                .code           = BTN_0,
                .desc           = "Button 0",
                .active_low     = 1,
        }
  };
  
-@@ -445,13 +477,13 @@
+@@ -445,13 +477,13 @@ static struct platform_device ek_button_
  
  static void __init ek_add_device_buttons(void)
  {
        at91_set_deglitch(AT91_PIN_PA24, 1);
  
        platform_device_register(&ek_button_device);
-@@ -460,6 +492,29 @@
+@@ -460,6 +492,29 @@ static void __init ek_add_device_buttons
  static void __init ek_add_device_buttons(void) {}
  #endif
  
  static void __init ek_board_init(void)
  {
        /* Serial */
-@@ -481,6 +536,9 @@
+@@ -481,6 +536,9 @@ static void __init ek_board_init(void)
        at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
        /* Touchscreen */
        ek_add_device_ts();
  #else
        /* MMC */
        at91_add_device_mmc(0, &ek_mmc_data);
-@@ -489,6 +547,11 @@
+@@ -489,6 +547,11 @@ static void __init ek_board_init(void)
        at91_add_device_lcdc(&ek_lcdc_data);
        /* Push Buttons */
        ek_add_device_buttons();
  }
  
  static void __init ek_init_irq(void)
-@@ -141,7 +136,7 @@
+@@ -141,7 +136,7 @@ static struct spi_board_info ek_spi_devi
        {
                .modalias       = "ads7846",
                .chip_select    = 3,
                .bus_num        = 0,
                .platform_data  = &ads_info,
                .irq            = AT91SAM9263_ID_IRQ1,
-@@ -301,9 +296,9 @@
+@@ -301,9 +296,9 @@ static struct platform_device ek_button_
  
  static void __init ek_add_device_buttons(void)
  {
        at91_set_deglitch(AT91_PIN_PC4, 1);
  
        platform_device_register(&ek_button_device);
-@@ -341,7 +336,7 @@
+@@ -341,7 +336,7 @@ static struct gpio_led ek_leds[] = {
                .name                   = "ds3",
                .gpio                   = AT91_PIN_PB7,
                .default_trigger        = "heartbeat",
  };
  
  
-@@ -374,6 +369,9 @@
+@@ -374,6 +369,9 @@ static void __init ek_board_init(void)
        at91_add_device_ac97(&ek_ac97_data);
        /* LEDs */
        at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
  }
  
  static void __init ek_init_irq(void)
-@@ -61,6 +56,14 @@
+@@ -61,6 +56,14 @@ static void __init ek_init_irq(void)
  
  
  /*
   * MCI (SD/MMC)
   */
  static struct at91_mmc_data __initdata ek_mmc_data = {
-@@ -180,6 +183,8 @@
+@@ -180,6 +183,8 @@ static void __init ek_board_init(void)
  {
        /* Serial */
        at91_add_device_serial();
        /* I2C */
        at91_add_device_i2c(NULL, 0);
        /* NAND */
-@@ -190,6 +195,9 @@
+@@ -190,6 +195,9 @@ static void __init ek_board_init(void)
        at91_add_device_mmc(0, &ek_mmc_data);
        /* LCD Controller */
        at91_add_device_lcdc(&ek_lcdc_data);
  
  
  /*
-@@ -113,12 +114,34 @@
+@@ -113,12 +114,34 @@ static void pmc_sys_mode(struct clk *clk
                at91_sys_write(AT91_PMC_SCDR, clk->pmc_mask);
  }
  
  static struct clk uhpck = {
        .name           = "uhpck",
        .parent         = &pllb,
-@@ -254,6 +277,23 @@
+@@ -254,6 +277,23 @@ EXPORT_SYMBOL(clk_get_rate);
  
  /*------------------------------------------------------------------------*/
  
  #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
  
  /*
-@@ -362,7 +402,7 @@
+@@ -362,7 +402,7 @@ static void __init init_programmable_clo
  
  static int at91_clk_show(struct seq_file *s, void *unused)
  {
        struct clk      *clk;
  
        seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR));
-@@ -370,7 +410,10 @@
+@@ -370,7 +410,10 @@ static int at91_clk_show(struct seq_file
        seq_printf(s, "MOR  = %8x\n", at91_sys_read(AT91_CKGR_MOR));
        seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR));
        seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR));
        seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR));
        seq_printf(s, "SR   = %8x\n", sr = at91_sys_read(AT91_PMC_SR));
  
-@@ -383,6 +426,8 @@
+@@ -383,6 +426,8 @@ static int at91_clk_show(struct seq_file
                        state = (scsr & clk->pmc_mask) ? "on" : "off";
                else if (clk->mode == pmc_periph_mode)
                        state = (pcsr & clk->pmc_mask) ? "on" : "off";
                else if (clk->pmc_mask)
                        state = (sr & clk->pmc_mask) ? "on" : "off";
                else if (clk == &clk32k || clk == &main_clk)
-@@ -583,6 +628,17 @@
+@@ -583,6 +628,17 @@ int __init at91_clock_init(unsigned long
        uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
  
        /*
         * MCK and CPU derive from one of those primary clocks.
         * For now, assume this parentage won't change.
         */
-@@ -599,6 +655,9 @@
+@@ -599,6 +655,9 @@ int __init at91_clock_init(unsigned long
        for (i = 0; i < ARRAY_SIZE(standard_pmc_clocks); i++)
                list_add_tail(&standard_pmc_clocks[i]->node, &clocks);
  
  
 --- a/arch/arm/mach-at91/generic.h
 +++ b/arch/arm/mach-at91/generic.h
-@@ -41,6 +41,7 @@
+@@ -41,6 +41,7 @@ extern void __init at91_clock_associate(
   /* Power Management */
  extern void at91_irq_suspend(void);
  extern void at91_irq_resume(void);
  #define AT91RM9200_PQFP               3       /* AT91RM9200 PQFP package has 3 banks */
 --- a/arch/arm/mach-at91/gpio.c
 +++ b/arch/arm/mach-at91/gpio.c
-@@ -490,7 +490,8 @@
+@@ -490,7 +490,8 @@ postcore_initcall(at91_gpio_debugfs_init
  
  /*--------------------------------------------------------------------------*/
  
   * category than their parents, so it won't report false recursion.
   */
  static struct lock_class_key gpio_lock_class;
-@@ -557,6 +558,7 @@
+@@ -557,6 +558,7 @@ void __init at91_gpio_init(struct at91_g
                data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS;
  
                /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */
  
  static int at91_pm_valid_state(suspend_state_t state)
  {
-@@ -62,6 +194,7 @@
+@@ -62,6 +194,7 @@ static int at91_pm_begin(suspend_state_t
   * Verify that all the clocks are correct before entering
   * slow-clock mode.
   */
  static int at91_pm_verify_clocks(void)
  {
        unsigned long scsr;
-@@ -107,24 +240,24 @@
+@@ -107,24 +240,24 @@ static int at91_pm_verify_clocks(void)
  }
  
  /*
  
  static int at91_pm_enter(suspend_state_t state)
  {
-@@ -158,11 +291,14 @@
+@@ -158,11 +291,14 @@ static int at91_pm_enter(suspend_state_t
                         * turning off the main oscillator; reverse on wakeup.
                         */
                        if (slow_clock) {
                                /* FALLTHROUGH leaving master clock alone */
                        }
  
-@@ -175,13 +311,15 @@
+@@ -175,13 +311,15 @@ static int at91_pm_enter(suspend_state_t
                case PM_SUSPEND_STANDBY:
                        /*
                         * NOTE: the Wait-for-Interrupt instruction needs to be
  
                case PM_SUSPEND_ON:
                        asm("mcr p15, 0, r0, c7, c0, 4");       /* wait for interrupt */
-@@ -196,6 +334,7 @@
+@@ -196,6 +334,7 @@ static int at91_pm_enter(suspend_state_t
                        at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
  
  error:
        target_state = PM_SUSPEND_ON;
        at91_irq_resume();
        at91_gpio_resume();
-@@ -220,21 +359,20 @@
+@@ -220,21 +359,20 @@ static struct platform_suspend_ops at91_
  
  static int __init at91_pm_init(void)
  {
 +      .word .-at91_slow_clock
 --- a/arch/arm/mach-ks8695/Makefile
 +++ b/arch/arm/mach-ks8695/Makefile
-@@ -11,5 +11,8 @@
+@@ -11,5 +11,8 @@ obj-                         :=
  # PCI support is optional
  obj-$(CONFIG_PCI)             += pci.o
  
  obj-$(CONFIG_MACH_KS8695)     += board-micrel.o
 --- a/arch/arm/mach-ks8695/devices.c
 +++ b/arch/arm/mach-ks8695/devices.c
-@@ -176,6 +176,27 @@
+@@ -176,6 +176,27 @@ static void __init ks8695_add_device_wat
  #endif
  
  
  /*
 --- a/arch/arm/mach-ks8695/gpio.c
 +++ b/arch/arm/mach-ks8695/gpio.c
-@@ -136,9 +136,9 @@
+@@ -136,9 +136,9 @@ int __init_or_module gpio_direction_outp
        /* set line state */
        x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
        if (state)
        __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
  
        /* set pin as output */
-@@ -168,9 +168,9 @@
+@@ -168,9 +168,9 @@ void gpio_set_value(unsigned int pin, un
        /* set output line state */
        x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
        if (state)
        __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
  
        local_irq_restore(flags);
-@@ -189,7 +189,7 @@
+@@ -189,7 +189,7 @@ int gpio_get_value(unsigned int pin)
                return -EINVAL;
  
        x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
 +__initcall(leds_init);
 --- a/arch/arm/mach-ks8695/pci.c
 +++ b/arch/arm/mach-ks8695/pci.c
-@@ -141,7 +141,7 @@
+@@ -141,7 +141,7 @@ static struct pci_ops ks8695_pci_ops = {
        .write  = ks8695_pci_writeconfig,
  };
  
  }
 --- a/drivers/char/Kconfig
 +++ b/drivers/char/Kconfig
-@@ -1056,5 +1056,21 @@
+@@ -1056,5 +1056,21 @@ config DEVPORT
  
  source "drivers/s390/char/Kconfig"
  
  
 --- a/drivers/char/Makefile
 +++ b/drivers/char/Makefile
-@@ -98,6 +98,8 @@
+@@ -98,6 +98,8 @@ obj-$(CONFIG_GPIO_DEVICE)    += gpio_dev.o
  obj-$(CONFIG_GPIO_VR41XX)     += vr41xx_giu.o
  obj-$(CONFIG_GPIO_TB0219)     += tb0219.o
  obj-$(CONFIG_TELCLOCK)                += tlclk.o
 +MODULE_DESCRIPTION("SPI /dev interface for Atmel AT91RM9200")
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -88,6 +88,14 @@
+@@ -88,6 +88,14 @@ config I2C_AT91
          to support combined I2C messages.  Use the i2c-gpio driver
          unless your system can cope with those limitations.
  
  config I2C_AU1550
        tristate "Au1550/Au1200 SMBus interface"
        depends on SOC_AU1550 || SOC_AU1200
-@@ -626,6 +634,14 @@
+@@ -626,6 +634,14 @@ config I2C_VOODOO3
          This driver can also be built as a module.  If so, the module
          will be called i2c-voodoo3.
  
        depends on ISA
 --- a/drivers/i2c/busses/Makefile
 +++ b/drivers/i2c/busses/Makefile
-@@ -29,6 +29,7 @@
+@@ -29,6 +29,7 @@ obj-$(CONFIG_I2C_OMAP)               += i2c-omap.o
  obj-$(CONFIG_I2C_PARPORT)     += i2c-parport.o
  obj-$(CONFIG_I2C_PARPORT_LIGHT)       += i2c-parport-light.o
  obj-$(CONFIG_I2C_PASEMI)      += i2c-pasemi.o
  
  static struct clk *twi_clk;
  static void __iomem *twi_base;
-@@ -53,7 +56,7 @@
+@@ -53,7 +56,7 @@ static void __devinit at91_twi_hwinit(vo
        at91_twi_write(AT91_TWI_CR, AT91_TWI_MSEN);     /* Set Master mode */
  
        /* Calcuate clock dividers */
        cdiv = cdiv + 1;        /* round up */
        ckdiv = 0;
        while (cdiv > 255) {
-@@ -61,11 +64,12 @@
+@@ -61,11 +64,12 @@ static void __devinit at91_twi_hwinit(vo
                cdiv = cdiv >> 1;
        }
  
 +MODULE_LICENSE("GPL");
 --- a/drivers/mmc/host/at91_mci.c
 +++ b/drivers/mmc/host/at91_mci.c
-@@ -659,13 +659,14 @@
+@@ -659,13 +659,14 @@ static void at91_mci_set_ios(struct mmc_
        /* maybe switch power to the card */
        if (host->board->vcc_pin) {
                switch (ios->power_mode) {
  }
 --- a/drivers/mtd/devices/Kconfig
 +++ b/drivers/mtd/devices/Kconfig
-@@ -270,5 +270,17 @@
+@@ -270,5 +270,17 @@ config MTD_DOCPROBE_55AA
          LinuxBIOS or if you need to recover a DiskOnChip Millennium on which
          you have managed to wipe the first block.
  
 +endmenu
 --- a/drivers/mtd/devices/Makefile
 +++ b/drivers/mtd/devices/Makefile
-@@ -17,3 +17,4 @@
+@@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_LART)               += lart.o
  obj-$(CONFIG_MTD_BLOCK2MTD)   += block2mtd.o
  obj-$(CONFIG_MTD_DATAFLASH)   += mtd_dataflash.o
  obj-$(CONFIG_MTD_M25P80)      += m25p80.o
 +MODULE_DESCRIPTION("DataFlash driver for Atmel AT91RM9200");
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -273,12 +273,53 @@
+@@ -273,12 +273,53 @@ config MTD_NAND_CS553X
          If you say "m", the module will be called "cs553x_nand.ko".
  
  config MTD_NAND_AT91
   * Hardware specific access to control-lines
   */
  static void at91_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
-@@ -44,6 +113,13 @@
+@@ -44,6 +113,13 @@ static void at91_nand_cmd_ctrl(struct mt
        struct nand_chip *nand_chip = mtd->priv;
        struct at91_nand_host *host = nand_chip->priv;
  
        if (cmd == NAND_CMD_NONE)
                return;
  
-@@ -65,27 +141,249 @@
+@@ -65,27 +141,249 @@ static int at91_nand_device_ready(struct
  }
  
  /*
  /*
   * Probe for the NAND device.
   */
-@@ -94,6 +392,8 @@
+@@ -94,6 +392,8 @@ static int __init at91_nand_probe(struct
        struct at91_nand_host *host;
        struct mtd_info *mtd;
        struct nand_chip *nand_chip;
        int res;
  
  #ifdef CONFIG_MTD_PARTITIONS
-@@ -108,8 +408,13 @@
+@@ -108,8 +408,13 @@ static int __init at91_nand_probe(struct
                return -ENOMEM;
        }
  
        if (host->io_base == NULL) {
                printk(KERN_ERR "at91_nand: ioremap failed\n");
                kfree(host);
-@@ -119,6 +424,7 @@
+@@ -119,6 +424,7 @@ static int __init at91_nand_probe(struct
        mtd = &host->mtd;
        nand_chip = &host->nand_chip;
        host->board = pdev->dev.platform_data;
  
        nand_chip->priv = host;         /* link the private data structures */
        mtd->priv = nand_chip;
-@@ -132,11 +438,40 @@
+@@ -132,11 +438,40 @@ static int __init at91_nand_probe(struct
        if (host->board->rdy_pin)
                nand_chip->dev_ready = at91_nand_device_ready;
  
  
        platform_set_drvdata(pdev, host);
        at91_nand_enable(host);
-@@ -149,8 +484,60 @@
+@@ -149,8 +484,60 @@ static int __init at91_nand_probe(struct
                }
        }
  
                res = -ENXIO;
                goto out;
        }
-@@ -179,8 +566,11 @@
+@@ -179,8 +566,11 @@ static int __init at91_nand_probe(struct
        if (!res)
                return res;
  
  out:
        at91_nand_disable(host);
        platform_set_drvdata(pdev, NULL);
-@@ -192,7 +582,7 @@
+@@ -192,7 +582,7 @@ out:
  /*
   * Remove a NAND device.
   */
  {
        struct at91_nand_host *host = platform_get_drvdata(pdev);
        struct mtd_info *mtd = &host->mtd;
-@@ -208,8 +598,7 @@
+@@ -208,8 +598,7 @@ static int __devexit at91_nand_remove(st
  }
  
  static struct platform_driver at91_nand_driver = {
        .driver         = {
                .name   = "at91_nand",
                .owner  = THIS_MODULE,
-@@ -218,7 +607,7 @@
+@@ -218,7 +607,7 @@ static struct platform_driver at91_nand_
  
  static int __init at91_nand_init(void)
  {
  }
  
  
-@@ -233,4 +622,4 @@
+@@ -233,4 +622,4 @@ module_exit(at91_nand_exit);
  
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Rick Bronson");
 +MODULE_DESCRIPTION("NAND/SmartMedia driver for AT91RM9200 / AT91SAM9 / AT91CAP9");
 --- a/drivers/net/arm/Kconfig
 +++ b/drivers/net/arm/Kconfig
-@@ -47,3 +47,10 @@
+@@ -47,3 +47,10 @@ config EP93XX_ETH
        help
          This is a driver for the ethernet hardware included in EP93xx CPUs.
          Say Y if you are building a kernel for EP93xx based devices.
 +        and enable Ethernet support, then select this option.
 --- a/drivers/net/arm/Makefile
 +++ b/drivers/net/arm/Makefile
-@@ -9,3 +9,4 @@
+@@ -9,3 +9,4 @@ obj-$(CONFIG_ARM_ETHER3)       += ether3.o
  obj-$(CONFIG_ARM_ETHER1)      += ether1.o
  obj-$(CONFIG_ARM_AT91_ETHER)  += at91_ether.o
  obj-$(CONFIG_EP93XX_ETH)      += ep93xx_eth.o
 +obj-$(CONFIG_ARM_KS8695_ETHER)        += ks8695_ether.o
 --- a/drivers/net/arm/at91_ether.c
 +++ b/drivers/net/arm/at91_ether.c
-@@ -220,7 +220,7 @@
+@@ -220,7 +220,7 @@ static irqreturn_t at91ether_phy_interru
                if (!(phy & (1 << 0)))
                        goto done;
        }
                read_phy(lp->phy_address, MII_TPISTATUS, &phy);         /* ack interrupt in Micrel PHY */
                if (!(phy & ((1 << 2) | 1)))
                        goto done;
-@@ -286,7 +286,7 @@
+@@ -286,7 +286,7 @@ static void enable_phyirq(struct net_dev
                dsintr = (1 << 15) | ( 1 << 14);
                write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
        }
                dsintr = (1 << 10) | ( 1 << 8);
                write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
        }
-@@ -341,7 +341,7 @@
+@@ -341,7 +341,7 @@ static void disable_phyirq(struct net_de
                dsintr = ~(1 << 14);
                write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
        }
                read_phy(lp->phy_address, MII_TPISTATUS, &dsintr);
                dsintr = ~((1 << 10) | (1 << 8));
                write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
-@@ -820,7 +820,7 @@
+@@ -820,7 +820,7 @@ static int at91ether_tx(struct sk_buff *
                lp->skb = skb;
                lp->skb_length = skb->len;
                lp->skb_physaddr = dma_map_single(NULL, skb->data, skb->len, DMA_TO_DEVICE);
  
                /* Set address of the data in the Transmit Address register */
                at91_emac_write(AT91_EMAC_TAR, lp->skb_physaddr);
-@@ -843,34 +843,32 @@
+@@ -843,34 +843,32 @@ static int at91ether_tx(struct sk_buff *
   */
  static struct net_device_stats *at91ether_stats(struct net_device *dev)
  {
  }
  
  /*
-@@ -896,16 +894,16 @@
+@@ -896,16 +894,16 @@ static void at91ether_rx(struct net_devi
  
                        skb->protocol = eth_type_trans(skb, dev);
                        dev->last_rx = jiffies;
  
                dlist->descriptors[lp->rxBuffIndex].addr &= ~EMAC_DESC_DONE;    /* reset ownership bit */
                if (lp->rxBuffIndex == MAX_RX_DESCR-1)                          /* wrap after last buffer */
-@@ -934,7 +932,7 @@
+@@ -934,7 +932,7 @@ static irqreturn_t at91ether_interrupt(i
        if (intstatus & AT91_EMAC_TCOM) {       /* Transmit complete */
                /* The TCOM bit is set even if the transmission failed. */
                if (intstatus & (AT91_EMAC_TUND | AT91_EMAC_RTRY))
  
                if (lp->skb) {
                        dev_kfree_skb_irq(lp->skb);
-@@ -978,15 +976,22 @@
+@@ -978,15 +976,22 @@ static int __init at91ether_setup(unsign
        struct net_device *dev;
        struct at91_private *lp;
        unsigned int val;
  
        /* Install the interrupt handler */
        if (request_irq(dev->irq, at91ether_interrupt, 0, dev->name, dev)) {
-@@ -1043,7 +1048,9 @@
+@@ -1043,7 +1048,9 @@ static int __init at91ether_setup(unsign
        } else if (machine_is_csb337()) {
                /* mix link activity status into LED2 link state */
                write_phy(phy_address, MII_LEDCTRL_REG, 0x0d22);
        disable_mdi();
        spin_unlock_irq(&lp->lock);
  
-@@ -1058,12 +1065,12 @@
+@@ -1058,12 +1065,12 @@ static int __init at91ether_setup(unsign
        lp->phy_address = phy_address;  /* MDI address of PHY */
  
        /* Register the network interface */
        }
  
        /* Determine current link speed */
-@@ -1101,6 +1108,8 @@
+@@ -1101,6 +1108,8 @@ static int __init at91ether_setup(unsign
                printk(KERN_INFO "%s: National Semiconductor DP83848 PHY\n", dev->name);
        else if (phy_type == MII_AC101L_ID)
                printk(KERN_INFO "%s: Altima AC101L PHY\n", dev->name);
        else if (phy_type == MII_KS8721_ID)
                printk(KERN_INFO "%s: Micrel KS8721 PHY\n", dev->name);
        else if (phy_type == MII_T78Q21x3_ID)
-@@ -1146,6 +1155,7 @@
+@@ -1146,6 +1155,7 @@ static int __init at91ether_probe(struct
                        case MII_DP83847_ID:            /* National Semiconductor DP83847:  */
                        case MII_DP83848_ID:            /* National Semiconductor DP83848:  */
                        case MII_AC101L_ID:             /* Altima AC101L: PHY_ID1 = 0x22, PHY_ID2 = 0x5520 */
                        case MII_KS8721_ID:             /* Micrel KS8721: PHY_ID1 = 0x22, PHY_ID2 = 0x1610 */
                        case MII_T78Q21x3_ID:           /* Teridian 78Q21x3: PHY_ID1 = 0x0E, PHY_ID2 = 7237 */
                        case MII_LAN83C185_ID:          /* SMSC LAN83C185: PHY_ID1 = 0x0007, PHY_ID2 = 0xC0A1 */
-@@ -1246,3 +1256,4 @@
+@@ -1246,3 +1256,4 @@ module_exit(at91ether_exit)
  MODULE_LICENSE("GPL");
  MODULE_DESCRIPTION("AT91RM9200 EMAC Ethernet driver");
  MODULE_AUTHOR("Andrew Victor");
  /* Micrel KS8721 PHY */
  #define MII_KS8721_ID         0x00221610
  
-@@ -84,7 +87,6 @@
+@@ -84,7 +87,6 @@ struct recv_desc_bufs
  
  struct at91_private
  {
 +#endif
 --- a/drivers/rtc/Kconfig
 +++ b/drivers/rtc/Kconfig
-@@ -487,12 +487,12 @@
+@@ -487,12 +487,12 @@ config RTC_DRV_AT91RM9200
          this is powered by the backup power supply.
  
  config RTC_DRV_AT91SAM9
  
  #include <asm/arch/at91_rtc.h>
  
-@@ -307,12 +304,6 @@
+@@ -307,12 +304,6 @@ static int __init at91_rtc_probe(struct 
                return ret;
        }
  
  #include <asm/arch/at91_rtt.h>
  
  
-@@ -150,6 +151,9 @@
+@@ -150,6 +151,9 @@ static int at91_rtc_settime(struct devic
        return 0;
  }
  
  static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
  {
        struct sam9_rtc *rtc = dev_get_drvdata(dev);
-@@ -176,6 +180,9 @@
+@@ -176,6 +180,9 @@ static int at91_rtc_readalarm(struct dev
        return 0;
  }
  
  static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
  {
        struct sam9_rtc *rtc = dev_get_drvdata(dev);
-@@ -321,10 +328,6 @@
+@@ -321,10 +328,6 @@ static int __init at91_rtc_probe(struct 
        if (!rtc)
                return -ENOMEM;
  
        rtc->rtt += r->start;
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -113,6 +113,15 @@
+@@ -113,6 +113,15 @@ config SPI_GPIO
  
          If unsure, say N.
  
        depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
 --- a/drivers/spi/Makefile
 +++ b/drivers/spi/Makefile
-@@ -29,6 +29,7 @@
+@@ -29,6 +29,7 @@ obj-$(CONFIG_SPI_S3C24XX)            += spi_s3c24x
  obj-$(CONFIG_SPI_TXX9)                        += spi_txx9.o
  obj-$(CONFIG_SPI_XILINX)              += xilinx_spi.o
  obj-$(CONFIG_SPI_SH_SCI)              += spi_sh_sci.o
 +MODULE_ALIAS("platform:at91_spi");
 --- a/drivers/usb/gadget/Kconfig
 +++ b/drivers/usb/gadget/Kconfig
-@@ -118,10 +118,10 @@
+@@ -118,10 +118,10 @@ config USB_AMD5536UDC
  config USB_GADGET_ATMEL_USBA
        boolean "Atmel USBA"
        select USB_GADGET_DUALSPEED
        tristate
 --- a/drivers/usb/gadget/at91_udc.c
 +++ b/drivers/usb/gadget/at91_udc.c
-@@ -1827,7 +1827,7 @@
+@@ -1827,7 +1827,7 @@ static int at91udc_suspend(struct platfo
         */
        if ((!udc->suspended && udc->addr)
                        || !wake
  
  #ifdef CONFIG_USB_GADGET_DEBUG_FS
  #include <linux/debugfs.h>
-@@ -324,53 +326,6 @@
+@@ -324,53 +326,6 @@ static int vbus_is_present(struct usba_u
        return 1;
  }
  
  static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
  {
        unsigned int transaction_len;
-@@ -387,7 +342,7 @@
+@@ -387,7 +342,7 @@ static void next_fifo_transaction(struct
                ep->ep.name, req, transaction_len,
                req->last_transaction ? ", done" : "");
  
        usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
        req->req.actual += transaction_len;
  }
-@@ -476,7 +431,7 @@
+@@ -476,7 +431,7 @@ static void receive_data(struct usba_ep 
                        bytecount = req->req.length - req->req.actual;
                }
  
                                ep->fifo, bytecount);
                req->req.actual += bytecount;
  
-@@ -1029,33 +984,6 @@
+@@ -1029,33 +984,6 @@ static const struct usb_gadget_ops usba_
        .set_selfpowered        = usba_udc_set_selfpowered,
  };
  
  static struct usb_endpoint_descriptor usba_ep0_desc = {
        .bLength = USB_DT_ENDPOINT_SIZE,
        .bDescriptorType = USB_DT_ENDPOINT,
-@@ -1074,7 +1002,6 @@
+@@ -1074,7 +1002,6 @@ static void nop_release(struct device *d
  static struct usba_udc the_udc = {
        .gadget = {
                .ops            = &usba_udc_ops,
                .ep_list        = LIST_HEAD_INIT(the_udc.gadget.ep_list),
                .is_dualspeed   = 1,
                .name           = "atmel_usba_udc",
-@@ -1231,7 +1158,7 @@
+@@ -1231,7 +1158,7 @@ static int do_test_mode(struct usba_udc 
                } else {
                        usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
                        usba_writel(udc, TST, USBA_TST_PKT_MODE);
                                        sizeof(test_packet_buffer));
                        usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
                        dev_info(dev, "Entering Test_Packet mode...\n");
-@@ -1530,13 +1457,13 @@
+@@ -1530,13 +1457,13 @@ restart:
                DBG(DBG_HW, "Packet length: %u\n", pkt_len);
                if (pkt_len != sizeof(crq)) {
                        pr_warning("udc: Invalid packet length %u "
  
                /* Free up one bank in the FIFO so that we can
                 * generate or receive a reply right away. */
-@@ -1908,7 +1835,7 @@
+@@ -1908,7 +1835,7 @@ static int __init usba_udc_probe(struct 
  
        regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
        fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
                return -ENXIO;
  
        irq = platform_get_irq(pdev, 0);
-@@ -1956,16 +1883,44 @@
+@@ -1956,16 +1883,44 @@ static int __init usba_udc_probe(struct 
        usba_writel(udc, CTRL, 0);
        clk_disable(pclk);
  
  
                list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
        }
-@@ -1984,7 +1939,7 @@
+@@ -1984,7 +1939,7 @@ static int __init usba_udc_probe(struct 
                goto err_device_add;
        }
  
                if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
                        udc->vbus_pin = pdata->vbus_pin;
  
-@@ -2004,7 +1959,7 @@
+@@ -2004,7 +1959,7 @@ static int __init usba_udc_probe(struct 
        }
  
        usba_init_debugfs(udc);
                usba_ep_init_debugfs(udc, &usba_ep[i]);
  
        return 0;
-@@ -2012,6 +1967,8 @@
+@@ -2012,6 +1967,8 @@ static int __init usba_udc_probe(struct 
  err_device_add:
        free_irq(irq, udc);
  err_request_irq:
        iounmap(udc->fifo);
  err_map_fifo:
        iounmap(udc->regs);
-@@ -2029,10 +1986,11 @@
+@@ -2029,10 +1986,11 @@ static int __exit usba_udc_remove(struct
  {
        struct usba_udc *udc;
        int i;
  
 --- a/drivers/usb/host/ohci-at91.c
 +++ b/drivers/usb/host/ohci-at91.c
-@@ -330,7 +330,7 @@
+@@ -330,7 +330,7 @@ ohci_hcd_at91_drv_suspend(struct platfor
         *
         * REVISIT: some boards will be able to turn VBUS off...
         */
        }
 --- a/drivers/video/Kconfig
 +++ b/drivers/video/Kconfig
-@@ -889,6 +889,17 @@
+@@ -889,6 +889,17 @@ config FB_EPSON1355
          framebuffer.  Product specs at
          <http://www.erd.epson.com/vdc/html/products.htm>.
  
        depends on FB
 --- a/drivers/video/Makefile
 +++ b/drivers/video/Makefile
-@@ -87,7 +87,8 @@
+@@ -87,7 +87,8 @@ obj-$(CONFIG_FB_G364)             += g36
  obj-$(CONFIG_FB_SA1100)           += sa1100fb.o
  obj-$(CONFIG_FB_HIT)              += hitfb.o
  obj-$(CONFIG_FB_EPSON1355)      += epson1355fb.o
  #define ATMEL_LCDC_FIFO_SIZE          2048
  #else
  #define ATMEL_LCDC_FIFO_SIZE          512
-@@ -903,11 +903,45 @@
+@@ -903,11 +903,45 @@ static int __exit atmel_lcdfb_remove(str
        return 0;
  }
  
                .owner  = THIS_MODULE,
 --- a/drivers/video/backlight/Kconfig
 +++ b/drivers/video/backlight/Kconfig
-@@ -112,3 +112,11 @@
+@@ -112,3 +112,11 @@ config BACKLIGHT_CARILLO_RANCH
        help
          If you have a Intel LE80578 (Carillo Ranch) say Y to enable the
          backlight driver.
 +        backlight driver.
 --- a/drivers/video/backlight/Makefile
 +++ b/drivers/video/backlight/Makefile
-@@ -10,3 +10,4 @@
+@@ -10,3 +10,4 @@ obj-$(CONFIG_BACKLIGHT_LOCOMO)       += locomo
  obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
  obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
  obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
 +MODULE_LICENSE("GPL");
 --- a/drivers/watchdog/Kconfig
 +++ b/drivers/watchdog/Kconfig
-@@ -66,6 +66,14 @@
+@@ -66,6 +66,14 @@ config AT91RM9200_WATCHDOG
          Watchdog timer embedded into AT91RM9200 chips. This will reboot your
          system when the timeout is reached.
  
        depends on FOOTBRIDGE
 --- a/drivers/watchdog/Makefile
 +++ b/drivers/watchdog/Makefile
-@@ -26,6 +26,7 @@
+@@ -26,6 +26,7 @@ obj-$(CONFIG_USBPCWATCHDOG) += pcwd_usb.
  
  # ARM Architecture
  obj-$(CONFIG_AT91RM9200_WATCHDOG) += at91rm9200_wdt.o
  
   /* USB Device */
  struct at91_udc_data {
-@@ -45,6 +46,9 @@
+@@ -45,6 +46,9 @@ struct at91_udc_data {
  };
  extern void __init at91_add_device_udc(struct at91_udc_data *data);
  
   /* Compact Flash */
  struct at91_cf_data {
        u8      irq_pin;                /* I/O IRQ */
-@@ -158,6 +162,9 @@
+@@ -158,6 +162,9 @@ extern void __init at91_add_device_ac97(
   /* ISI */
  extern void __init at91_add_device_isi(void);
  
  extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);
 --- a/include/asm-arm/arch-at91/cpu.h
 +++ b/include/asm-arm/arch-at91/cpu.h
-@@ -48,6 +48,17 @@
+@@ -48,6 +48,17 @@ static inline unsigned long at91_arch_id
        return (at91_sys_read(AT91_DBGU_CIDR) & AT91_CIDR_ARCH);
  }
  
  
  #ifdef CONFIG_ARCH_AT91RM9200
  #define cpu_is_at91rm9200()   (at91_cpu_identify() == ARCH_ID_AT91RM9200)
-@@ -83,8 +94,12 @@
+@@ -83,8 +94,12 @@ static inline unsigned long at91_arch_id
  
  #ifdef CONFIG_ARCH_AT91CAP9
  #define cpu_is_at91cap9()     (at91_cpu_identify() == ARCH_ID_AT91CAP9)
  #elif defined(CONFIG_ARCH_AT91SAM9RL)
 --- a/include/asm-arm/arch-ks8695/devices.h
 +++ b/include/asm-arm/arch-ks8695/devices.h
-@@ -18,6 +18,11 @@
+@@ -18,6 +18,11 @@ extern void __init ks8695_add_device_wan
  extern void __init ks8695_add_device_lan(void);
  extern void __init ks8695_add_device_hpna(void);
  
  #define KS8695_MODE_MINIPCI   1
 --- a/include/linux/clk.h
 +++ b/include/linux/clk.h
-@@ -121,4 +121,24 @@
+@@ -121,4 +121,24 @@ int clk_set_parent(struct clk *clk, stru
   */
  struct clk *clk_get_parent(struct clk *clk);
  
 +
 --- a/include/video/atmel_lcdc.h
 +++ b/include/video/atmel_lcdc.h
-@@ -39,6 +39,7 @@
+@@ -39,6 +39,7 @@ struct atmel_lcdfb_info {
        u8                      bl_power;
  #endif
        bool                    lcdcon_is_backlight;
  static struct clk *pck1_clk;
  static struct clk *pllb_clk;
  
-@@ -276,7 +268,6 @@
+@@ -276,7 +268,6 @@ static struct platform_device *eti_b1_sn
  static int __init eti_b1_init(void)
  {
        int ret;
        struct at91_ssc_periph *ssc = eti_b1_dai.cpu_dai->private_data;
  
        if (!request_mem_region(AT91RM9200_BASE_SSC1, SZ_16K, "soc-audio")) {
-@@ -310,19 +301,12 @@
+@@ -310,19 +301,12 @@ static int __init eti_b1_init(void)
                goto fail_io_unmap;
        }
  
         * Set PCK1 parent to PLLB and its rate to 12 Mhz.
 --- a/sound/spi/at73c213.c
 +++ b/sound/spi/at73c213.c
-@@ -114,7 +114,11 @@
+@@ -114,7 +114,11 @@ snd_at73c213_write_reg(struct snd_at73c2
  static struct snd_pcm_hardware snd_at73c213_playback_hw = {
        .info           = SNDRV_PCM_INFO_INTERLEAVED |
                          SNDRV_PCM_INFO_BLOCK_TRANSFER,
index ee23cc8..76e3698 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-at91/Kconfig
 +++ b/arch/arm/mach-at91/Kconfig
-@@ -151,6 +151,12 @@
+@@ -151,6 +151,12 @@ config MACH_TT9200
        help
          Select this if you are using Toptech's TT9200 board.
  
@@ -15,7 +15,7 @@
  # ----------------------------------------------------------
 --- a/arch/arm/mach-at91/Makefile
 +++ b/arch/arm/mach-at91/Makefile
-@@ -29,6 +29,7 @@
+@@ -29,6 +29,7 @@ obj-$(CONFIG_MACH_KB9200)    += board-kb920
  obj-$(CONFIG_MACH_ATEB9200)   += board-eb9200.o
  obj-$(CONFIG_MACH_KAFA)               += board-kafa.o
  obj-$(CONFIG_MACH_CHUB)               += board-chub.o
index 20e1fe7..595720d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-at91/at91rm9200_devices.c
 +++ b/arch/arm/mach-at91/at91rm9200_devices.c
-@@ -717,6 +717,26 @@
+@@ -717,6 +717,26 @@ static void __init at91_add_device_watch
  static void __init at91_add_device_watchdog(void) {}
  #endif
  
@@ -29,7 +29,7 @@
   *  SSC -- Synchronous Serial Controller
 --- a/arch/arm/mach-at91/Makefile
 +++ b/arch/arm/mach-at91/Makefile
-@@ -60,7 +60,12 @@
+@@ -60,7 +60,12 @@ obj-$(CONFIG_MACH_AT91CAP9ADK)      += board-
  obj-$(CONFIG_MACH_AT91EB01)   += board-eb01.o
  
  # Drivers
 +__initcall(leds_init);
 --- a/include/asm-arm/arch-at91/board.h
 +++ b/include/asm-arm/arch-at91/board.h
-@@ -162,6 +162,11 @@
+@@ -162,6 +162,11 @@ extern void __init at91_add_device_ac97(
   /* ISI */
  extern void __init at91_add_device_isi(void);
  
index f27b361..3968c6b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-at91/board-vlink.c
 +++ b/arch/arm/mach-at91/board-vlink.c
-@@ -99,7 +99,7 @@
+@@ -99,7 +99,7 @@ static struct at91_udc_data __initdata v
  */
  
  static struct at91_mmc_data __initdata vlink_mmc_data = {
@@ -9,7 +9,7 @@
        .slot_b         = 0,
        .wire4          = 1,
  //    .wp_pin         = AT91_PIN_PA17,
-@@ -136,6 +136,7 @@
+@@ -136,6 +136,7 @@ static struct spi_board_info vlink_spi_d
  
  static void __init vlink_board_init(void)
  {
@@ -17,7 +17,7 @@
        /* Serial */
        at91_add_device_serial();
        /* Ethernet */
-@@ -157,36 +158,66 @@
+@@ -157,36 +158,66 @@ static void __init vlink_board_init(void
  //    at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
        at91_add_device_mmc(0, &vlink_mmc_data);
  #endif
  
  
  static inline void __iomem *pin_to_controller(unsigned pin)
-@@ -71,9 +72,13 @@
+@@ -71,9 +72,13 @@ int __init_or_module at91_set_GPIO_perip
  {
        void __iomem    *pio = pin_to_controller(pin);
        unsigned        mask = pin_to_mask(pin);
        __raw_writel(mask, pio + PIO_IDR);
        __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
        __raw_writel(mask, pio + PIO_PER);
-@@ -130,10 +135,13 @@
+@@ -130,10 +135,13 @@ int __init_or_module at91_set_gpio_input
  {
        void __iomem    *pio = pin_to_controller(pin);
        unsigned        mask = pin_to_mask(pin);
        __raw_writel(mask, pio + PIO_IDR);
        __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
        __raw_writel(mask, pio + PIO_ODR);
-@@ -151,10 +159,13 @@
+@@ -151,10 +159,13 @@ int __init_or_module at91_set_gpio_outpu
  {
        void __iomem    *pio = pin_to_controller(pin);
        unsigned        mask = pin_to_mask(pin);
        __raw_writel(mask, pio + PIO_IDR);
        __raw_writel(mask, pio + PIO_PUDR);
        __raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR));
-@@ -262,6 +273,18 @@
+@@ -262,6 +273,18 @@ int at91_get_gpio_value(unsigned pin)
  }
  EXPORT_SYMBOL(at91_get_gpio_value);
  
  #ifdef CONFIG_PM
 --- a/drivers/char/Kconfig
 +++ b/drivers/char/Kconfig
-@@ -1072,5 +1072,12 @@
+@@ -1072,5 +1072,12 @@ config AT91_SPIDEV
          The SPI driver gives user mode access to this serial
          bus on the AT91RM9200 processor.
  
  
 --- a/drivers/char/Makefile
 +++ b/drivers/char/Makefile
-@@ -100,6 +100,7 @@
+@@ -100,6 +100,7 @@ obj-$(CONFIG_GPIO_TB0219)  += tb0219.o
  obj-$(CONFIG_TELCLOCK)                += tlclk.o
  obj-$(CONFIG_AT91_SPI)                += at91_spi.o
  obj-$(CONFIG_AT91_SPIDEV)     += at91_spidev.o
 +MODULE_DESCRIPTION("FDL Versalink GPIO Driver");
 --- a/include/asm-arm/arch-at91/gpio.h
 +++ b/include/asm-arm/arch-at91/gpio.h
-@@ -199,6 +199,7 @@
+@@ -199,6 +199,7 @@ extern int __init_or_module at91_set_mul
  /* callable at any time */
  extern int at91_set_gpio_value(unsigned pin, int value);
  extern int at91_get_gpio_value(unsigned pin);
index 8060259..503c892 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/at91_dataflash.c
 +++ b/drivers/mtd/devices/at91_dataflash.c
-@@ -175,7 +175,7 @@
+@@ -175,7 +175,7 @@ static struct mtd_partition static_parti
  };
  #endif
  
@@ -11,7 +11,7 @@
  
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
-@@ -168,6 +168,12 @@
+@@ -168,6 +168,12 @@ config MTD_OF_PARTS
          the partition map from the children of the flash node,
          as described in Documentation/powerpc/booting-without-of.txt.
  
@@ -26,7 +26,7 @@
  config MTD_CHAR
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -12,6 +12,7 @@
+@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_REDBOOT_PARTS) += redbo
  obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
  obj-$(CONFIG_MTD_AFS_PARTS)   += afs.o
  obj-$(CONFIG_MTD_OF_PARTS)      += ofpart.o
index 3319901..cf11ac0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/serial/atmel_serial.c
 +++ b/drivers/serial/atmel_serial.c
-@@ -214,6 +214,34 @@
+@@ -214,6 +214,34 @@ static void atmel_set_mctrl(struct uart_
                                at91_set_gpio_value(AT91_PIN_PA21, 0);
                        else
                                at91_set_gpio_value(AT91_PIN_PA21, 1);
@@ -35,7 +35,7 @@
                }
        }
  #endif
-@@ -251,8 +279,10 @@
+@@ -251,8 +279,10 @@ static u_int atmel_get_mctrl(struct uart
        /*
         * The control signals are active low.
         */
@@ -48,7 +48,7 @@
        if (!(status & ATMEL_US_CTS))
                ret |= TIOCM_CTS;
        if (!(status & ATMEL_US_DSR))
-@@ -260,6 +290,16 @@
+@@ -260,6 +290,16 @@ static u_int atmel_get_mctrl(struct uart
        if (!(status & ATMEL_US_RI))
                ret |= TIOCM_RI;
  
@@ -65,7 +65,7 @@
        return ret;
  }
  
-@@ -453,6 +493,34 @@
+@@ -453,6 +493,34 @@ static void atmel_tx_chars(struct uart_p
  }
  
  /*
   * receive interrupt handler.
   */
  static void
-@@ -815,6 +883,23 @@
+@@ -815,6 +883,23 @@ static int atmel_startup(struct uart_por
                return retval;
        }
  
        /*
         * Initialize DMA (if necessary)
         */
-@@ -834,6 +919,10 @@
+@@ -834,6 +919,10 @@ static int atmel_startup(struct uart_por
                                        kfree(atmel_port->pdc_rx[0].buf);
                                }
                                free_irq(port->irq, port);
                                return -ENOMEM;
                        }
                        pdc->dma_addr = dma_map_single(port->dev,
-@@ -873,7 +962,11 @@
+@@ -873,7 +962,11 @@ static int atmel_startup(struct uart_por
                retval = atmel_open_hook(port);
                if (retval) {
                        free_irq(port->irq, port);
                }
        }
  
-@@ -947,6 +1040,10 @@
+@@ -947,6 +1040,10 @@ static void atmel_shutdown(struct uart_p
         * Free the interrupt
         */
        free_irq(port->irq, port);
index 45d6783..d300231 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-at91/at91rm9200_devices.c
 +++ b/arch/arm/mach-at91/at91rm9200_devices.c
-@@ -1001,7 +1001,15 @@
+@@ -1001,7 +1001,15 @@ static inline void configure_usart0_pins
                 *  We need to drive the pin manually.  Default is off (RTS is active low).
                 */
                at91_set_gpio_output(AT91_PIN_PA21, 1);
@@ -17,7 +17,7 @@
  }
  
  static struct resource uart1_resources[] = {
-@@ -1139,6 +1147,14 @@
+@@ -1139,6 +1147,14 @@ static inline void configure_usart3_pins
                at91_set_B_periph(AT91_PIN_PB1, 0);     /* CTS3 */
        if (pins & ATMEL_UART_RTS)
                at91_set_B_periph(AT91_PIN_PB0, 0);     /* RTS3 */
index a848512..756e014 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/arm/at91_ether.c
 +++ b/drivers/net/arm/at91_ether.c
-@@ -146,6 +146,7 @@
+@@ -146,6 +146,7 @@ static void update_linkspeed(struct net_
        struct at91_private *lp = netdev_priv(dev);
        unsigned int bmsr, bmcr, lpa, mac_cfg;
        unsigned int speed, duplex;
@@ -8,7 +8,7 @@
  
        if (!mii_link_ok(&lp->mii)) {           /* no link */
                netif_carrier_off(dev);
-@@ -158,8 +159,15 @@
+@@ -158,8 +159,15 @@ static void update_linkspeed(struct net_
        read_phy(lp->phy_address, MII_BMSR, &bmsr);
        read_phy(lp->phy_address, MII_BMCR, &bmcr);
        if (bmcr & BMCR_ANENABLE) {                             /* AutoNegotiation is enabled */
index 4912074..554c149 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/at91_dataflash.c
 +++ b/drivers/mtd/devices/at91_dataflash.c
-@@ -163,12 +163,12 @@
+@@ -163,12 +163,12 @@ static struct mtd_partition static_parti
                .mask_flags     = MTD_WRITEABLE,        /* read-only */
        },
        {
index d698763..7bd38b4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/usb/serial/usb-serial.c
 +++ b/drivers/usb/serial/usb-serial.c
-@@ -904,7 +904,7 @@
+@@ -904,7 +904,7 @@ int usb_serial_probe(struct usb_interfac
                        dev_err(&interface->dev, "No free urbs available\n");
                        goto probe_error;
                }
index 4db3a39..a022d5f 100644 (file)
@@ -11,7 +11,7 @@ BOARD:=au1000
 BOARDNAME:=RMI/AMD AU1x00
 FEATURES:=jffs2 usb pci
 
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
 
 include $(INCLUDE_DIR)/target.mk
 DEFAULT_PACKAGES += yamonenv
index bac9463..b3aa063 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu>
 
 --- a/arch/mips/au1000/Kconfig
 +++ b/arch/mips/au1000/Kconfig
-@@ -135,3 +135,4 @@
+@@ -135,3 +135,4 @@ config SOC_AU1X00
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_APM_EMULATION
        select SYS_SUPPORTS_KGDB
index a3aa7ad..e38b83f 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu>
  static struct resource mtx1_wdt_res[] = {
        [0] = {
                .start = 15,
-@@ -62,11 +85,13 @@
+@@ -62,11 +85,13 @@ static struct platform_device mtx1_gpio_
  
  static struct platform_device *mtx1_devs[] = {
        &mtx1_gpio_leds,
index 8ba5f00..e3771d7 100644 (file)
@@ -10,7 +10,7 @@
   * ########################################################################
   *
   *  This program is free software; you can distribute it and/or modify it
-@@ -835,6 +838,10 @@
+@@ -835,6 +838,10 @@ static int au1000_init(struct net_device
  
        control = MAC_RX_ENABLE | MAC_TX_ENABLE;
  #ifndef CONFIG_CPU_LITTLE_ENDIAN
index ee8b541..a41ee6f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/au1000/mtx-1/init.c
 +++ b/arch/mips/au1000/mtx-1/init.c
-@@ -54,7 +54,7 @@
+@@ -54,7 +54,7 @@ void __init prom_init(void)
        prom_argv = (char **) fw_arg1;
        prom_envp = (char **) fw_arg2;
  
index 414aa39..e7bcba6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/maps/mtx-1_flash.c
 +++ b/drivers/mtd/maps/mtx-1_flash.c
-@@ -28,7 +28,7 @@
+@@ -28,7 +28,7 @@ static struct map_info mtx1_map = {
  
  static struct mtd_partition mtx1_partitions[] = {
          {
index ed308f8..9358981 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/au1000_eth.c
 +++ b/drivers/net/au1000_eth.c
-@@ -1306,9 +1306,12 @@
+@@ -1306,9 +1306,12 @@ static void set_rx_mode(struct net_devic
        }
  }
  
index 4ad718b..a5b00a8 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/asm-mips/mach-au1x00/au1000.h
 +++ b/include/asm-mips/mach-au1x00/au1000.h
-@@ -623,6 +623,7 @@
+@@ -623,6 +623,7 @@ enum soc_au1500_ints {
        AU1000_RTC_MATCH1_INT,
        AU1000_RTC_MATCH2_INT,
        AU1500_PCI_ERR_INT,
index 982d10a..5ae819e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/au1000/common/gpio.c
 +++ b/arch/mips/au1000/common/gpio.c
-@@ -66,7 +66,8 @@
+@@ -66,7 +66,8 @@ static int au1xxx_gpio2_direction_input(
  static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
  {
        gpio -= AU1XXX_GPIO_BASE;
@@ -10,7 +10,7 @@
        return 0;
  }
  
-@@ -95,6 +96,7 @@
+@@ -95,6 +96,7 @@ static int au1xxx_gpio1_direction_input(
  static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
  {
        gpio1->trioutclr = (0x01 & gpio);
index 6d24ecf..7d1b841 100644 (file)
@@ -10,7 +10,7 @@ ARCH:=avr32
 BOARD:=avr32
 BOARDNAME:=Atmel AVR32
 FEATURES:=squashfs
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
 
 include $(INCLUDE_DIR)/target.mk
 
index 2f6291a..6c9fe1e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Documentation/serial/driver
 +++ b/Documentation/serial/driver
-@@ -186,6 +186,17 @@
+@@ -186,6 +186,17 @@ hardware.
        Locking: port_sem taken.
        Interrupts: caller dependent.
  
@@ -20,7 +20,7 @@
        bits.  Update read_status_mask and ignore_status_mask to indicate
 --- a/arch/avr32/Kconfig
 +++ b/arch/avr32/Kconfig
-@@ -47,6 +47,9 @@
+@@ -47,6 +47,9 @@ config RWSEM_GENERIC_SPINLOCK
  config GENERIC_TIME
        def_bool y
  
@@ -30,7 +30,7 @@
  config RWSEM_XCHGADD_ALGORITHM
        def_bool n
  
-@@ -70,6 +73,8 @@
+@@ -70,6 +73,8 @@ source "init/Kconfig"
  
  menu "System Type and features"
  
@@ -39,7 +39,7 @@
  config SUBARCH_AVR32B
        bool
  config MMU
-@@ -83,6 +88,7 @@
+@@ -83,6 +88,7 @@ config PLATFORM_AT32AP
        select MMU
        select PERFORMANCE_COUNTERS
        select HAVE_GPIO_LIB
@@ -47,7 +47,7 @@
  
  #
  # CPU types
-@@ -117,6 +123,9 @@
+@@ -117,6 +123,9 @@ endchoice
  if BOARD_ATSTK1000
  source "arch/avr32/boards/atstk1000/Kconfig"
  endif
@@ -57,7 +57,7 @@
  
  choice
        prompt "Boot loader type"
-@@ -142,6 +151,9 @@
+@@ -142,6 +151,9 @@ config PHYS_OFFSET
  
  source "kernel/Kconfig.preempt"
  
@@ -67,7 +67,7 @@
  config HAVE_ARCH_BOOTMEM_NODE
        def_bool n
  
-@@ -180,6 +192,10 @@
+@@ -180,6 +192,10 @@ config NMI_DEBUGGING
          be dumped to the console when a Non-Maskable Interrupt
          happens.
  
@@ -78,7 +78,7 @@
  # FPU emulation goes here
  
  source "kernel/Kconfig.hz"
-@@ -196,6 +212,11 @@
+@@ -196,6 +212,11 @@ endmenu
  
  menu "Power management options"
  
@@ -92,7 +92,7 @@
  source "drivers/cpufreq/Kconfig"
 --- a/arch/avr32/Makefile
 +++ b/arch/avr32/Makefile
-@@ -32,6 +32,7 @@
+@@ -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/
  /* Initialized by bootloader-specific startup code. */
  struct tag *bootloader_tags __initdata;
  
-@@ -37,11 +44,16 @@
+@@ -37,11 +44,16 @@ static struct eth_platform_data __initda
  static struct spi_board_info spi0_board_info[] __initdata = {
        {
                .modalias       = "mtd_dataflash",
  /*
   * The next two functions should go away as the boot loader is
   * supposed to initialize the macb address registers with a valid
-@@ -124,6 +136,7 @@
+@@ -124,6 +136,7 @@ static struct platform_device ngw_gpio_l
        }
  };
  
  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 @@
+@@ -139,6 +152,7 @@ static struct platform_device i2c_gpio_d
                .platform_data  = &i2c_gpio_data,
        },
  };
  
  static int __init atngw100_init(void)
  {
-@@ -157,6 +171,7 @@
+@@ -157,6 +171,7 @@ static int __init atngw100_init(void)
        set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
  
        at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
        at32_add_device_usba(0, NULL);
  
        for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
-@@ -165,11 +180,15 @@
+@@ -165,11 +180,15 @@ static int __init atngw100_init(void)
        }
        platform_device_register(&ngw_gpio_leds);
  
  }
 --- a/arch/avr32/boards/atstk1000/Kconfig
 +++ b/arch/avr32/boards/atstk1000/Kconfig
-@@ -18,6 +18,10 @@
+@@ -18,6 +18,10 @@ config BOARD_ATSTK1004
        bool "ATSTK1004"
        select CPU_AT32AP7002
  
  endchoice
  
  
-@@ -102,4 +106,60 @@
+@@ -102,4 +106,60 @@ config BOARD_ATSTK1000_EXTDAC
        depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM
        default y
  
  endif # stk 1000
 --- a/arch/avr32/boards/atstk1000/Makefile
 +++ b/arch/avr32/boards/atstk1000/Makefile
-@@ -2,3 +2,4 @@
+@@ -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
  
  struct eth_addr {
        u8 addr[6];
-@@ -83,6 +157,19 @@
+@@ -83,6 +157,19 @@ static struct spi_board_info spi1_board_
  } };
  #endif
  
  /*
   * 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 @@
+@@ -212,6 +299,12 @@ static int __init atstk1002_init(void)
  
        at32_add_system_devices();
  
  #ifdef        CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
        at32_add_device_usart(1);
  #else
-@@ -228,16 +321,30 @@
+@@ -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
  #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
  static struct at73c213_board_info at73c213_data = {
        .ssc_id         = 0,
-@@ -59,6 +66,19 @@
+@@ -59,6 +66,19 @@ static struct spi_board_info spi1_board_
  } };
  #endif
  
  #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
  static void __init atstk1003_setup_extdac(void)
  {
-@@ -147,12 +167,22 @@
+@@ -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
  #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
  static struct at73c213_board_info at73c213_data = {
        .ssc_id         = 0,
-@@ -130,14 +137,23 @@
+@@ -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
  #
  CONFIG_AVR32=y
  CONFIG_GENERIC_GPIO=y
-@@ -13,10 +13,10 @@
+@@ -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_HWEIGHT=y
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_GENERIC_BUG=y
-@@ -37,17 +37,15 @@
+@@ -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_BLK_DEV_INITRD=y
  CONFIG_INITRAMFS_SOURCE=""
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-@@ -61,11 +59,13 @@
+@@ -61,11 +59,13 @@ CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_EVENTFD=y
  CONFIG_SHMEM=y
  CONFIG_VM_EVENT_COUNTERS=y
-@@ -73,6 +73,14 @@
+@@ -73,6 +73,14 @@ CONFIG_SLUB_DEBUG=y
  # CONFIG_SLAB is not set
  CONFIG_SLUB=y
  # CONFIG_SLOB is not set
  CONFIG_SLABINFO=y
  CONFIG_RT_MUTEXES=y
  # CONFIG_TINY_SHMEM is not set
-@@ -101,10 +109,15 @@
+@@ -101,10 +109,15 @@ CONFIG_IOSCHED_CFQ=y
  CONFIG_DEFAULT_CFQ=y
  # CONFIG_DEFAULT_NOOP is not set
  CONFIG_DEFAULT_IOSCHED="cfq"
  CONFIG_SUBARCH_AVR32B=y
  CONFIG_MMU=y
  CONFIG_PERFORMANCE_COUNTERS=y
-@@ -113,6 +126,7 @@
+@@ -113,6 +126,7 @@ CONFIG_CPU_AT32AP700X=y
  CONFIG_CPU_AT32AP7000=y
  # CONFIG_BOARD_ATSTK1000 is not set
  CONFIG_BOARD_ATNGW100=y
  CONFIG_LOADER_U_BOOT=y
  
  #
-@@ -121,6 +135,7 @@
+@@ -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_LOAD_ADDRESS=0x10000000
  CONFIG_ENTRY_ADDRESS=0x90000000
  CONFIG_PHYS_OFFSET=0x10000000
-@@ -146,16 +161,26 @@
+@@ -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
  
  #
  # CPU Frequency scaling
-@@ -164,9 +189,9 @@
+@@ -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_CONSERVATIVE is not set
  CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
  # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-@@ -202,6 +227,7 @@
+@@ -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_NET_KEY=y
  # CONFIG_NET_KEY_MIGRATE is not set
  CONFIG_INET=y
-@@ -260,82 +286,33 @@
+@@ -260,82 +286,33 @@ CONFIG_IPV6_SIT=y
  # CONFIG_NETWORK_SECMARK is not set
  CONFIG_NETFILTER=y
  # CONFIG_NETFILTER_DEBUG is not set
  CONFIG_IP_NF_FILTER=m
  CONFIG_IP_NF_TARGET_REJECT=m
  CONFIG_IP_NF_TARGET_LOG=m
-@@ -343,54 +320,25 @@
+@@ -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_DCCP is not set
  # CONFIG_IP_SCTP is not set
  # CONFIG_TIPC is not set
-@@ -407,7 +355,6 @@
+@@ -407,7 +355,6 @@ CONFIG_LLC=m
  # CONFIG_ECONET is not set
  # CONFIG_WAN_ROUTER is not set
  # CONFIG_NET_SCHED is not set
  
  #
  # Network testing
-@@ -415,6 +362,7 @@
+@@ -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_IRDA is not set
  # CONFIG_BT is not set
  # CONFIG_AF_RXRPC is not set
-@@ -531,11 +479,18 @@
+@@ -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
  
  #
  # SCSI device support
-@@ -568,11 +523,13 @@
+@@ -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_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 @@
+@@ -599,7 +556,6 @@ CONFIG_PPPOE=m
  # 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
-@@ -633,6 +589,7 @@
+@@ -633,6 +589,7 @@ CONFIG_SLHC=m
  #
  CONFIG_SERIAL_ATMEL=y
  CONFIG_SERIAL_ATMEL_CONSOLE=y
  # CONFIG_SERIAL_ATMEL_TTYAT is not set
  CONFIG_SERIAL_CORE=y
  CONFIG_SERIAL_CORE_CONSOLE=y
-@@ -640,8 +597,6 @@
+@@ -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_R3964 is not set
  # CONFIG_RAW_DRIVER is not set
  # CONFIG_TCG_TPM is not set
-@@ -659,6 +614,7 @@
+@@ -659,6 +614,7 @@ CONFIG_I2C_ALGOBIT=m
  #
  # I2C Hardware Bus support
  #
  CONFIG_I2C_GPIO=m
  # CONFIG_I2C_OCORES is not set
  # CONFIG_I2C_PARPORT_LIGHT is not set
-@@ -669,13 +625,12 @@
+@@ -669,13 +625,12 @@ CONFIG_I2C_GPIO=m
  #
  # Miscellaneous I2C Chip support
  #
  # CONFIG_SENSORS_MAX6875 is not set
  # CONFIG_SENSORS_TSL2550 is not set
  # CONFIG_I2C_DEBUG_CORE is not set
-@@ -702,9 +657,27 @@
+@@ -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_WATCHDOG=y
  # CONFIG_WATCHDOG_NOWAYOUT is not set
  
-@@ -757,10 +730,6 @@
+@@ -757,10 +730,6 @@ CONFIG_USB_SUPPORT=y
  #
  # 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
-@@ -787,21 +756,24 @@
+@@ -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_NEW_LEDS=y
  CONFIG_LEDS_CLASS=y
  
-@@ -844,19 +816,22 @@
+@@ -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_M48T86 is not set
  # CONFIG_RTC_DRV_M48T59 is not set
  # CONFIG_RTC_DRV_V3020 is not set
-@@ -874,25 +849,23 @@
+@@ -874,25 +849,23 @@ CONFIG_RTC_DRV_AT32AP700X=y
  #
  # File systems
  #
  # CONFIG_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
  CONFIG_FUSE_FS=m
-@@ -923,7 +896,7 @@
+@@ -923,7 +896,7 @@ CONFIG_SYSFS=y
  CONFIG_TMPFS=y
  # CONFIG_TMPFS_POSIX_ACL is not set
  # CONFIG_HUGETLB_PAGE is not set
  
  #
  # Miscellaneous filesystems
-@@ -948,8 +921,10 @@
+@@ -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_SYSV_FS is not set
  # CONFIG_UFS_FS is not set
  CONFIG_NETWORK_FILESYSTEMS=y
-@@ -1030,11 +1005,6 @@
+@@ -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
  
  #
  # Kernel hacking
-@@ -1053,6 +1023,7 @@
+@@ -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_DEBUG_RT_MUTEXES is not set
  # CONFIG_RT_MUTEX_TESTER is not set
  # CONFIG_DEBUG_SPINLOCK is not set
-@@ -1069,9 +1040,10 @@
+@@ -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_LKDTM is not set
  # CONFIG_FAULT_INJECTION is not set
  # CONFIG_SAMPLES is not set
-@@ -1084,7 +1056,9 @@
+@@ -1084,7 +1056,9 @@ CONFIG_FRAME_POINTER=y
  # CONFIG_SECURITY_FILE_CAPABILITIES is not set
  CONFIG_CRYPTO=y
  CONFIG_CRYPTO_ALGAPI=y
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_MANAGER=y
  CONFIG_CRYPTO_HMAC=y
-@@ -1103,6 +1077,9 @@
+@@ -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_CRYPTD is not set
  CONFIG_CRYPTO_DES=y
  # CONFIG_CRYPTO_FCRYPT is not set
-@@ -1117,12 +1094,14 @@
+@@ -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_HW=y
  
  #
-@@ -1137,10 +1116,7 @@
+@@ -1137,10 +1116,7 @@ CONFIG_CRC7=m
  # CONFIG_LIBCRC32C is not set
  CONFIG_ZLIB_INFLATE=y
  CONFIG_ZLIB_DEFLATE=y
  #
  CONFIG_AVR32=y
  CONFIG_GENERIC_GPIO=y
-@@ -13,10 +13,10 @@
+@@ -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_HWEIGHT=y
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_GENERIC_BUG=y
-@@ -36,15 +36,15 @@
+@@ -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_BLK_DEV_INITRD=y
  CONFIG_INITRAMFS_SOURCE=""
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-@@ -58,11 +58,13 @@
+@@ -58,11 +58,13 @@ CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_EVENTFD=y
  CONFIG_SHMEM=y
  CONFIG_VM_EVENT_COUNTERS=y
-@@ -70,6 +72,14 @@
+@@ -70,6 +72,14 @@ CONFIG_SLUB_DEBUG=y
  # CONFIG_SLAB is not set
  CONFIG_SLUB=y
  # CONFIG_SLOB is not set
  CONFIG_SLABINFO=y
  CONFIG_RT_MUTEXES=y
  # CONFIG_TINY_SHMEM is not set
-@@ -98,10 +108,15 @@
+@@ -98,10 +108,15 @@ CONFIG_IOSCHED_CFQ=y
  CONFIG_DEFAULT_CFQ=y
  # CONFIG_DEFAULT_NOOP is not set
  CONFIG_DEFAULT_IOSCHED="cfq"
  CONFIG_SUBARCH_AVR32B=y
  CONFIG_MMU=y
  CONFIG_PERFORMANCE_COUNTERS=y
-@@ -113,12 +128,16 @@
+@@ -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_LOADER_U_BOOT=y
  
  #
-@@ -127,6 +146,7 @@
+@@ -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_LOAD_ADDRESS=0x10000000
  CONFIG_ENTRY_ADDRESS=0x90000000
  CONFIG_PHYS_OFFSET=0x10000000
-@@ -152,16 +172,26 @@
+@@ -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
  
  #
  # CPU Frequency scaling
-@@ -170,9 +200,9 @@
+@@ -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_CONSERVATIVE is not set
  CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
  # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-@@ -208,6 +238,7 @@
+@@ -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_NET_KEY=m
  # CONFIG_NET_KEY_MIGRATE is not set
  CONFIG_INET=y
-@@ -279,6 +310,7 @@
+@@ -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_IRDA is not set
  # CONFIG_BT is not set
  # CONFIG_AF_RXRPC is not set
-@@ -395,13 +427,18 @@
+@@ -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
  
  #
  # SCSI device support
-@@ -444,6 +481,7 @@
+@@ -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_PATA_AT32=m
  # CONFIG_PATA_PLATFORM is not set
  # CONFIG_MD is not set
-@@ -469,11 +507,13 @@
+@@ -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_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 @@
+@@ -500,7 +540,6 @@ CONFIG_PPP_BSDCOMP=m
  # 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
-@@ -568,6 +607,7 @@
+@@ -568,6 +607,7 @@ CONFIG_MOUSE_GPIO=m
  #
  CONFIG_SERIAL_ATMEL=y
  CONFIG_SERIAL_ATMEL_CONSOLE=y
  # CONFIG_SERIAL_ATMEL_TTYAT is not set
  CONFIG_SERIAL_CORE=y
  CONFIG_SERIAL_CORE_CONSOLE=y
-@@ -575,8 +615,6 @@
+@@ -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_R3964 is not set
  # CONFIG_RAW_DRIVER is not set
  # CONFIG_TCG_TPM is not set
-@@ -594,6 +632,7 @@
+@@ -594,6 +632,7 @@ CONFIG_I2C_ALGOBIT=m
  #
  # I2C Hardware Bus support
  #
  CONFIG_I2C_GPIO=m
  # CONFIG_I2C_OCORES is not set
  # CONFIG_I2C_PARPORT_LIGHT is not set
-@@ -604,13 +643,12 @@
+@@ -604,13 +643,12 @@ CONFIG_I2C_GPIO=m
  #
  # Miscellaneous I2C Chip support
  #
  # CONFIG_SENSORS_MAX6875 is not set
  # CONFIG_SENSORS_TSL2550 is not set
  # CONFIG_I2C_DEBUG_CORE is not set
-@@ -637,9 +675,27 @@
+@@ -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_WATCHDOG=y
  # CONFIG_WATCHDOG_NOWAYOUT is not set
  
-@@ -732,12 +788,18 @@
+@@ -732,12 +788,18 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
  #
  # Generic devices
  #
  # SPI devices
  #
  CONFIG_SND_AT73C213=m
-@@ -753,9 +815,14 @@
+@@ -753,9 +815,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000
  #
  
  #
  # CONFIG_HID_SUPPORT is not set
  CONFIG_USB_SUPPORT=y
  # CONFIG_USB_ARCH_HAS_HCD is not set
-@@ -765,10 +832,6 @@
+@@ -765,10 +832,6 @@ CONFIG_USB_SUPPORT=y
  #
  # 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
-@@ -796,27 +859,31 @@
+@@ -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_LEDS_GPIO=m
  
  #
-@@ -853,19 +920,22 @@
+@@ -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_M48T86 is not set
  # CONFIG_RTC_DRV_M48T59 is not set
  # CONFIG_RTC_DRV_V3020 is not set
-@@ -883,13 +953,13 @@
+@@ -883,13 +953,13 @@ CONFIG_RTC_DRV_AT32AP700X=y
  #
  # File systems
  #
  # CONFIG_JBD_DEBUG is not set
  # CONFIG_REISERFS_FS is not set
  # CONFIG_JFS_FS is not set
-@@ -897,12 +967,10 @@
+@@ -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_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
  CONFIG_FUSE_FS=m
-@@ -933,7 +1001,7 @@
+@@ -933,7 +1001,7 @@ CONFIG_SYSFS=y
  CONFIG_TMPFS=y
  # CONFIG_TMPFS_POSIX_ACL is not set
  # CONFIG_HUGETLB_PAGE is not set
  
  #
  # Miscellaneous filesystems
-@@ -957,8 +1025,10 @@
+@@ -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_SYSV_FS is not set
  # CONFIG_UFS_FS is not set
  CONFIG_NETWORK_FILESYSTEMS=y
-@@ -1028,11 +1098,6 @@
+@@ -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
  
  #
  # Kernel hacking
-@@ -1051,6 +1116,7 @@
+@@ -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_DEBUG_RT_MUTEXES is not set
  # CONFIG_RT_MUTEX_TESTER is not set
  # CONFIG_DEBUG_SPINLOCK is not set
-@@ -1067,9 +1133,10 @@
+@@ -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_LKDTM is not set
  # CONFIG_FAULT_INJECTION is not set
  # CONFIG_SAMPLES is not set
-@@ -1082,7 +1149,9 @@
+@@ -1082,7 +1149,9 @@ CONFIG_FORCED_INLINING=y
  # CONFIG_SECURITY_FILE_CAPABILITIES is not set
  CONFIG_CRYPTO=y
  CONFIG_CRYPTO_ALGAPI=m
  CONFIG_CRYPTO_HASH=m
  CONFIG_CRYPTO_MANAGER=m
  CONFIG_CRYPTO_HMAC=m
-@@ -1101,6 +1170,9 @@
+@@ -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_CRYPTD is not set
  CONFIG_CRYPTO_DES=m
  # CONFIG_CRYPTO_FCRYPT is not set
-@@ -1115,12 +1187,14 @@
+@@ -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_HW is not set
  
  #
-@@ -1135,6 +1209,7 @@
+@@ -1135,6 +1209,7 @@ CONFIG_CRC7=m
  # CONFIG_LIBCRC32C is not set
  CONFIG_ZLIB_INFLATE=y
  CONFIG_ZLIB_DEFLATE=y
  #
  CONFIG_AVR32=y
  CONFIG_GENERIC_GPIO=y
-@@ -13,10 +13,10 @@
+@@ -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_HWEIGHT=y
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_GENERIC_BUG=y
-@@ -39,17 +39,15 @@
+@@ -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_BLK_DEV_INITRD=y
  CONFIG_INITRAMFS_SOURCE=""
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-@@ -63,11 +61,13 @@
+@@ -63,11 +61,13 @@ CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_EVENTFD=y
  CONFIG_SHMEM=y
  CONFIG_VM_EVENT_COUNTERS=y
-@@ -75,6 +75,14 @@
+@@ -75,6 +75,14 @@ CONFIG_VM_EVENT_COUNTERS=y
  # CONFIG_SLAB is not set
  CONFIG_SLUB=y
  # CONFIG_SLOB is not set
  CONFIG_SLABINFO=y
  CONFIG_RT_MUTEXES=y
  # CONFIG_TINY_SHMEM is not set
-@@ -103,10 +111,15 @@
+@@ -103,10 +111,15 @@ CONFIG_IOSCHED_CFQ=y
  CONFIG_DEFAULT_CFQ=y
  # CONFIG_DEFAULT_NOOP is not set
  CONFIG_DEFAULT_IOSCHED="cfq"
  CONFIG_SUBARCH_AVR32B=y
  CONFIG_MMU=y
  CONFIG_PERFORMANCE_COUNTERS=y
-@@ -118,12 +131,16 @@
+@@ -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_LOADER_U_BOOT=y
  
  #
-@@ -132,6 +149,7 @@
+@@ -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_LOAD_ADDRESS=0x10000000
  CONFIG_ENTRY_ADDRESS=0x90000000
  CONFIG_PHYS_OFFSET=0x10000000
-@@ -157,16 +175,26 @@
+@@ -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
  
  #
  # CPU Frequency scaling
-@@ -175,9 +203,9 @@
+@@ -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_CONSERVATIVE is not set
  CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
  # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-@@ -260,6 +288,7 @@
+@@ -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_IRDA is not set
  # CONFIG_BT is not set
  # CONFIG_AF_RXRPC is not set
-@@ -376,13 +405,18 @@
+@@ -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
  
  #
  # SCSI device support
-@@ -427,6 +461,7 @@
+@@ -427,6 +461,7 @@ CONFIG_SCSI_LOWLEVEL=y
  # CONFIG_SCSI_DEBUG is not set
  CONFIG_ATA=m
  # CONFIG_ATA_NONSTANDARD is not set
  CONFIG_PATA_AT32=m
  # CONFIG_PATA_PLATFORM is not set
  # CONFIG_MD is not set
-@@ -460,7 +495,6 @@
+@@ -460,7 +495,6 @@ CONFIG_PPP_BSDCOMP=m
  # 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
-@@ -528,6 +562,7 @@
+@@ -528,6 +562,7 @@ CONFIG_MOUSE_GPIO=m
  #
  CONFIG_SERIAL_ATMEL=y
  CONFIG_SERIAL_ATMEL_CONSOLE=y
  # CONFIG_SERIAL_ATMEL_TTYAT is not set
  CONFIG_SERIAL_CORE=y
  CONFIG_SERIAL_CORE_CONSOLE=y
-@@ -535,8 +570,6 @@
+@@ -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_R3964 is not set
  # CONFIG_RAW_DRIVER is not set
  # CONFIG_TCG_TPM is not set
-@@ -554,6 +587,7 @@
+@@ -554,6 +587,7 @@ CONFIG_I2C_ALGOBIT=m
  #
  # I2C Hardware Bus support
  #
  CONFIG_I2C_GPIO=m
  # CONFIG_I2C_OCORES is not set
  # CONFIG_I2C_PARPORT_LIGHT is not set
-@@ -564,13 +598,12 @@
+@@ -564,13 +598,12 @@ CONFIG_I2C_GPIO=m
  #
  # Miscellaneous I2C Chip support
  #
  # CONFIG_SENSORS_MAX6875 is not set
  # CONFIG_SENSORS_TSL2550 is not set
  # CONFIG_I2C_DEBUG_CORE is not set
-@@ -597,9 +630,27 @@
+@@ -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_WATCHDOG=y
  # CONFIG_WATCHDOG_NOWAYOUT is not set
  
-@@ -665,12 +716,18 @@
+@@ -665,12 +716,18 @@ CONFIG_SND_VERBOSE_PROCFS=y
  #
  # Generic devices
  #
  # SPI devices
  #
  CONFIG_SND_AT73C213=m
-@@ -686,9 +743,14 @@
+@@ -686,9 +743,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000
  #
  
  #
  # CONFIG_HID_SUPPORT is not set
  CONFIG_USB_SUPPORT=y
  # CONFIG_USB_ARCH_HAS_HCD is not set
-@@ -698,10 +760,6 @@
+@@ -698,10 +760,6 @@ CONFIG_USB_SUPPORT=y
  #
  # 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
-@@ -729,27 +787,31 @@
+@@ -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_LEDS_GPIO=y
  
  #
-@@ -786,19 +848,22 @@
+@@ -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_M48T86 is not set
  # CONFIG_RTC_DRV_M48T59 is not set
  # CONFIG_RTC_DRV_V3020 is not set
-@@ -816,13 +881,13 @@
+@@ -816,13 +881,13 @@ CONFIG_UIO=m
  #
  # File systems
  #
  # CONFIG_JBD_DEBUG is not set
  # CONFIG_REISERFS_FS is not set
  # CONFIG_JFS_FS is not set
-@@ -830,12 +895,10 @@
+@@ -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_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
  CONFIG_FUSE_FS=m
-@@ -866,7 +929,7 @@
+@@ -866,7 +929,7 @@ CONFIG_SYSFS=y
  CONFIG_TMPFS=y
  # CONFIG_TMPFS_POSIX_ACL is not set
  # CONFIG_HUGETLB_PAGE is not set
  
  #
  # Miscellaneous filesystems
-@@ -891,8 +954,10 @@
+@@ -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_SYSV_FS is not set
  # CONFIG_UFS_FS is not set
  # CONFIG_NETWORK_FILESYSTEMS is not set
-@@ -943,11 +1008,6 @@
+@@ -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
  
  #
  # Kernel hacking
-@@ -965,6 +1025,7 @@
+@@ -965,6 +1025,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
  CONFIG_SCHED_DEBUG=y
  # CONFIG_SCHEDSTATS is not set
  # CONFIG_TIMER_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 @@
+@@ -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_LKDTM is not set
  # CONFIG_FAULT_INJECTION is not set
  # CONFIG_SAMPLES is not set
-@@ -1009,6 +1071,7 @@
+@@ -1009,6 +1071,7 @@ CONFIG_CRC7=m
  CONFIG_AUDIT_GENERIC=y
  CONFIG_ZLIB_INFLATE=y
  CONFIG_ZLIB_DEFLATE=y
  #
  CONFIG_AVR32=y
  CONFIG_GENERIC_GPIO=y
-@@ -13,10 +13,10 @@
+@@ -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_HWEIGHT=y
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_GENERIC_BUG=y
-@@ -34,15 +34,15 @@
+@@ -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_BLK_DEV_INITRD is not set
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
  CONFIG_SYSCTL=y
-@@ -54,24 +54,37 @@
+@@ -54,24 +54,37 @@ CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_SUBARCH_AVR32B=y
  CONFIG_MMU=y
  CONFIG_PERFORMANCE_COUNTERS=y
-@@ -83,10 +96,14 @@
+@@ -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_LOADER_U_BOOT=y
  
  #
-@@ -95,6 +112,7 @@
+@@ -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_LOAD_ADDRESS=0x10000000
  CONFIG_ENTRY_ADDRESS=0x90000000
  CONFIG_PHYS_OFFSET=0x10000000
-@@ -120,34 +138,26 @@
+@@ -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
  
  #
  # Bus options
-@@ -222,6 +232,7 @@
+@@ -222,6 +232,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
  #
  # CONFIG_NET_PKTGEN is not set
  # CONFIG_HAMRADIO is not set
  # CONFIG_IRDA is not set
  # CONFIG_BT is not set
  # CONFIG_AF_RXRPC is not set
-@@ -321,6 +332,7 @@
+@@ -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
  
  #
  # SCSI device support
-@@ -358,6 +370,7 @@
+@@ -358,6 +370,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
  #
  CONFIG_SERIAL_ATMEL=y
  CONFIG_SERIAL_ATMEL_CONSOLE=y
  # CONFIG_SERIAL_ATMEL_TTYAT is not set
  CONFIG_SERIAL_CORE=y
  CONFIG_SERIAL_CORE_CONSOLE=y
-@@ -365,8 +378,6 @@
+@@ -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_R3964 is not set
  # CONFIG_TCG_TPM is not set
  # CONFIG_I2C is not set
-@@ -389,9 +400,24 @@
+@@ -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_WATCHDOG=y
  # CONFIG_WATCHDOG_NOWAYOUT is not set
  
-@@ -471,10 +497,6 @@
+@@ -471,10 +497,6 @@ CONFIG_USB_SUPPORT=y
  #
  # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
  #
  CONFIG_USB_GADGET=y
  # CONFIG_USB_GADGET_DEBUG_FILES is not set
  CONFIG_USB_GADGET_SELECTED=y
-@@ -499,7 +521,9 @@
+@@ -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_NEW_LEDS is not set
  CONFIG_RTC_LIB=y
  CONFIG_RTC_CLASS=y
-@@ -519,15 +543,17 @@
+@@ -519,15 +543,17 @@ CONFIG_RTC_INTF_DEV=y
  #
  # SPI RTC drivers
  #
  # 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 @@
+@@ -545,9 +571,9 @@ CONFIG_RTC_DRV_AT32AP700X=y
  #
  # File systems
  #
  # CONFIG_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
  # CONFIG_FUSE_FS is not set
-@@ -580,7 +606,6 @@
+@@ -580,7 +606,6 @@ CONFIG_JFFS2_RTIME=y
  # CONFIG_NETWORK_FILESYSTEMS is not set
  # CONFIG_NLS is not set
  # CONFIG_DLM is not set
  
  #
  # Kernel hacking
-@@ -616,6 +641,7 @@
+@@ -616,6 +641,7 @@ CONFIG_CRC32=y
  # CONFIG_LIBCRC32C is not set
  CONFIG_ZLIB_INFLATE=y
  CONFIG_ZLIB_DEFLATE=y
 +#endif /* __AVR32_DW_DMAC_H__ */
 --- a/arch/avr32/kernel/Makefile
 +++ b/arch/avr32/kernel/Makefile
-@@ -9,6 +9,7 @@
+@@ -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-$(CONFIG_STACKTRACE)      += stacktrace.o
 --- a/arch/avr32/kernel/avr32_ksyms.c
 +++ b/arch/avr32/kernel/avr32_ksyms.c
-@@ -29,7 +29,9 @@
+@@ -29,7 +29,9 @@ EXPORT_SYMBOL(__avr32_asr64);
   */
  EXPORT_SYMBOL(memset);
  EXPORT_SYMBOL(memcpy);
  
  /*
   * Userspace access stuff.
-@@ -41,6 +43,8 @@
+@@ -41,6 +43,8 @@ EXPORT_SYMBOL(strncpy_from_user);
  EXPORT_SYMBOL(__strncpy_from_user);
  EXPORT_SYMBOL(clear_user);
  EXPORT_SYMBOL(__clear_user);
 +EXPORT_SYMBOL(find_dma_controller);
 --- a/arch/avr32/kernel/entry-avr32b.S
 +++ b/arch/avr32/kernel/entry-avr32b.S
-@@ -74,50 +74,41 @@
+@@ -74,50 +74,41 @@ exception_vectors:
        .align  2
        bral    do_dtlb_modified
  
  
        /* Second level lookup */
        ld.w    r2, r3[r1 << 2]
-@@ -148,16 +139,55 @@
+@@ -148,16 +139,55 @@ pgtbl_lookup:
        tlbmiss_restore
        rete
  
  system_call:
  #ifdef CONFIG_PREEMPT
        mask_interrupts
-@@ -266,18 +296,6 @@
+@@ -266,18 +296,6 @@ syscall_exit_work:
        brcc    syscall_exit_cont
        rjmp    enter_monitor_mode
  
        /* This function expects to find offending PC in SYSREG_RAR_EX */
        .type   save_full_context_ex, @function
        .align  2
-@@ -741,26 +759,6 @@
+@@ -741,26 +759,6 @@ irq_level\level:
  
        .section .irq.text,"ax",@progbits
  
  /*
   * This file handles the architecture-dependent parts of process handling..
   */
-@@ -54,6 +54,8 @@
+@@ -54,6 +54,8 @@ void machine_halt(void)
  
  void machine_power_off(void)
  {
  void machine_restart(char *cmd)
 --- a/arch/avr32/kernel/setup.c
 +++ b/arch/avr32/kernel/setup.c
-@@ -274,6 +274,8 @@
+@@ -274,6 +274,8 @@ static int __init early_parse_fbmem(char
                        printk(KERN_WARNING
                               "Failed to allocate framebuffer memory\n");
                        fbmem_size = 0;
  
 --- a/arch/avr32/kernel/signal.c
 +++ b/arch/avr32/kernel/signal.c
-@@ -93,6 +93,9 @@
+@@ -93,6 +93,9 @@ asmlinkage int sys_rt_sigreturn(struct p
        if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
                goto badframe;
  
 -device_initcall(init_timer_sysfs);
 --- a/arch/avr32/kernel/vmlinux.lds.S
 +++ b/arch/avr32/kernel/vmlinux.lds.S
-@@ -68,14 +68,6 @@
+@@ -68,14 +68,6 @@ SECTIONS
                _evba = .;
                _text = .;
                *(.ex.text)
                *(.irq.text)
                KPROBES_TEXT
                TEXT_TEXT
-@@ -107,6 +99,10 @@
+@@ -107,6 +99,10 @@ SECTIONS
                 */
                *(.data.init_task)
  
                *(.data.cacheline_aligned)
 --- a/arch/avr32/lib/io-readsb.S
 +++ b/arch/avr32/lib/io-readsb.S
-@@ -41,7 +41,7 @@
+@@ -41,7 +41,7 @@ __raw_readsb:
  2:    sub     r10, -4
        reteq   r12
  
        brne    3b
 --- a/arch/avr32/mach-at32ap/Kconfig
 +++ b/arch/avr32/mach-at32ap/Kconfig
-@@ -26,6 +26,13 @@
+@@ -26,6 +26,13 @@ config AP700X_8_BIT_SMC
  
  endchoice
  
  
  #include <video/atmel_lcdc.h>
  
-@@ -91,25 +94,18 @@
+@@ -91,25 +94,18 @@ static struct clk devname##_##_name = {    
  
  static DEFINE_SPINLOCK(pm_lock);
  
        div = PM_BFEXT(PLLDIV, control) + 1;
        mul = PM_BFEXT(PLLMUL, control) + 1;
  
-@@ -120,6 +116,71 @@
+@@ -120,6 +116,71 @@ static unsigned long pll_get_rate(struct
        return rate;
  }
  
  static unsigned long pll0_get_rate(struct clk *clk)
  {
        u32 control;
-@@ -129,6 +190,41 @@
+@@ -129,6 +190,41 @@ static unsigned long pll0_get_rate(struc
        return pll_get_rate(clk, control);
  }
  
  static unsigned long pll1_get_rate(struct clk *clk)
  {
        u32 control;
-@@ -138,6 +234,49 @@
+@@ -138,6 +234,49 @@ static unsigned long pll1_get_rate(struc
        return pll_get_rate(clk, control);
  }
  
  /*
   * The AT32AP7000 has five primary clock sources: One 32kHz
   * oscillator, two crystal oscillators and two PLLs.
-@@ -166,7 +305,10 @@
+@@ -166,7 +305,10 @@ static struct clk pll0 = {
  };
  static struct clk pll1 = {
        .name           = "pll1",
        .parent         = &osc0,
  };
  
-@@ -534,6 +676,14 @@
+@@ -534,6 +676,14 @@ static struct clk hramc_clk = {
        .users          = 1,
        .index          = 3,
  };
  
  static struct resource smc0_resource[] = {
        PBMEM(0xfff03400),
-@@ -605,19 +755,32 @@
+@@ -605,19 +755,32 @@ static inline void set_ebi_sfr_bits(u32 
  }
  
  /* --------------------------------------------------------------------
  
  /* --------------------------------------------------------------------
   *  PIO
-@@ -669,7 +832,8 @@
+@@ -669,7 +832,8 @@ void __init at32_add_system_devices(void
        platform_device_register(&pdc_device);
        platform_device_register(&dmaca0_device);
  
  
        platform_device_register(&pio0_device);
        platform_device_register(&pio1_device);
-@@ -679,6 +843,81 @@
+@@ -679,6 +843,81 @@ void __init at32_add_system_devices(void
  }
  
  /* --------------------------------------------------------------------
   *  USART
   * -------------------------------------------------------------------- */
  
-@@ -951,7 +1190,8 @@
+@@ -951,7 +1190,8 @@ at32_add_device_spi(unsigned int id, str
        switch (id) {
        case 0:
                pdev = &atmel_spi0_device;
                select_peripheral(PA(1),  PERIPH_A, 0); /* MOSI  */
                select_peripheral(PA(2),  PERIPH_A, 0); /* SCK   */
                at32_spi_setup_slaves(0, b, n, spi0_pins);
-@@ -959,7 +1199,8 @@
+@@ -959,7 +1199,8 @@ at32_add_device_spi(unsigned int id, str
  
        case 1:
                pdev = &atmel_spi1_device;
                select_peripheral(PB(1),  PERIPH_B, 0); /* MOSI  */
                select_peripheral(PB(5),  PERIPH_B, 0); /* SCK   */
                at32_spi_setup_slaves(1, b, n, spi1_pins);
-@@ -989,7 +1230,9 @@
+@@ -989,7 +1230,9 @@ static struct clk atmel_twi0_pclk = {
        .index          = 2,
  };
  
  {
        struct platform_device *pdev;
  
-@@ -1009,6 +1252,9 @@
+@@ -1009,6 +1252,9 @@ struct platform_device *__init at32_add_
  
        atmel_twi0_pclk.dev = &pdev->dev;
  
        platform_device_add(pdev);
        return pdev;
  
-@@ -1032,7 +1278,8 @@
+@@ -1032,7 +1278,8 @@ static struct clk atmel_mci0_pclk = {
        .index          = 9,
  };
  
  {
        struct platform_device *pdev;
  
-@@ -1041,11 +1288,15 @@
+@@ -1041,11 +1288,15 @@ struct platform_device *__init at32_add_
  
        pdev = platform_device_alloc("atmel_mci", id);
        if (!pdev)
  
        select_peripheral(PA(10), PERIPH_A, 0); /* CLK   */
        select_peripheral(PA(11), PERIPH_A, 0); /* CMD   */
-@@ -1054,12 +1305,19 @@
+@@ -1054,12 +1305,19 @@ struct platform_device *__init at32_add_
        select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */
        select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */
  
        platform_device_put(pdev);
        return NULL;
  }
-@@ -1097,7 +1355,8 @@
+@@ -1097,7 +1355,8 @@ static struct clk atmel_lcdfb0_pixclk = 
  
  struct platform_device *__init
  at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
  {
        struct platform_device *pdev;
        struct atmel_lcdfb_info *info;
-@@ -1124,37 +1383,77 @@
+@@ -1124,37 +1383,77 @@ at32_add_device_lcdc(unsigned int id, st
        switch (id) {
        case 0:
                pdev = &atmel_lcdfb0_device;
  
                clk_set_parent(&atmel_lcdfb0_pixclk, &pll0);
                clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0));
-@@ -1351,9 +1650,39 @@
+@@ -1351,9 +1650,39 @@ static struct clk usba0_hclk = {
        .index          = 6,
  };
  
        struct platform_device *pdev;
  
        if (id != 0)
-@@ -1367,13 +1696,20 @@
+@@ -1367,13 +1696,20 @@ at32_add_device_usba(unsigned int id, st
                                          ARRAY_SIZE(usba0_resource)))
                goto out_free_pdev;
  
  
        usba0_pclk.dev = &pdev->dev;
        usba0_hclk.dev = &pdev->dev;
-@@ -1526,6 +1862,58 @@
+@@ -1526,6 +1862,58 @@ fail:
  #endif
  
  /* --------------------------------------------------------------------
   * AC97C
   * -------------------------------------------------------------------- */
  static struct resource atmel_ac97c0_resource[] __initdata = {
-@@ -1540,9 +1928,11 @@
+@@ -1540,9 +1928,11 @@ static struct clk atmel_ac97c0_pclk = {
        .index          = 10,
  };
  
  
        if (id != 0)
                return NULL;
-@@ -1553,19 +1943,37 @@
+@@ -1553,19 +1943,37 @@ struct platform_device *__init at32_add_
  
        if (platform_device_add_resources(pdev, atmel_ac97c0_resource,
                                ARRAY_SIZE(atmel_ac97c0_resource)))
        platform_device_put(pdev);
        return NULL;
  }
-@@ -1683,6 +2091,7 @@
+@@ -1683,6 +2091,7 @@ struct clk *at32_clock_list[] = {
        &hmatrix_clk,
        &ebi_clk,
        &hramc_clk,
        &smc0_pclk,
        &smc0_mck,
        &pdc_hclk,
-@@ -1694,7 +2103,10 @@
+@@ -1694,7 +2103,10 @@ struct clk *at32_clock_list[] = {
        &pio2_mck,
        &pio3_mck,
        &pio4_mck,
        &atmel_usart0_usart,
        &atmel_usart1_usart,
        &atmel_usart2_usart,
-@@ -1730,16 +2142,7 @@
+@@ -1730,16 +2142,7 @@ struct clk *at32_clock_list[] = {
  };
  unsigned int at32_nr_clocks = ARRAY_SIZE(at32_clock_list);
  
  {
        u32 cpu_mask = 0, hsb_mask = 0, pba_mask = 0, pbb_mask = 0;
        int i;
-@@ -1794,4 +2197,36 @@
+@@ -1794,4 +2197,36 @@ void __init at32_clock_init(void)
        pm_writel(HSB_MASK, hsb_mask);
        pm_writel(PBA_MASK, pba_mask);
        pm_writel(PBB_MASK, pbb_mask);
 +core_initcall(sram_init);
 --- a/arch/avr32/mach-at32ap/cpufreq.c
 +++ b/arch/avr32/mach-at32ap/cpufreq.c
-@@ -108,5 +108,4 @@
+@@ -108,5 +108,4 @@ static int __init at32_cpufreq_init(void
  {
        return cpufreq_register_driver(&at32_driver);
  }
 +late_initcall(gpio_dev_init);
 --- a/arch/avr32/mach-at32ap/hsmc.c
 +++ b/arch/avr32/mach-at32ap/hsmc.c
-@@ -278,4 +278,4 @@
+@@ -278,4 +278,4 @@ static int __init hsmc_init(void)
  {
        return platform_driver_register(&hsmc_driver);
  }
  };
  
  extern struct platform_device at32_intc0_device;
-@@ -137,6 +142,74 @@
+@@ -137,6 +142,74 @@ fail:
        panic("Interrupt controller initialization failed!\n");
  }
  
 +arch_initcall(pdc_init);
 --- a/arch/avr32/mach-at32ap/pio.c
 +++ b/arch/avr32/mach-at32ap/pio.c
-@@ -157,6 +157,82 @@
+@@ -157,6 +157,82 @@ fail:
        dump_stack();
  }
  
  /*--------------------------------------------------------------------------*/
  
  /* GPIO API */
-@@ -318,6 +394,8 @@
+@@ -318,6 +394,8 @@ static void pio_bank_show(struct seq_fil
                const char *label;
  
                label = gpiochip_is_requested(chip, i);
  void show_mem(void)
  {
        int total = 0, reserved = 0, cached = 0;
-@@ -109,19 +110,9 @@
+@@ -109,19 +110,9 @@ void __init paging_init(void)
        zero_page = alloc_bootmem_low_pages_node(NODE_DATA(0),
                                                 PAGE_SIZE);
  
        cpu_sync_pipeline();
  
        tlbehi = sysreg_read(TLBEHI);
-@@ -33,15 +33,17 @@
+@@ -33,15 +33,17 @@ void show_dtlb_entry(unsigned int index)
  
        printk("%2u: %c %c %02x   %05x %05x %o  %o  %c %c %c %c\n",
               index,
  
        sysreg_write(MMUCR, mmucr_save);
        sysreg_write(TLBEHI, tlbehi_save);
-@@ -54,29 +56,33 @@
+@@ -54,29 +56,33 @@ void dump_dtlb(void)
        unsigned int i;
  
        printk("ID  V G ASID VPN   PFN   AP SZ C B W D\n");
  
                rp = 32 - fls(tlbar);
                if (rp == 32) {
-@@ -84,30 +90,14 @@
+@@ -84,30 +90,14 @@ static inline void set_replacement_point
                        sysreg_write(TLBARLO, -1L);
                }
  
  }
  
  void update_mmu_cache(struct vm_area_struct *vma,
-@@ -120,39 +110,40 @@
+@@ -120,39 +110,40 @@ void update_mmu_cache(struct vm_area_str
                return;
  
        local_irq_save(flags);
        }
  }
  
-@@ -190,17 +181,22 @@
+@@ -190,17 +181,22 @@ void flush_tlb_range(struct vm_area_stru
  
                local_irq_save(flags);
                size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
                        if (mm != current->mm) {
                                saved_asid = get_asid();
                                set_asid(asid);
-@@ -218,33 +214,34 @@
+@@ -218,33 +214,34 @@ void flush_tlb_range(struct vm_area_stru
  }
  
  /*
  }
  
  void flush_tlb_mm(struct mm_struct *mm)
-@@ -280,7 +277,7 @@
+@@ -280,7 +277,7 @@ static void *tlb_start(struct seq_file *
  {
        static unsigned long tlb_index;
  
                return NULL;
  
        tlb_index = 0;
-@@ -291,7 +288,7 @@
+@@ -291,7 +288,7 @@ static void *tlb_next(struct seq_file *t
  {
        unsigned long *index = v;
  
                return NULL;
  
        ++*pos;
-@@ -313,16 +310,16 @@
+@@ -313,16 +310,16 @@ static int tlb_show(struct seq_file *tlb
        if (*index == 0)
                seq_puts(tlb, "ID  V G ASID VPN   PFN   AP SZ C B W D\n");
  
        cpu_sync_pipeline();
  
        tlbehi = sysreg_read(TLBEHI);
-@@ -334,16 +331,18 @@
+@@ -334,16 +331,18 @@ static int tlb_show(struct seq_file *tlb
        local_irq_restore(flags);
  
        seq_printf(tlb, "%2lu: %c %c %02x   %05x %05x %o  %o  %c %c %c %c\n",
  
 --- a/drivers/char/Kconfig
 +++ b/drivers/char/Kconfig
-@@ -706,7 +706,7 @@
+@@ -706,7 +706,7 @@ config NVRAM
  
  config RTC
        tristate "Enhanced Real Time Clock Support"
        ---help---
          If you say Y here and create a character special file /dev/rtc with
          major number 10 and minor number 135 using mknod ("man mknod"), you
-@@ -776,7 +776,7 @@
+@@ -776,7 +776,7 @@ config SGI_IP27_RTC
  
  config GEN_RTC
        tristate "Generic /dev/rtc emulation"
          major number 10 and minor number 135 using mknod ("man mknod"), you
 --- a/drivers/char/keyboard.c
 +++ b/drivers/char/keyboard.c
-@@ -1033,7 +1033,8 @@
+@@ -1033,7 +1033,8 @@ DECLARE_TASKLET_DISABLED(keyboard_taskle
  #if defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_ALPHA) ||\
      defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_SPARC) ||\
      defined(CONFIG_PARISC) || defined(CONFIG_SUPERH) ||\
 +arch_initcall(tcb_clksrc_init);
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -88,6 +88,14 @@
+@@ -88,6 +88,14 @@ config I2C_AT91
          to support combined I2C messages.  Use the i2c-gpio driver
          unless your system can cope with those limitations.
  
        depends on SOC_AU1550 || SOC_AU1200
 --- a/drivers/i2c/busses/Makefile
 +++ b/drivers/i2c/busses/Makefile
-@@ -52,6 +52,7 @@
+@@ -52,6 +52,7 @@ obj-$(CONFIG_I2C_VIAPRO)     += i2c-viapro.o
  obj-$(CONFIG_I2C_VOODOO3)     += i2c-voodoo3.o
  obj-$(CONFIG_SCx200_ACB)      += scx200_acb.o
  obj-$(CONFIG_SCx200_I2C)      += scx200_i2c.o
 +#endif /* __ATMELTWI_H__ */
 --- a/drivers/input/serio/Kconfig
 +++ b/drivers/input/serio/Kconfig
-@@ -88,6 +88,17 @@
+@@ -88,6 +88,17 @@ config SERIO_RPCKBD
          To compile this driver as a module, choose M here: the
          module will be called rpckbd.
  
        depends on ARM_AMBA
 --- a/drivers/input/serio/Makefile
 +++ b/drivers/input/serio/Makefile
-@@ -12,6 +12,7 @@
+@@ -12,6 +12,7 @@ obj-$(CONFIG_SERIO_CT82C710) += ct82c710
  obj-$(CONFIG_SERIO_RPCKBD)    += rpckbd.o
  obj-$(CONFIG_SERIO_SA1111)    += sa1111ps2.o
  obj-$(CONFIG_SERIO_AMBAKMI)   += ambakmi.o
 +#endif /* _AT32PSIF_H */
 --- a/drivers/misc/Kconfig
 +++ b/drivers/misc/Kconfig
-@@ -22,6 +22,39 @@
+@@ -22,6 +22,39 @@ config ATMEL_PWM
          purposes including software controlled power-efficent backlights
          on LCD displays, motor control, and waveform generation.
  
        depends on X86 && PCI && INPUT && EXPERIMENTAL
 --- a/drivers/misc/Makefile
 +++ b/drivers/misc/Makefile
-@@ -10,6 +10,7 @@
+@@ -10,6 +10,7 @@ obj-$(CONFIG_ACER_WMI)     += acer-wmi.o
  obj-$(CONFIG_ASUS_LAPTOP)     += asus-laptop.o
  obj-$(CONFIG_ATMEL_PWM)               += atmel_pwm.o
  obj-$(CONFIG_ATMEL_SSC)               += atmel-ssc.o
 +arch_initcall(tc_init);
 --- a/drivers/mmc/host/Kconfig
 +++ b/drivers/mmc/host/Kconfig
-@@ -91,6 +91,16 @@
+@@ -91,6 +91,16 @@ config MMC_AT91
  
          If unsure, say N.
  
        depends on ARCH_IMX
 --- a/drivers/mmc/host/Makefile
 +++ b/drivers/mmc/host/Makefile
-@@ -15,6 +15,7 @@
+@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_WBSD)               += wbsd.o
  obj-$(CONFIG_MMC_AU1X)                += au1xmmc.o
  obj-$(CONFIG_MMC_OMAP)                += omap.o
  obj-$(CONFIG_MMC_AT91)                += at91_mci.o
 +#endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -272,12 +272,54 @@
+@@ -272,12 +272,54 @@ config MTD_NAND_CS553X
  
          If you say "m", the module will be called "cs553x_nand.ko".
  
        tristate "Support for NAND Flash on CM-X270 modules"
 --- a/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
-@@ -24,7 +24,7 @@
+@@ -24,7 +24,7 @@ obj-$(CONFIG_MTD_NAND_TS7250)                += ts7250
  obj-$(CONFIG_MTD_NAND_NANDSIM)                += nandsim.o
  obj-$(CONFIG_MTD_NAND_CS553X)         += cs553x_nand.o
  obj-$(CONFIG_MTD_NAND_NDFC)           += ndfc.o
 +#endif
 --- a/drivers/mtd/nand/bf5xx_nand.c
 +++ b/drivers/mtd/nand/bf5xx_nand.c
-@@ -803,3 +803,4 @@
+@@ -803,3 +803,4 @@ module_exit(bf5xx_nand_exit);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR(DRV_AUTHOR);
  MODULE_DESCRIPTION(DRV_DESC);
 +MODULE_ALIAS("platform:" DRV_NAME);
 --- a/drivers/mtd/nand/ndfc.c
 +++ b/drivers/mtd/nand/ndfc.c
-@@ -317,3 +317,5 @@
+@@ -317,3 +317,5 @@ module_exit(ndfc_nand_exit);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
  MODULE_DESCRIPTION("Platform driver for NDFC");
 +MODULE_ALIAS("platform:ndfc-nand");
 --- a/drivers/mtd/nand/orion_nand.c
 +++ b/drivers/mtd/nand/orion_nand.c
-@@ -169,3 +169,4 @@
+@@ -169,3 +169,4 @@ module_exit(orion_nand_exit);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Tzachi Perelstein");
  MODULE_DESCRIPTION("NAND glue for Orion platforms");
 +MODULE_ALIAS("platform:orion_nand");
 --- a/drivers/mtd/nand/plat_nand.c
 +++ b/drivers/mtd/nand/plat_nand.c
-@@ -161,3 +161,4 @@
+@@ -161,3 +161,4 @@ module_exit(plat_nand_exit);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Vitaly Wool");
  MODULE_DESCRIPTION("Simple generic NAND driver");
 +MODULE_ALIAS("platform:gen_nand");
 --- a/drivers/mtd/nand/s3c2410.c
 +++ b/drivers/mtd/nand/s3c2410.c
-@@ -927,3 +927,6 @@
+@@ -927,3 +927,6 @@ module_exit(s3c2410_nand_exit);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
  MODULE_DESCRIPTION("S3C24XX MTD NAND driver");
 +MODULE_ALIAS("platform:s3c2440-nand");
 --- a/drivers/net/macb.c
 +++ b/drivers/net/macb.c
-@@ -1277,8 +1277,45 @@
+@@ -1277,8 +1277,45 @@ static int __exit macb_remove(struct pla
        return 0;
  }
  
        },
 --- a/drivers/parport/Kconfig
 +++ b/drivers/parport/Kconfig
-@@ -36,7 +36,7 @@
+@@ -36,7 +36,7 @@ if PARPORT
  config PARPORT_PC
        tristate "PC-style hardware"
        depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \
          IBM PC compatible computers and some Alphas have PC-style
 --- a/drivers/pcmcia/Kconfig
 +++ b/drivers/pcmcia/Kconfig
-@@ -277,6 +277,13 @@
+@@ -277,6 +277,13 @@ config ELECTRA_CF
          Say Y here to support the CompactFlash controller on the
          PA Semi Electra eval board.
  
  
 --- a/drivers/pcmcia/Makefile
 +++ b/drivers/pcmcia/Makefile
-@@ -38,6 +38,7 @@
+@@ -38,6 +38,7 @@ obj-$(CONFIG_PCMCIA_VRC4173)                 += vrc417
  obj-$(CONFIG_OMAP_CF)                         += omap_cf.o
  obj-$(CONFIG_AT91_CF)                         += at91_cf.o
  obj-$(CONFIG_ELECTRA_CF)                      += electra_cf.o
 +MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
 --- a/drivers/rtc/rtc-at32ap700x.c
 +++ b/drivers/rtc/rtc-at32ap700x.c
-@@ -262,6 +262,7 @@
+@@ -262,6 +262,7 @@ static int __init at32_rtc_probe(struct 
        }
  
        platform_set_drvdata(pdev, rtc);
  
        dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n",
                        (unsigned long)rtc->regs, rtc->irq);
-@@ -281,6 +282,8 @@
+@@ -281,6 +282,8 @@ static int __exit at32_rtc_remove(struct
  {
        struct rtc_at32ap700x *rtc = platform_get_drvdata(pdev);
  
        rtc_device_unregister(rtc->rtc);
 --- a/drivers/serial/atmel_serial.c
 +++ b/drivers/serial/atmel_serial.c
-@@ -957,6 +957,20 @@
+@@ -957,6 +957,20 @@ static void atmel_shutdown(struct uart_p
  }
  
  /*
   * Power / Clock management.
   */
  static void atmel_serial_pm(struct uart_port *port, unsigned int state,
-@@ -1190,6 +1204,7 @@
+@@ -1190,6 +1204,7 @@ static struct uart_ops atmel_pops = {
        .break_ctl      = atmel_break_ctl,
        .startup        = atmel_startup,
        .shutdown       = atmel_shutdown,
        .set_termios    = atmel_set_termios,
        .type           = atmel_type,
        .release_port   = atmel_release_port,
-@@ -1440,6 +1455,15 @@
+@@ -1440,6 +1455,15 @@ static struct uart_driver atmel_uart = {
  };
  
  #ifdef CONFIG_PM
  static int atmel_serial_suspend(struct platform_device *pdev,
                                pm_message_t state)
  {
-@@ -1447,7 +1471,7 @@
+@@ -1447,7 +1471,7 @@ static int atmel_serial_suspend(struct p
        struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
  
        if (device_may_wakeup(&pdev->dev)
                uart_suspend_port(&atmel_uart, port);
 --- a/drivers/serial/serial_core.c
 +++ b/drivers/serial/serial_core.c
-@@ -552,6 +552,8 @@
+@@ -552,6 +552,8 @@ static void uart_flush_buffer(struct tty
  
        spin_lock_irqsave(&port->lock, flags);
        uart_circ_clear(&state->info->xmit);
  }
 --- a/drivers/spi/atmel_spi.c
 +++ b/drivers/spi/atmel_spi.c
-@@ -51,9 +51,7 @@
+@@ -51,9 +51,7 @@ struct atmel_spi {
        u8                      stopping;
        struct list_head        queue;
        struct spi_transfer     *current_transfer;
  
        void                    *buffer;
        dma_addr_t              buffer_dma;
-@@ -133,48 +131,6 @@
+@@ -133,48 +131,6 @@ static void cs_deactivate(struct atmel_s
                gpio_set_value(gpio, !active);
  }
  
  /*
   * Submit next transfer for DMA.
   * lock is held, spi irq is blocked
-@@ -184,78 +140,53 @@
+@@ -184,78 +140,53 @@ static void atmel_spi_next_xfer(struct s
  {
        struct atmel_spi        *as = spi_master_get_devdata(master);
        struct spi_transfer     *xfer;
         * transfer because we need to handle some difficult timing
         * issues otherwise. If we wait for ENDTX in one transfer and
         * then starts waiting for ENDRX in the next, it's difficult
-@@ -265,7 +196,17 @@
+@@ -265,7 +196,17 @@ static void atmel_spi_next_xfer(struct s
         *
         * It should be doable, though. Just not now...
         */
        spi_writel(as, PTCR, SPI_BIT(TXTEN) | SPI_BIT(RXTEN));
  }
  
-@@ -363,7 +304,6 @@
+@@ -363,7 +304,6 @@ atmel_spi_msg_done(struct spi_master *ma
        spin_lock(&as->lock);
  
        as->current_transfer = NULL;
  
        /* continue if needed */
        if (list_empty(&as->queue) || as->stopping)
-@@ -447,7 +387,7 @@
+@@ -447,7 +387,7 @@ atmel_spi_interrupt(int irq, void *dev_i
  
                spi_writel(as, IDR, pending);
  
                        msg->actual_length += xfer->len;
  
                        if (!msg->is_dma_mapped)
-@@ -457,7 +397,7 @@
+@@ -457,7 +397,7 @@ atmel_spi_interrupt(int irq, void *dev_i
                        if (xfer->delay_usecs)
                                udelay(xfer->delay_usecs);
  
                                                xfer->cs_change);
 --- a/drivers/usb/gadget/Kconfig
 +++ b/drivers/usb/gadget/Kconfig
-@@ -118,10 +118,10 @@
+@@ -118,10 +118,10 @@ config USB_AMD5536UDC
  config USB_GADGET_ATMEL_USBA
        boolean "Atmel USBA"
        select USB_GADGET_DUALSPEED
  
  #ifdef CONFIG_USB_GADGET_DEBUG_FS
  #include <linux/debugfs.h>
-@@ -324,53 +326,28 @@
+@@ -324,53 +326,28 @@ static int vbus_is_present(struct usba_u
        return 1;
  }
  
  static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
  {
        unsigned int transaction_len;
-@@ -387,7 +364,7 @@
+@@ -387,7 +364,7 @@ static void next_fifo_transaction(struct
                ep->ep.name, req, transaction_len,
                req->last_transaction ? ", done" : "");
  
        usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
        req->req.actual += transaction_len;
  }
-@@ -476,7 +453,7 @@
+@@ -476,7 +453,7 @@ static void receive_data(struct usba_ep 
                        bytecount = req->req.length - req->req.actual;
                }
  
                                ep->fifo, bytecount);
                req->req.actual += bytecount;
  
-@@ -1029,33 +1006,6 @@
+@@ -1029,33 +1006,6 @@ static const struct usb_gadget_ops usba_
        .set_selfpowered        = usba_udc_set_selfpowered,
  };
  
  static struct usb_endpoint_descriptor usba_ep0_desc = {
        .bLength = USB_DT_ENDPOINT_SIZE,
        .bDescriptorType = USB_DT_ENDPOINT,
-@@ -1074,7 +1024,6 @@
+@@ -1074,7 +1024,6 @@ static void nop_release(struct device *d
  static struct usba_udc the_udc = {
        .gadget = {
                .ops            = &usba_udc_ops,
                .ep_list        = LIST_HEAD_INIT(the_udc.gadget.ep_list),
                .is_dualspeed   = 1,
                .name           = "atmel_usba_udc",
-@@ -1231,7 +1180,7 @@
+@@ -1231,7 +1180,7 @@ static int do_test_mode(struct usba_udc 
                } else {
                        usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
                        usba_writel(udc, TST, USBA_TST_PKT_MODE);
                                        sizeof(test_packet_buffer));
                        usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
                        dev_info(dev, "Entering Test_Packet mode...\n");
-@@ -1530,13 +1479,13 @@
+@@ -1530,13 +1479,13 @@ restart:
                DBG(DBG_HW, "Packet length: %u\n", pkt_len);
                if (pkt_len != sizeof(crq)) {
                        pr_warning("udc: Invalid packet length %u "
  
                /* Free up one bank in the FIFO so that we can
                 * generate or receive a reply right away. */
-@@ -1688,6 +1637,7 @@
+@@ -1688,6 +1637,7 @@ static irqreturn_t usba_udc_irq(int irq,
        DBG(DBG_INT, "irq, status=%#08x\n", status);
  
        if (status & USBA_DET_SUSPEND) {
                usba_writel(udc, INT_CLR, USBA_DET_SUSPEND);
                DBG(DBG_BUS, "Suspend detected\n");
                if (udc->gadget.speed != USB_SPEED_UNKNOWN
-@@ -1699,6 +1649,7 @@
+@@ -1699,6 +1649,7 @@ static irqreturn_t usba_udc_irq(int irq,
        }
  
        if (status & USBA_WAKE_UP) {
                usba_writel(udc, INT_CLR, USBA_WAKE_UP);
                DBG(DBG_BUS, "Wake Up CPU detected\n");
        }
-@@ -1792,12 +1743,14 @@
+@@ -1792,12 +1743,14 @@ static irqreturn_t usba_vbus_irq(int irq
        vbus = gpio_get_value(udc->vbus_pin);
        if (vbus != udc->vbus_prev) {
                if (vbus) {
                        spin_unlock(&udc->lock);
                        udc->driver->disconnect(&udc->gadget);
                        spin_lock(&udc->lock);
-@@ -1850,7 +1803,8 @@
+@@ -1850,7 +1803,8 @@ int usb_gadget_register_driver(struct us
        /* If Vbus is present, enable the controller and wait for reset */
        spin_lock_irqsave(&udc->lock, flags);
        if (vbus_is_present(udc) && udc->vbus_prev == 0) {
                usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
        }
        spin_unlock_irqrestore(&udc->lock, flags);
-@@ -1883,7 +1837,8 @@
+@@ -1883,7 +1837,8 @@ int usb_gadget_unregister_driver(struct 
        spin_unlock_irqrestore(&udc->lock, flags);
  
        /* This will also disable the DP pullup */
  
        driver->unbind(&udc->gadget);
        udc->gadget.dev.driver = NULL;
-@@ -1908,7 +1863,7 @@
+@@ -1908,7 +1863,7 @@ static int __init usba_udc_probe(struct 
  
        regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
        fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
                return -ENXIO;
  
        irq = platform_get_irq(pdev, 0);
-@@ -1953,19 +1908,48 @@
+@@ -1953,19 +1908,48 @@ static int __init usba_udc_probe(struct 
  
        /* Make sure we start from a clean slate */
        clk_enable(pclk);
  
                list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
        }
-@@ -1984,7 +1968,7 @@
+@@ -1984,7 +1968,7 @@ static int __init usba_udc_probe(struct 
                goto err_device_add;
        }
  
                if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
                        udc->vbus_pin = pdata->vbus_pin;
  
-@@ -2004,7 +1988,7 @@
+@@ -2004,7 +1988,7 @@ static int __init usba_udc_probe(struct 
        }
  
        usba_init_debugfs(udc);
                usba_ep_init_debugfs(udc, &usba_ep[i]);
  
        return 0;
-@@ -2012,6 +1996,8 @@
+@@ -2012,6 +1996,8 @@ static int __init usba_udc_probe(struct 
  err_device_add:
        free_irq(irq, udc);
  err_request_irq:
        iounmap(udc->fifo);
  err_map_fifo:
        iounmap(udc->regs);
-@@ -2029,10 +2015,11 @@
+@@ -2029,10 +2015,11 @@ static int __exit usba_udc_remove(struct
  {
        struct usba_udc *udc;
        int i;
                usba_ep_cleanup_debugfs(&usba_ep[i]);
        usba_cleanup_debugfs(udc);
  
-@@ -2040,6 +2027,7 @@
+@@ -2040,6 +2027,7 @@ static int __exit usba_udc_remove(struct
                gpio_free(udc->vbus_pin);
  
        free_irq(udc->irq, udc);
  
  static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
                                        struct fb_var_screeninfo *var)
-@@ -176,7 +178,7 @@
+@@ -176,7 +178,7 @@ static struct fb_fix_screeninfo atmel_lc
        .type           = FB_TYPE_PACKED_PIXELS,
        .visual         = FB_VISUAL_TRUECOLOR,
        .xpanstep       = 0,
        .ywrapstep      = 0,
        .accel          = FB_ACCEL_NONE,
  };
-@@ -250,6 +252,8 @@
+@@ -250,6 +252,8 @@ static int atmel_lcdfb_alloc_video_memor
                return -ENOMEM;
        }
  
        return 0;
  }
  
-@@ -634,7 +638,6 @@
+@@ -634,7 +638,6 @@ static int __init atmel_lcdfb_init_fbinf
        struct fb_info *info = sinfo->info;
        int ret = 0;
  
        info->var.activate |= FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
  
        dev_info(info->device,
-@@ -764,6 +767,11 @@
+@@ -764,6 +767,11 @@ static int __init atmel_lcdfb_probe(stru
                info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
                if (!info->screen_base)
                        goto release_intmem;
                ret = atmel_lcdfb_alloc_video_memory(sinfo);
 --- a/fs/fs-writeback.c
 +++ b/fs/fs-writeback.c
-@@ -385,8 +385,6 @@
+@@ -385,8 +385,6 @@ __writeback_single_inode(struct inode *i
   * WB_SYNC_HOLD is a hack for sys_sync(): reattach the inode to sb->s_dirty so
   * that it can be located for waiting on in __writeback_single_inode().
   *
   * If `bdi' is non-zero then we're being asked to writeback a specific queue.
   * This function assumes that the blockdev superblock's inodes are backed by
   * a variety of queues, so all inodes are searched.  For other superblocks,
-@@ -402,11 +400,12 @@
+@@ -402,11 +400,12 @@ __writeback_single_inode(struct inode *i
   * on the writer throttling path, and we get decent balancing between many
   * throttled threads: we don't want them all piling up on inode_sync_wait.
   */
        if (!wbc->for_kupdate || list_empty(&sb->s_io))
                queue_io(sb, wbc->older_than_this);
  
-@@ -485,8 +484,16 @@
+@@ -485,8 +484,16 @@ sync_sb_inodes(struct super_block *sb, s
                if (!list_empty(&sb->s_more_io))
                        wbc->more_io = 1;
        }
  
  /*
   * Start writeback of dirty pagecache data against all unlocked inodes.
-@@ -526,11 +533,8 @@
+@@ -526,11 +533,8 @@ restart:
                         * be unmounted by the time it is released.
                         */
                        if (down_read_trylock(&sb->s_umount)) {
                                up_read(&sb->s_umount);
                        }
                        spin_lock(&sb_lock);
-@@ -568,9 +572,7 @@
+@@ -568,9 +572,7 @@ void sync_inodes_sb(struct super_block *
                        (inodes_stat.nr_inodes - inodes_stat.nr_unused) +
                        nr_dirty + nr_unstable;
        wbc.nr_to_write += wbc.nr_to_write / 2;         /* Bit more for luck */
  /* Add basic devices: system manager, interrupt controller, portmuxes, etc. */
  void at32_add_system_devices(void);
  
-@@ -36,11 +42,10 @@
+@@ -36,11 +42,10 @@ at32_add_device_spi(unsigned int id, str
  struct atmel_lcdfb_info;
  struct platform_device *
  at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
  struct platform_device *
  at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
  
-@@ -68,9 +73,27 @@
+@@ -68,9 +73,27 @@ struct platform_device *at32_add_device_
  struct platform_device *
  at32_add_device_ssc(unsigned int id, unsigned int flags);
  
  struct platform_device *at32_add_device_abdac(unsigned int id);
  
  struct cf_platform_data {
-@@ -84,4 +107,20 @@
+@@ -84,4 +107,20 @@ struct platform_device *
  at32_add_device_cf(unsigned int id, unsigned int extint,
                struct cf_platform_data *data);
  
 +#endif /* __ASM_AVR32_ARCH_PM_H */
 --- a/include/asm-avr32/arch-at32ap/portmux.h
 +++ b/include/asm-avr32/arch-at32ap/portmux.h
-@@ -26,4 +26,16 @@
+@@ -26,4 +26,16 @@ void at32_select_periph(unsigned int pin
  void at32_select_gpio(unsigned int pin, unsigned long flags);
  void at32_reserve_pin(unsigned int pin);
  
  }
  
  #define __pte_free_tlb(tlb,pte)                               \
-@@ -75,6 +89,10 @@
+@@ -75,6 +89,10 @@ do {                                                        \
        tlb_remove_page((tlb), pte);                    \
  } while (0)
  
  #endif /* __ASM_AVR32_PGALLOC_H */
 --- a/include/asm-avr32/pgtable.h
 +++ b/include/asm-avr32/pgtable.h
-@@ -129,13 +129,6 @@
+@@ -129,13 +129,6 @@ extern struct page *empty_zero_page;
  
  #define _PAGE_FLAGS_CACHE_MASK        (_PAGE_CACHABLE | _PAGE_BUFFER | _PAGE_WT)
  
  /* Flags that may be modified by software */
  #define _PAGE_CHG_MASK                (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY \
                                 | _PAGE_FLAGS_CACHE_MASK)
-@@ -254,10 +247,14 @@
+@@ -254,10 +247,14 @@ static inline pte_t pte_mkyoung(pte_t pt
  }
  
  #define pmd_none(x)   (!pmd_val(x))
  
  /*
   * Permanent address of a page. We don't support highmem, so this is
-@@ -295,19 +292,16 @@
+@@ -295,19 +292,16 @@ static inline pte_t pte_modify(pte_t pte
  
  #define page_pte(page)        page_pte_prot(page, __pgprot(0))
  
 +#endif /* _ASM_SERIAL_H */
 --- a/include/asm-avr32/thread_info.h
 +++ b/include/asm-avr32/thread_info.h
-@@ -88,6 +88,7 @@
+@@ -88,6 +88,7 @@ static inline struct thread_info *curren
  #define TIF_MEMDIE            6
  #define TIF_RESTORE_SIGMASK   7       /* restore signal mask in do_signal */
  #define TIF_CPU_GOING_TO_SLEEP        8       /* CPU is entering sleep 0 mode */
  
 --- a/include/asm-avr32/tlbflush.h
 +++ b/include/asm-avr32/tlbflush.h
-@@ -26,7 +26,6 @@
+@@ -26,7 +26,6 @@ extern void flush_tlb_mm(struct mm_struc
  extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
                            unsigned long end);
  extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
 +#endif
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1692,6 +1692,8 @@
+@@ -1692,6 +1692,8 @@ static inline void invalidate_remote_ino
  extern int invalidate_inode_pages2(struct address_space *mapping);
  extern int invalidate_inode_pages2_range(struct address_space *mapping,
                                         pgoff_t start, pgoff_t end);
  extern int filemap_flush(struct address_space *);
 --- a/include/linux/serial_core.h
 +++ b/include/linux/serial_core.h
-@@ -188,6 +188,7 @@
+@@ -188,6 +188,7 @@ struct uart_ops {
        void            (*break_ctl)(struct uart_port *, int ctl);
        int             (*startup)(struct uart_port *);
        void            (*shutdown)(struct uart_port *);
 +#endif /* __LINUX_USB_USBA_H */
 --- a/mm/Kconfig
 +++ b/mm/Kconfig
-@@ -187,7 +187,7 @@
+@@ -187,7 +187,7 @@ config BOUNCE
  config NR_QUICK
        int
        depends on QUICKLIST
  config VIRT_TO_BUS
 --- a/sound/Kconfig
 +++ b/sound/Kconfig
-@@ -63,6 +63,8 @@
+@@ -63,6 +63,8 @@ source "sound/aoa/Kconfig"
  
  source "sound/arm/Kconfig"
  
  endif
 --- a/sound/Makefile
 +++ b/sound/Makefile
-@@ -6,7 +6,7 @@
+@@ -6,7 +6,7 @@ obj-$(CONFIG_SOUND_PRIME) += sound_firmw
  obj-$(CONFIG_SOUND_PRIME) += oss/
  obj-$(CONFIG_DMASOUND) += oss/
  obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
 +#endif /* __SOUND_AVR32_AC97C_H */
 --- a/sound/oss/Kconfig
 +++ b/sound/oss/Kconfig
-@@ -654,3 +654,7 @@
+@@ -654,3 +654,7 @@ config SOUND_SH_DAC_AUDIO_CHANNEL
        int "DAC channel"
        default "1"
        depends on SOUND_SH_DAC_AUDIO
 +      depends on SOUND_PRIME && AVR32
 --- a/sound/oss/Makefile
 +++ b/sound/oss/Makefile
-@@ -9,6 +9,7 @@
+@@ -9,6 +9,7 @@ obj-$(CONFIG_SOUND_OSS)                += sound.o
  
  # Please leave it as is, cause the link order is significant !
  
 +#endif /* __SOUND_OSS_AT32_ABDAC_H__ */
 --- a/sound/spi/at73c213.c
 +++ b/sound/spi/at73c213.c
-@@ -737,7 +737,7 @@
+@@ -737,7 +737,7 @@ cleanup:
  /*
   * Device functions
   */
  {
        /*
         * Continuous clock output.
-@@ -767,7 +767,7 @@
+@@ -767,7 +767,7 @@ static int snd_at73c213_ssc_init(struct 
        return 0;
  }
  
  {
        int retval;
        unsigned char dac_ctrl = 0;
-@@ -933,7 +933,7 @@
+@@ -933,7 +933,7 @@ out:
        return retval;
  }
  
index 83c3d50..98669bc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/avr32/boards/atngw100/flash.c
 +++ b/arch/avr32/boards/atngw100/flash.c
-@@ -45,9 +45,14 @@
+@@ -45,9 +45,14 @@ static struct mtd_partition flash_parts[
                .mask_flags     = MTD_WRITEABLE,
        },
        {
index bad5ec1..daa867b 100644 (file)
@@ -11,7 +11,7 @@ BOARD:=brcm47xx
 BOARDNAME:=Broadcom BCM947xx/953xx
 FEATURES:=squashfs usb
 
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
 
 include $(INCLUDE_DIR)/target.mk
 DEFAULT_PACKAGES += kmod-switch kmod-diag
index 783aa8c..b48215d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -50,8 +50,10 @@
+@@ -50,8 +50,10 @@ config BCM47XX
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SSB
@@ -11,7 +11,7 @@
        select SSB_PCICORE_HOSTMODE if PCI
        select GENERIC_GPIO
        select SYS_HAS_EARLY_PRINTK
-@@ -790,6 +792,7 @@
+@@ -790,6 +792,7 @@ config CSRC_SB1250
  
  config CFE
        bool
index 1471083..6d3161c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/maps/Kconfig
 +++ b/drivers/mtd/maps/Kconfig
-@@ -337,6 +337,12 @@
+@@ -337,6 +337,12 @@ config MTD_CFI_FLAGADM
          Mapping for the Flaga digital module. If you don't have one, ignore
          this setting.
  
@@ -15,7 +15,7 @@
        depends on MTD_JEDECPROBE && WALNUT && !PPC_MERGE
 --- a/drivers/mtd/maps/Makefile
 +++ b/drivers/mtd/maps/Makefile
-@@ -31,6 +31,7 @@
+@@ -31,6 +31,7 @@ obj-$(CONFIG_MTD_PMC_MSP_RAMROOT)+= pmcm
  obj-$(CONFIG_MTD_PCMCIA)      += pcmciamtd.o
  obj-$(CONFIG_MTD_RPXLITE)     += rpxlite.o
  obj-$(CONFIG_MTD_TQM8XXL)     += tqm8xxl.o
index d36b4d8..941b649 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -228,7 +228,6 @@
+@@ -228,7 +228,6 @@ config MIPS_MALTA
        select I8259
        select MIPS_BOARDS_GEN
        select MIPS_BONITO64
@@ -8,7 +8,7 @@
        select PCI_GT64XXX_PCI0
        select MIPS_MSC
        select SWAP_IO_SPACE
-@@ -1421,13 +1420,6 @@
+@@ -1421,13 +1420,6 @@ config IP22_CPU_SCACHE
        bool
        select BOARD_SCACHE
  
@@ -24,7 +24,7 @@
        select BOARD_SCACHE
 --- a/arch/mips/kernel/cpu-probe.c
 +++ b/arch/mips/kernel/cpu-probe.c
-@@ -704,6 +704,8 @@
+@@ -704,6 +704,8 @@ static inline void cpu_probe_mips(struct
                break;
        case PRID_IMP_25KF:
                c->cputype = CPU_25KF;
@@ -35,7 +35,7 @@
                c->cputype = CPU_34K;
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -1103,7 +1103,6 @@
+@@ -1103,7 +1103,6 @@ static void __init loongson2_sc_init(voi
  
  extern int r5k_sc_init(void);
  extern int rm7k_sc_init(void);
@@ -43,7 +43,7 @@
  
  static void __cpuinit setup_scache(void)
  {
-@@ -1157,29 +1156,17 @@
+@@ -1157,29 +1156,17 @@ static void __cpuinit setup_scache(void)
  #endif
  
        default:
@@ -80,7 +80,7 @@
  
 --- a/arch/mips/mm/Makefile
 +++ b/arch/mips/mm/Makefile
-@@ -32,6 +32,5 @@
+@@ -32,6 +32,5 @@ obj-$(CONFIG_CPU_VR41XX)     += c-r4k.o cex-
  obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o
  obj-$(CONFIG_R5000_CPU_SCACHE)  += sc-r5k.o
  obj-$(CONFIG_RM7000_CPU_SCACHE)       += sc-rm7k.o
index e0d225b..58dafe5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/kernel/genex.S
 +++ b/arch/mips/kernel/genex.S
-@@ -51,6 +51,10 @@
+@@ -51,6 +51,10 @@ NESTED(except_vec1_generic, 0, sp)
  NESTED(except_vec3_generic, 0, sp)
        .set    push
        .set    noat
@@ -23,7 +23,7 @@
  /*
   * Special Variant of smp_call_function for use by cache functions:
   *
-@@ -97,6 +100,9 @@
+@@ -97,6 +100,9 @@ static void __cpuinit r4k_blast_dcache_p
  {
        unsigned long  dc_lsize = cpu_dcache_line_size();
  
@@ -33,7 +33,7 @@
        if (dc_lsize == 0)
                r4k_blast_dcache_page = (void *)cache_noop;
        else if (dc_lsize == 16)
-@@ -111,6 +117,9 @@
+@@ -111,6 +117,9 @@ static void __cpuinit r4k_blast_dcache_p
  {
        unsigned long dc_lsize = cpu_dcache_line_size();
  
@@ -43,7 +43,7 @@
        if (dc_lsize == 0)
                r4k_blast_dcache_page_indexed = (void *)cache_noop;
        else if (dc_lsize == 16)
-@@ -125,6 +134,9 @@
+@@ -125,6 +134,9 @@ static void __cpuinit r4k_blast_dcache_s
  {
        unsigned long dc_lsize = cpu_dcache_line_size();
  
@@ -53,7 +53,7 @@
        if (dc_lsize == 0)
                r4k_blast_dcache = (void *)cache_noop;
        else if (dc_lsize == 16)
-@@ -630,6 +642,8 @@
+@@ -630,6 +642,8 @@ static void local_r4k_flush_cache_sigtra
        unsigned long addr = (unsigned long) arg;
  
        R4600_HIT_CACHEOP_WAR_IMPL;
@@ -62,7 +62,7 @@
        if (dc_lsize)
                protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
        if (!cpu_icache_snoops_remote_store && scache_size)
-@@ -1215,6 +1229,17 @@
+@@ -1215,6 +1229,17 @@ static void __cpuinit coherency_setup(vo
         * silly idea of putting something else there ...
         */
        switch (current_cpu_type()) {
@@ -80,7 +80,7 @@
        case CPU_R4000PC:
        case CPU_R4000SC:
        case CPU_R4000MC:
-@@ -1254,6 +1279,15 @@
+@@ -1254,6 +1279,15 @@ void __cpuinit r4k_cache_init(void)
                break;
        }
  
@@ -96,7 +96,7 @@
        probe_pcache();
        setup_scache();
  
-@@ -1303,5 +1337,13 @@
+@@ -1303,5 +1337,13 @@ void __cpuinit r4k_cache_init(void)
        build_clear_page();
        build_copy_page();
        local_r4k___flush_cache_all(NULL);
  }
 --- a/arch/mips/mm/tlbex.c
 +++ b/arch/mips/mm/tlbex.c
-@@ -677,6 +677,9 @@
+@@ -677,6 +677,9 @@ static void __cpuinit build_r4000_tlb_re
                /* No need for uasm_i_nop */
        }
  
  #ifdef CONFIG_64BIT
        build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
  #else
-@@ -1084,6 +1087,9 @@
+@@ -1084,6 +1087,9 @@ build_r4000_tlbchange_handler_head(u32 *
                                   struct uasm_reloc **r, unsigned int pte,
                                   unsigned int ptr)
  {
  /*
   * This macro return a properly sign-extended address suitable as base address
   * for indexed cache operations.  Two issues here:
-@@ -150,6 +164,7 @@
+@@ -150,6 +164,7 @@ static inline void flush_icache_line_ind
  static inline void flush_dcache_line_indexed(unsigned long addr)
  {
        __dflush_prologue
        cache_op(Index_Writeback_Inv_D, addr);
        __dflush_epilogue
  }
-@@ -169,6 +184,7 @@
+@@ -169,6 +184,7 @@ static inline void flush_icache_line(uns
  static inline void flush_dcache_line(unsigned long addr)
  {
        __dflush_prologue
        cache_op(Hit_Writeback_Inv_D, addr);
        __dflush_epilogue
  }
-@@ -176,6 +192,7 @@
+@@ -176,6 +192,7 @@ static inline void flush_dcache_line(uns
  static inline void invalidate_dcache_line(unsigned long addr)
  {
        __dflush_prologue
        cache_op(Hit_Invalidate_D, addr);
        __dflush_epilogue
  }
-@@ -208,6 +225,7 @@
+@@ -208,6 +225,7 @@ static inline void flush_scache_line(uns
   */
  static inline void protected_flush_icache_line(unsigned long addr)
  {
        protected_cache_op(Hit_Invalidate_I, addr);
  }
  
-@@ -219,6 +237,7 @@
+@@ -219,6 +237,7 @@ static inline void protected_flush_icach
   */
  static inline void protected_writeback_dcache_line(unsigned long addr)
  {
        protected_cache_op(Hit_Writeback_Inv_D, addr);
  }
  
-@@ -339,8 +358,52 @@
+@@ -339,8 +358,52 @@ static inline void invalidate_tcache_pag
                : "r" (base),                                           \
                  "i" (op));
  
  static inline void blast_##pfx##cache##lsize(void)                    \
  {                                                                     \
        unsigned long start = INDEX_BASE;                               \
-@@ -352,6 +415,7 @@
+@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##l
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        for (ws = 0; ws < ws_end; ws += ws_inc)                         \
                for (addr = start; addr < end; addr += lsize * 32)      \
                        cache##lsize##_unroll32(addr|ws, indexop);      \
-@@ -366,6 +430,7 @@
+@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##l
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        do {                                                            \
                cache##lsize##_unroll32(start, hitop);                  \
                start += lsize * 32;                                    \
-@@ -384,6 +449,8 @@
+@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##l
                               current_cpu_data.desc.waybit;            \
        unsigned long ws, addr;                                         \
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        for (ws = 0; ws < ws_end; ws += ws_inc)                         \
-@@ -393,35 +460,37 @@
+@@ -393,35 +460,37 @@ static inline void blast_##pfx##cache##l
        __##pfx##flush_epilogue                                         \
  }
  
                prot##cache_op(hitop, addr);                            \
                if (addr == aend)                                       \
                        break;                                          \
-@@ -431,13 +500,13 @@
+@@ -431,13 +500,13 @@ static inline void prot##blast_##pfx##ca
        __##pfx##flush_epilogue                                         \
  }
  
index 725fb3c..5fe38aa 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/mm/init.c
 +++ b/arch/mips/mm/init.c
-@@ -211,7 +211,7 @@
+@@ -211,7 +211,7 @@ void copy_user_highpage(struct page *to,
        void *vfrom, *vto;
  
        vto = kmap_atomic(to, KM_USER1);
@@ -9,7 +9,7 @@
            page_mapped(from) && !Page_dcache_dirty(from)) {
                vfrom = kmap_coherent(from, vaddr);
                copy_page(vto, vfrom);
-@@ -235,7 +235,7 @@
+@@ -235,7 +235,7 @@ void copy_to_user_page(struct vm_area_st
        struct page *page, unsigned long vaddr, void *dst, const void *src,
        unsigned long len)
  {
@@ -18,7 +18,7 @@
            page_mapped(page) && !Page_dcache_dirty(page)) {
                void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
                memcpy(vto, src, len);
-@@ -255,7 +255,7 @@
+@@ -255,7 +255,7 @@ void copy_from_user_page(struct vm_area_
        struct page *page, unsigned long vaddr, void *dst, const void *src,
        unsigned long len)
  {
@@ -57,7 +57,7 @@
   * I-Cache snoops remote store.  This only matters on SMP.  Some multiprocessors
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -484,7 +484,7 @@
+@@ -484,7 +484,7 @@ static inline void local_r4k_flush_cache
                 * Use kmap_coherent or kmap_atomic to do flushes for
                 * another ASID than the current one.
                 */
@@ -66,7 +66,7 @@
                        vaddr = kmap_coherent(page, addr);
                else
                        vaddr = kmap_atomic(page, KM_USER0);
-@@ -505,7 +505,7 @@
+@@ -505,7 +505,7 @@ static inline void local_r4k_flush_cache
        }
  
        if (vaddr) {
index 55c08fe..6669fba 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-2.6.25.17/drivers/net/b44.c
-===================================================================
---- linux-2.6.25.17.orig/drivers/net/b44.c     2008-10-16 23:13:19.000000000 +0200
-+++ linux-2.6.25.17/drivers/net/b44.c  2008-11-02 12:13:38.000000000 +0100
+--- a/drivers/net/b44.c
++++ b/drivers/net/b44.c
 @@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp)
                }
        }
index 8658d6d..6a4341f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/ssb/driver_chipcommon.c
 +++ b/drivers/ssb/driver_chipcommon.c
-@@ -270,6 +270,8 @@
+@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipco
  void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
                               u32 *plltype, u32 *n, u32 *m)
  {
@@ -9,7 +9,7 @@
        *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
        *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
        switch (*plltype) {
-@@ -293,6 +295,8 @@
+@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_
  void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
                                 u32 *plltype, u32 *n, u32 *m)
  {
@@ -20,7 +20,7 @@
        switch (*plltype) {
 --- a/drivers/ssb/driver_mipscore.c
 +++ b/drivers/ssb/driver_mipscore.c
-@@ -161,6 +161,8 @@
+@@ -161,6 +161,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m
  
        if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) {
                rate = 200000000;
@@ -31,7 +31,7 @@
        }
 --- a/drivers/ssb/main.c
 +++ b/drivers/ssb/main.c
-@@ -867,6 +867,8 @@
+@@ -867,6 +867,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
  
        if (bus->chip_id == 0x5365) {
                rate = 100000000;
index f599ca7..856651b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/usb/host/ohci-ssb.c
 +++ b/drivers/usb/host/ohci-ssb.c
-@@ -142,10 +142,59 @@
+@@ -142,10 +142,59 @@ static int ssb_ohci_attach(struct ssb_de
        int err = -ENOMEM;
        u32 tmp, flags = 0;
  
@@ -62,7 +62,7 @@
  
        hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev,
                        dev->dev->bus_id);
-@@ -236,6 +285,7 @@
+@@ -236,6 +285,7 @@ static int ssb_ohci_resume(struct ssb_de
  static const struct ssb_device_id ssb_ohci_table[] = {
        SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV),
        SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV),
index 21fac47..afeec9c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/usb/host/ohci-ssb.c
 +++ b/drivers/usb/host/ohci-ssb.c
-@@ -195,6 +195,11 @@
+@@ -195,6 +195,11 @@ static int ssb_ohci_attach(struct ssb_de
        else
                ssb_device_enable(dev, 0);
  
index a2c27ab..505e8aa 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/mm/init.c
 +++ b/arch/mips/mm/init.c
-@@ -205,32 +205,6 @@
+@@ -205,32 +205,6 @@ void kunmap_coherent(void)
        preempt_check_resched();
  }
  
@@ -43,7 +43,7 @@
  #include <asm/io.h>
  
  /*
-@@ -64,13 +65,16 @@
+@@ -64,13 +65,16 @@ static inline void clear_user_page(void 
                flush_data_cache_page((unsigned long)addr);
  }
  
index fb69cc4..7153871 100644 (file)
@@ -27,7 +27,7 @@
  void plat_irq_dispatch(void)
  {
        u32 cause;
-@@ -53,3 +63,19 @@
+@@ -53,3 +63,19 @@ void __init arch_init_irq(void)
  {
        mips_cpu_irq_init();
  }
        while (1)
                cpu_relax();
  }
-@@ -50,12 +79,13 @@
+@@ -50,12 +79,13 @@ static void bcm47xx_machine_halt(void)
  {
        /* Disable interrupts and watchdog and spin forever */
        local_irq_disable();
  {
        int i = 0;
  
-@@ -72,52 +102,141 @@
+@@ -72,52 +102,141 @@ static void str2eaddr(char *str, char *d
        }
  }
  
  
  static char nvram_buf[NVRAM_SPACE];
  static int cfe_env;
-@@ -36,7 +36,7 @@
+@@ -36,7 +36,7 @@ extern char *cfe_env_get(char *nv_buf, c
  /* Probe for NVRAM header */
  static void __init early_nvram_init(void)
  {
 +obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -54,6 +54,7 @@
+@@ -54,6 +54,7 @@ config BCM47XX
        select SSB_DRIVER_MIPS
        select SSB_DRIVER_EXTIF
        select SSB_DRIVER_PCICORE
index a2e4c2b..59f4c1f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/gen_initramfs_list.sh
 +++ b/scripts/gen_initramfs_list.sh
-@@ -287,7 +287,7 @@
+@@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then
        if [ "${is_cpio_compressed}" = "compressed" ]; then
                cat ${cpio_tfile} > ${output_file}
        else
@@ -11,7 +11,7 @@
  fi
 --- a/init/initramfs.c
 +++ b/init/initramfs.c
-@@ -441,6 +441,69 @@
+@@ -441,6 +441,69 @@ static void __init flush_window(void)
        outcnt = 0;
  }
  
@@ -81,7 +81,7 @@
  static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
  {
        int written;
-@@ -475,12 +538,28 @@
+@@ -475,12 +538,28 @@ static char * __init unpack_to_rootfs(ch
                inptr = 0;
                outcnt = 0;             /* bytes in output buffer */
                bytes_out = 0;
index 21e89cd..9071b7c 100644 (file)
@@ -4,7 +4,7 @@ Remove this sanity check for now until we find a better solution.
 --mb
 --- a/arch/mips/pci/pci.c
 +++ b/arch/mips/pci/pci.c
-@@ -182,12 +182,10 @@
+@@ -182,12 +182,10 @@ static int pcibios_enable_resources(stru
                if ((idx == PCI_ROM_RESOURCE) &&
                                (!(r->flags & IORESOURCE_ROM_ENABLE)))
                        continue;
index d2271dd..af251d5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/ssb/main.c
 +++ b/drivers/ssb/main.c
-@@ -1173,7 +1173,9 @@
+@@ -1173,7 +1173,9 @@ static int __init ssb_modinit(void)
  /* ssb must be initialized after PCI but before the ssb drivers.
   * That means we must use some initcall between subsys_initcall
   * and device_initcall. */
index 5f5e480..72505d3 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Michael Buesch <mb@bu3sch.de>
 
 --- a/drivers/ssb/driver_pcicore.c
 +++ b/drivers/ssb/driver_pcicore.c
-@@ -519,6 +519,13 @@
+@@ -519,6 +519,13 @@ int ssb_pcicore_dev_irqvecs_enable(struc
        int err = 0;
        u32 tmp;
  
index c7b1b26..f96b4d2 100644 (file)
@@ -1,7 +1,7 @@
 Add support for 8bit reads/writes to SSB.
 --- a/drivers/ssb/main.c
 +++ b/drivers/ssb/main.c
-@@ -508,6 +508,14 @@
+@@ -508,6 +508,14 @@ error:
        return err;
  }
  
@@ -16,7 +16,7 @@ Add support for 8bit reads/writes to SSB.
  static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -524,6 +532,14 @@
+@@ -524,6 +532,14 @@ static u32 ssb_ssb_read32(struct ssb_dev
        return readl(bus->mmio + offset);
  }
  
@@ -31,7 +31,7 @@ Add support for 8bit reads/writes to SSB.
  static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -542,8 +558,10 @@
+@@ -542,8 +558,10 @@ static void ssb_ssb_write32(struct ssb_d
  
  /* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
  static const struct ssb_bus_ops ssb_ssb_ops = {
@@ -44,7 +44,7 @@ Add support for 8bit reads/writes to SSB.
  };
 --- a/drivers/ssb/pci.c
 +++ b/drivers/ssb/pci.c
-@@ -577,6 +577,19 @@
+@@ -577,6 +577,19 @@ static inline int ssb_pci_assert_buspowe
  }
  #endif /* DEBUG */
  
@@ -64,7 +64,7 @@ Add support for 8bit reads/writes to SSB.
  static u16 ssb_pci_read16(struct ssb_device *dev, u16 offset)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -603,6 +616,19 @@
+@@ -603,6 +616,19 @@ static u32 ssb_pci_read32(struct ssb_dev
        return ioread32(bus->mmio + offset);
  }
  
@@ -84,7 +84,7 @@ Add support for 8bit reads/writes to SSB.
  static void ssb_pci_write16(struct ssb_device *dev, u16 offset, u16 value)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -631,8 +657,10 @@
+@@ -631,8 +657,10 @@ static void ssb_pci_write32(struct ssb_d
  
  /* Not "static", as it's used in main.c */
  const struct ssb_bus_ops ssb_pci_ops = {
@@ -97,7 +97,7 @@ Add support for 8bit reads/writes to SSB.
  };
 --- a/drivers/ssb/pcmcia.c
 +++ b/drivers/ssb/pcmcia.c
-@@ -172,6 +172,22 @@
+@@ -172,6 +172,22 @@ static int select_core_and_segment(struc
        return 0;
  }
  
@@ -120,7 +120,7 @@ Add support for 8bit reads/writes to SSB.
  static u16 ssb_pcmcia_read16(struct ssb_device *dev, u16 offset)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -206,6 +222,20 @@
+@@ -206,6 +222,20 @@ static u32 ssb_pcmcia_read32(struct ssb_
        return (lo | (hi << 16));
  }
  
@@ -141,7 +141,7 @@ Add support for 8bit reads/writes to SSB.
  static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value)
  {
        struct ssb_bus *bus = dev->bus;
-@@ -238,8 +268,10 @@
+@@ -238,8 +268,10 @@ static void ssb_pcmcia_write32(struct ss
  
  /* Not "static", as it's used in main.c */
  const struct ssb_bus_ops ssb_pcmcia_ops = {
@@ -154,7 +154,7 @@ Add support for 8bit reads/writes to SSB.
  };
 --- a/include/linux/ssb/ssb.h
 +++ b/include/linux/ssb/ssb.h
-@@ -72,8 +72,10 @@
+@@ -72,8 +72,10 @@ struct ssb_device;
  /* Lowlevel read/write operations on the device MMIO.
   * Internal, don't use that outside of ssb. */
  struct ssb_bus_ops {
@@ -165,7 +165,7 @@ Add support for 8bit reads/writes to SSB.
        void (*write16)(struct ssb_device *dev, u16 offset, u16 value);
        void (*write32)(struct ssb_device *dev, u16 offset, u32 value);
  };
-@@ -348,6 +350,10 @@
+@@ -348,6 +350,10 @@ void ssb_device_disable(struct ssb_devic
  
  
  /* Device MMIO register read/write functions. */
@@ -176,7 +176,7 @@ Add support for 8bit reads/writes to SSB.
  static inline u16 ssb_read16(struct ssb_device *dev, u16 offset)
  {
        return dev->ops->read16(dev, offset);
-@@ -356,6 +362,10 @@
+@@ -356,6 +362,10 @@ static inline u32 ssb_read32(struct ssb_
  {
        return dev->ops->read32(dev, offset);
  }
index 1ba199f..8b0445f 100644 (file)
@@ -21,7 +21,7 @@ This is an ugly hack and needs to be rewritten before going upstream.
  #define PCI_ASSIGN_ALL_BUSSES 1
  
  unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES;
-@@ -75,8 +86,32 @@
+@@ -75,8 +86,32 @@ pcibios_align_resource(void *data, struc
        res->start = start;
  }
  
@@ -55,7 +55,7 @@ This is an ugly hack and needs to be rewritten before going upstream.
        if (request_resource(&iomem_resource, hose->mem_resource) < 0)
                goto out;
        if (request_resource(&ioport_resource, hose->io_resource) < 0) {
-@@ -84,9 +119,6 @@
+@@ -84,9 +119,6 @@ void __devinit register_pci_controller(s
                goto out;
        }
  
@@ -65,7 +65,7 @@ This is an ugly hack and needs to be rewritten before going upstream.
        /*
         * Do not panic here but later - this might hapen before console init.
         */
-@@ -94,41 +126,47 @@
+@@ -94,41 +126,47 @@ void __devinit register_pci_controller(s
                printk(KERN_WARNING
                       "registering PCI controller with io_map_base unset\n");
        }
@@ -136,7 +136,7 @@ This is an ugly hack and needs to be rewritten before going upstream.
  
        /* Scan all of the recorded PCI controllers.  */
        for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
-@@ -157,6 +195,7 @@
+@@ -157,6 +195,7 @@ static int __init pcibios_init(void)
        if (!pci_probe_only)
                pci_assign_unassigned_resources();
        pci_fixup_irqs(common_swizzle, pcibios_map_irq);
@@ -146,7 +146,7 @@ This is an ugly hack and needs to be rewritten before going upstream.
  }
 --- a/drivers/ssb/main.c
 +++ b/drivers/ssb/main.c
-@@ -1191,9 +1191,7 @@
+@@ -1191,9 +1191,7 @@ static int __init ssb_modinit(void)
  /* ssb must be initialized after PCI but before the ssb drivers.
   * That means we must use some initcall between subsys_initcall
   * and device_initcall. */
index ae97cf6..1ed53e5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/ssb/Kconfig
 +++ b/drivers/ssb/Kconfig
-@@ -125,4 +125,13 @@
+@@ -125,4 +125,13 @@ config SSB_DRIVER_EXTIF
  
          If unsure, say N
  
@@ -16,7 +16,7 @@
  endmenu
 --- a/drivers/ssb/Makefile
 +++ b/drivers/ssb/Makefile
-@@ -11,6 +11,7 @@
+@@ -11,6 +11,7 @@ ssb-y                                        += driver_chipcommon.o
  ssb-$(CONFIG_SSB_DRIVER_MIPS)         += driver_mipscore.o
  ssb-$(CONFIG_SSB_DRIVER_EXTIF)                += driver_extif.o
  ssb-$(CONFIG_SSB_DRIVER_PCICORE)      += driver_pcicore.o
 +#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
 --- a/drivers/ssb/driver_pcicore.c
 +++ b/drivers/ssb/driver_pcicore.c
-@@ -60,78 +60,6 @@
+@@ -60,78 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);
  /* Core to access the external PCI config space. Can only have one. */
  static struct ssb_pcicore *extpci_core;
  
  static u32 get_cfgspace_addr(struct ssb_pcicore *pc,
                             unsigned int bus, unsigned int dev,
                             unsigned int func, unsigned int off)
-@@ -320,6 +248,95 @@
+@@ -320,6 +248,95 @@ static struct pci_controller ssb_pcicore
        .mem_offset     = 0x24000000,
  };
  
  
  #include "ssb_private.h"
  
-@@ -130,3 +133,90 @@
+@@ -130,3 +133,90 @@ u32 ssb_gpio_polarity(struct ssb_bus *bu
        return res;
  }
  EXPORT_SYMBOL(ssb_gpio_polarity);
 +}
 --- a/include/linux/ssb/ssb.h
 +++ b/include/linux/ssb/ssb.h
-@@ -426,5 +426,12 @@
+@@ -426,5 +426,12 @@ extern int ssb_bus_powerup(struct ssb_bu
  extern u32 ssb_admatch_base(u32 adm);
  extern u32 ssb_admatch_size(u32 adm);
  
  #ifdef CONFIG_SSB_DRIVER_PCICORE
  
  /* PCI core registers. */
-@@ -88,6 +93,9 @@
+@@ -88,6 +93,9 @@ extern void ssb_pcicore_init(struct ssb_
  extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
                                          struct ssb_device *dev);
  
  
  #else /* CONFIG_SSB_DRIVER_PCICORE */
  
-@@ -107,5 +115,16 @@
+@@ -107,5 +115,16 @@ int ssb_pcicore_dev_irqvecs_enable(struc
        return 0;
  }
  
  #include <linux/dma-mapping.h>
  #include <linux/pci.h>
  
-@@ -68,6 +69,25 @@
+@@ -68,6 +69,25 @@ found:
  }
  #endif /* CONFIG_SSB_PCIHOST */
  
  static struct ssb_device *ssb_device_get(struct ssb_device *dev)
  {
        if (dev)
-@@ -1181,7 +1201,14 @@
+@@ -1181,7 +1201,14 @@ static int __init ssb_modinit(void)
        err = b43_pci_ssb_bridge_init();
        if (err) {
                ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
                /* don't fail SSB init because of this */
                err = 0;
        }
-@@ -1195,6 +1222,7 @@
+@@ -1195,6 +1222,7 @@ fs_initcall(ssb_modinit);
  
  static void __exit ssb_modexit(void)
  {
  }
 --- a/drivers/ssb/ssb_private.h
 +++ b/drivers/ssb/ssb_private.h
-@@ -118,6 +118,8 @@
+@@ -118,6 +118,8 @@ extern u32 ssb_calc_clock_rate(u32 pllty
  extern int ssb_devices_freeze(struct ssb_bus *bus);
  extern int ssb_devices_thaw(struct ssb_bus *bus);
  extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
  
  #include <net/checksum.h>
  #include <net/ip.h>
-@@ -425,8 +426,9 @@
+@@ -425,8 +426,9 @@ static void _tw32_flush(struct tg3 *tp, 
  static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
  {
        tp->write32_mbox(tp, off, val);
                tp->read32_mbox(tp, off);
  }
  
-@@ -706,7 +708,7 @@
+@@ -706,7 +708,7 @@ static void tg3_switch_clocks(struct tg3
  
  #define PHY_BUSY_LOOPS        5000
  
  {
        u32 frame_val;
        unsigned int loops;
-@@ -720,7 +722,7 @@
+@@ -720,7 +722,7 @@ static int tg3_readphy(struct tg3 *tp, i
  
        *val = 0x0;
  
                      MI_COM_PHY_ADDR_MASK);
        frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
                      MI_COM_REG_ADDR_MASK);
-@@ -755,7 +757,12 @@
+@@ -755,7 +757,12 @@ static int tg3_readphy(struct tg3 *tp, i
        return ret;
  }
  
  {
        u32 frame_val;
        unsigned int loops;
-@@ -771,7 +778,7 @@
+@@ -771,7 +778,7 @@ static int tg3_writephy(struct tg3 *tp, 
                udelay(80);
        }
  
                      MI_COM_PHY_ADDR_MASK);
        frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
                      MI_COM_REG_ADDR_MASK);
-@@ -804,6 +811,11 @@
+@@ -804,6 +811,11 @@ static int tg3_writephy(struct tg3 *tp, 
        return ret;
  }
  
  static void tg3_phydsp_write(struct tg3 *tp, u32 reg, u32 val)
  {
        tg3_writephy(tp, MII_TG3_DSP_ADDRESS, reg);
-@@ -2250,6 +2262,14 @@
+@@ -2250,6 +2262,14 @@ static int tg3_setup_copper_phy(struct t
                        }
                }
  
                if (current_link_up == 1 &&
                    tp->link_config.active_duplex == DUPLEX_FULL)
                        tg3_setup_flow_control(tp, lcl_adv, rmt_adv);
-@@ -5197,6 +5217,11 @@
+@@ -5197,6 +5217,11 @@ static int tg3_poll_fw(struct tg3 *tp)
        int i;
        u32 val;
  
        if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
                /* Wait up to 20ms for init done. */
                for (i = 0; i < 200; i++) {
-@@ -5435,6 +5460,14 @@
+@@ -5435,6 +5460,14 @@ static int tg3_chip_reset(struct tg3 *tp
                tw32(0x5000, 0x400);
        }
  
        tw32(GRC_MODE, tp->grc_mode);
  
        if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
-@@ -5704,9 +5737,12 @@
+@@ -5704,9 +5737,12 @@ static int tg3_halt_cpu(struct tg3 *tp, 
                return -ENODEV;
        }
  
        return 0;
  }
  
-@@ -5787,6 +5823,11 @@
+@@ -5787,6 +5823,11 @@ static int tg3_load_5701_a0_firmware_fix
        struct fw_info info;
        int err, i;
  
        info.text_base = TG3_FW_TEXT_ADDR;
        info.text_len = TG3_FW_TEXT_LEN;
        info.text_data = &tg3FwText[0];
-@@ -6345,6 +6386,11 @@
+@@ -6345,6 +6386,11 @@ static int tg3_load_tso_firmware(struct 
        unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
        int err, i;
  
        if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
                return 0;
  
-@@ -7306,6 +7352,11 @@
+@@ -7306,6 +7352,11 @@ static void tg3_timer(unsigned long __op
  
        spin_lock(&tp->lock);
  
        if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
                /* All of this garbage is because when using non-tagged
                 * IRQ status the mailbox/status_block protocol the chip
-@@ -8906,6 +8957,11 @@
+@@ -8906,6 +8957,11 @@ static int tg3_test_nvram(struct tg3 *tp
        __le32 *buf;
        int i, j, k, err = 0, size;
  
        if (tg3_nvram_read_swab(tp, 0, &magic) != 0)
                return -EIO;
  
-@@ -9689,7 +9745,7 @@
+@@ -9689,7 +9745,7 @@ static int tg3_ioctl(struct net_device *
                        return -EAGAIN;
  
                spin_lock_bh(&tp->lock);
                spin_unlock_bh(&tp->lock);
  
                data->val_out = mii_regval;
-@@ -9708,7 +9764,7 @@
+@@ -9708,7 +9764,7 @@ static int tg3_ioctl(struct net_device *
                        return -EAGAIN;
  
                spin_lock_bh(&tp->lock);
                spin_unlock_bh(&tp->lock);
  
                return err;
-@@ -10177,6 +10233,12 @@
+@@ -10177,6 +10233,12 @@ static void __devinit tg3_get_5906_nvram
  /* Chips other than 5700/5701 use the NVRAM for fetching info. */
  static void __devinit tg3_nvram_init(struct tg3 *tp)
  {
        tw32_f(GRC_EEPROM_ADDR,
             (EEPROM_ADDR_FSM_RESET |
              (EEPROM_DEFAULT_CLOCK_PERIOD <<
-@@ -10317,6 +10379,9 @@
+@@ -10317,6 +10379,9 @@ static int tg3_nvram_read(struct tg3 *tp
  {
        int ret;
  
        if (!(tp->tg3_flags & TG3_FLAG_NVRAM))
                return tg3_nvram_read_using_eeprom(tp, offset, val);
  
-@@ -10563,6 +10628,9 @@
+@@ -10563,6 +10628,9 @@ static int tg3_nvram_write_block(struct 
  {
        int ret;
  
        if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
                tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
                       ~GRC_LCLCTRL_GPIO_OUTPUT1);
-@@ -11610,7 +11678,6 @@
+@@ -11610,7 +11678,6 @@ static int __devinit tg3_get_invariants(
                tp->write32 = tg3_write_flush_reg32;
        }
  
        if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) ||
            (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) {
                tp->write32_tx_mbox = tg3_write32_tx_mbox;
-@@ -11646,6 +11713,11 @@
+@@ -11646,6 +11713,11 @@ static int __devinit tg3_get_invariants(
              GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
                tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
  
        /* Get eeprom hw config before calling tg3_set_power_state().
         * In particular, the TG3_FLG2_IS_NIC flag must be
         * determined before calling tg3_set_power_state() so that
-@@ -12017,6 +12089,10 @@
+@@ -12017,6 +12089,10 @@ static int __devinit tg3_get_device_addr
        }
  
        if (!is_valid_ether_addr(&dev->dev_addr[0])) {
  #ifdef CONFIG_SPARC
                if (!tg3_get_default_macaddr_sparc(tp))
                        return 0;
-@@ -12508,6 +12584,7 @@
+@@ -12508,6 +12584,7 @@ static char * __devinit tg3_phy_string(s
        case PHY_ID_BCM5704:    return "5704";
        case PHY_ID_BCM5705:    return "5705";
        case PHY_ID_BCM5750:    return "5750";
        case PHY_ID_BCM5752:    return "5752";
        case PHY_ID_BCM5714:    return "5714";
        case PHY_ID_BCM5780:    return "5780";
-@@ -12695,6 +12772,13 @@
+@@ -12695,6 +12772,13 @@ static int __devinit tg3_init_one(struct
                tp->msg_enable = tg3_debug;
        else
                tp->msg_enable = TG3_DEF_MSG_ENABLE;
         * swapping.  DMA data byte swapping is controlled in the GRC_MODE
 --- a/drivers/net/tg3.h
 +++ b/drivers/net/tg3.h
-@@ -2477,6 +2477,9 @@
+@@ -2477,6 +2477,9 @@ struct tg3 {
  #define TG3_FLG3_ENABLE_APE           0x00000002
  #define TG3_FLG3_5761_5784_AX_FIXES   0x00000004
  #define TG3_FLG3_5701_DMA_BUG         0x00000008
  
        struct timer_list               timer;
        u16                             timer_counter;
-@@ -2532,6 +2535,7 @@
+@@ -2532,6 +2535,7 @@ struct tg3 {
  #define PHY_ID_BCM5714                        0x60008340
  #define PHY_ID_BCM5780                        0x60008350
  #define PHY_ID_BCM5755                        0xbc050cc0
  #define PHY_ID_BCM5787                        0xbc050ce0
  #define PHY_ID_BCM5756                        0xbc050ed0
  #define PHY_ID_BCM5784                        0xbc050fa0
-@@ -2568,7 +2572,7 @@
+@@ -2568,7 +2572,7 @@ struct tg3 {
         (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
         (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
         (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \
        dma_addr_t                      stats_mapping;
 --- a/drivers/ssb/driver_mipscore.c
 +++ b/drivers/ssb/driver_mipscore.c
-@@ -212,6 +212,7 @@
+@@ -212,6 +212,7 @@ void ssb_mipscore_init(struct ssb_mipsco
                        /* fallthrough */
                case SSB_DEV_PCI:
                case SSB_DEV_ETHERNET:
index 59552ed..b06f08e 100644 (file)
@@ -1,7 +1,7 @@
 Add gpio_is_valid() for bcm47xx
 --- a/arch/mips/bcm47xx/gpio.c
 +++ b/arch/mips/bcm47xx/gpio.c
-@@ -77,3 +77,15 @@
+@@ -77,3 +77,15 @@ int bcm47xx_gpio_direction_output(unsign
  }
  EXPORT_SYMBOL_GPL(bcm47xx_gpio_direction_output);
  
@@ -19,7 +19,7 @@ Add gpio_is_valid() for bcm47xx
 +EXPORT_SYMBOL_GPL(bcm47xx_gpio_is_valid);
 --- a/include/asm-mips/mach-bcm47xx/gpio.h
 +++ b/include/asm-mips/mach-bcm47xx/gpio.h
-@@ -17,6 +17,7 @@
+@@ -17,6 +17,7 @@ extern int bcm47xx_gpio_get_value(unsign
  extern void bcm47xx_gpio_set_value(unsigned gpio, int value);
  extern int bcm47xx_gpio_direction_input(unsigned gpio);
  extern int bcm47xx_gpio_direction_output(unsigned gpio, int value);
@@ -27,7 +27,7 @@ Add gpio_is_valid() for bcm47xx
  
  static inline int gpio_request(unsigned gpio, const char *label)
  {
-@@ -52,6 +53,8 @@
+@@ -52,6 +53,8 @@ static inline int gpio_direction_output(
        return bcm47xx_gpio_direction_output(gpio, value);
  }
  
index e72f99e..63a71f0 100644 (file)
@@ -8,7 +8,7 @@
  
  const char *get_system_type(void)
  {
-@@ -40,65 +41,40 @@
+@@ -40,65 +41,40 @@ const char *get_system_type(void)
  
  void prom_putchar(char c)
  {
@@ -90,7