Merge branches 'arm', 'at91', 'bcmring', 'ep93xx', 'mach-types', 'misc' and 'w90x900...
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 12 Sep 2009 11:01:34 +0000 (12:01 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 12 Sep 2009 11:01:34 +0000 (12:01 +0100)
1  2  3  4  5  6  7 
MAINTAINERS
arch/arm/Kconfig
arch/arm/mach-at91/board-sam9g20ek.c
arch/arm/mach-at91/board-sam9rlek.c
drivers/amba/bus.c
drivers/video/Kconfig
drivers/video/atmel_lcdfb.c

diff --combined MAINTAINERS
@@@@@@@@ -603,11 -603,11 -603,28 -603,15 -603,11 -603,11 -603,11 +603,32 @@@@@@@@ L:    linux-arm-kernel@lists.arm.linux.org
       W:       http://maxim.org.za/at91_26.html
       S:       Maintained
       
++ ++++ARM/BCMRING ARM ARCHITECTURE
++ ++++P:       Leo Chen <leochen@broadcom.com>
++ ++++P:       Scott Branden <sbranden@broadcom.com>
++ ++++L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
++ ++++S:       Maintained
++ ++++F:       arch/arm/mach-bcmring
++ ++++
++ ++++ARM/BCMRING MTD NAND DRIVER
++ ++++P:       Leo Chen <leochen@broadcom.com>
++ ++++P:       Scott Branden <sbranden@broadcom.com>
++ ++++L:       linux-mtd@lists.infradead.org
++ ++++S:       Maintained
++ ++++F:       drivers/mtd/nand/bcm_umi_nand.c
++ ++++F:       drivers/mtd/nand/bcm_umi_bch.c
++ ++++F:       drivers/mtd/nand/bcm_umi_hamming.c
++ ++++F:       drivers/mtd/nand/nand_bcm_umi.h
++ ++++
       ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
--- ---P:       Lennert Buytenhek
--- ---M:       kernel@wantstofly.org
+++ +++P:       Hartley Sweeten
+++ +++M:       hsweeten@visionengravers.com
+++ +++P:       Ryan Mallon
+++ +++M:       ryan@bluewatersys.com
       L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
       S:       Maintained
+++ +++F:       arch/arm/mach-ep93xx/
+++ +++F:       arch/arm/mach-ep93xx/include/mach/
       
       ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
       P:       Lennert Buytenhek
@@@@@@@@ -867,12 -867,12 -884,12 -871,12 -867,12 -867,22 -867,12 +888,22 @@@@@@@@ M:    alex@shark-linux.d
       W:       http://www.shark-linux.de/shark.html
       S:       Maintained
       
+++++ +ARM/SAMSUNG ARM ARCHITECTURES
+++++ +P:       Ben Dooks
+++++ +M:       ben-linux@fluff.org
+++++ +L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W:       http://www.fluff.org/ben/linux/
+++++ +S:       Maintained
+++++ +F:       arch/arm/plat-s3c/
+++++ +F:       arch/arm/plat-s3c24xx/
+++++ +
       ARM/S3C2410 ARM ARCHITECTURE
       P:       Ben Dooks
       M:       ben-linux@fluff.org
       L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
       W:       http://www.fluff.org/ben/linux/
       S:       Maintained
+++++ +F:       arch/arm/mach-s3c2410/
       
       ARM/S3C2440 ARM ARCHITECTURE
       P:       Ben Dooks
@@@@@@@@ -880,6 -880,6 -897,6 -884,6 -880,6 -890,39 -880,6 +911,39 @@@@@@@@ M:  ben-linux@fluff.or
       L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
       W:       http://www.fluff.org/ben/linux/
       S:       Maintained
+++++ +F:       arch/arm/mach-s3c2440/
+++++ +
+++++ +ARM/S3C2442 ARM ARCHITECTURE
+++++ +P:       Ben Dooks
+++++ +M:       ben-linux@fluff.org
+++++ +L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W:       http://www.fluff.org/ben/linux/
+++++ +S:       Maintained
+++++ +F:       arch/arm/mach-s3c2442/
+++++ +
+++++ +ARM/S3C2443 ARM ARCHITECTURE
+++++ +P:       Ben Dooks
+++++ +M:       ben-linux@fluff.org
+++++ +L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W:       http://www.fluff.org/ben/linux/
+++++ +S:       Maintained
+++++ +F:       arch/arm/mach-s3c2443/
+++++ +
+++++ +ARM/S3C6400 ARM ARCHITECTURE
+++++ +P:       Ben Dooks
+++++ +M:       ben-linux@fluff.org
+++++ +L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W:       http://www.fluff.org/ben/linux/
+++++ +S:       Maintained
+++++ +F:       arch/arm/mach-s3c6400/
+++++ +
+++++ +ARM/S3C6410 ARM ARCHITECTURE
+++++ +P:       Ben Dooks
+++++ +M:       ben-linux@fluff.org
+++++ +L:       linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+++++ +W:       http://www.fluff.org/ben/linux/
+++++ +S:       Maintained
+++++ +F:       arch/arm/mach-s3c6410/
       
       ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
       P:       Lennert Buytenhek
@@@@@@@@ -2087,9 -2087,9 -2104,9 -2091,9 -2087,9 -2130,9 -2087,9 +2151,9 @@@@@@@@ F:    drivers/edac/i5400_edac.
       
       EDAC-I82975X
       P:       Ranganathan Desikan
----- -M:       rdesikan@jetzbroadband.com
+++++ +M:       ravi@jetztechnologies.com
       P:       Arvind R.
----- -M:       arvind@acarlab.com
+++++ +M:       arvind@jetztechnologies.com
       L:       bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
       W:       bluesmoke.sourceforge.net
       S:       Maintained
@@@@@@@@ -2808,7 -2808,7 -2825,7 -2812,7 -2808,7 -2851,9 -2808,7 +2872,9 @@@@@@@@ S:    Maintaine
       
       IA64 (Itanium) PLATFORM
       P:       Tony Luck
+++++ +P:       Fenghua Yu
       M:       tony.luck@intel.com
+++++ +M:       fenghua.yu@intel.com
       L:       linux-ia64@vger.kernel.org
       W:       http://www.ia64-linux.org/
       T:       git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git
@@@@@@@@ -2886,7 -2886,7 -2903,7 -2890,7 -2886,7 -2931,7 -2886,7 +2952,7 @@@@@@@@ P:    Dmitry Eremin-Soleniko
       M:       dbaryshkov@gmail.com
       P:       Sergey Lapin
       M:       slapin@ossfans.org
----- -L:       linux-zigbee-devel@lists.sourceforge.net
+++++ +L:       linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
       W:       http://apps.sourceforge.net/trac/linux-zigbee
       T:       git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
       S:       Maintained
@@@@@@@@ -4362,7 -4362,7 -4379,7 -4366,7 -4362,7 -4407,7 -4362,7 +4428,7 @@@@@@@@ W:    http://www.nongnu.org/orinoco
       S:       Maintained
       F:       drivers/net/wireless/orinoco/
       
----- -OSD LIBRARY
+++++ +OSD LIBRARY and FILESYSTEM
       P:       Boaz Harrosh
       M:       bharrosh@panasas.com
       P:       Benny Halevy
@@@@@@@@ -4371,6 -4371,6 -4388,6 -4375,6 -4371,6 -4416,9 -4371,6 +4437,9 @@@@@@@@ L:    osd-dev@open-osd.or
       W:       http://open-osd.org
       T:       git git://git.open-osd.org/open-osd.git
       S:       Maintained
+++++ +F:       drivers/scsi/osd/
+++++ +F:       drivers/include/scsi/osd_*
+++++ +F:       fs/exofs/
       
       P54 WIRELESS DRIVER
       P:       Michael Wu
@@@@@@@@ -5533,8 -5533,8 -5550,8 -5537,8 -5533,8 -5581,8 -5533,8 +5602,8 @@@@@@@@ F:    drivers/staging
       
       STARFIRE/DURALAN NETWORK DRIVER
       P:       Ion Badulescu
----- -M:       ionut@cs.columbia.edu
----- -S:       Maintained
+++++ +M:       ionut@badula.org
+++++ +S:       Odd Fixes
       F:       drivers/net/starfire*
       
       STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
@@@@@@@@ -5668,6 -5668,6 -5685,6 -5672,6 -5668,6 -5716,13 -5668,6 +5737,13 @@@@@@@@ F:  drivers/misc/tifm
       F:       drivers/mmc/host/tifm_sd.c
       F:       include/linux/tifm.h
       
+++++ +TI TWL4030 SERIES SOC CODEC DRIVER
+++++ +P:       Peter Ujfalusi
+++++ +M:       peter.ujfalusi@nokia.com
+++++ +L:       alsa-devel@alsa-project.org (moderated for non-subscribers)
+++++ +S:       Maintained
+++++ +F:       sound/soc/codecs/twl4030*
+++++ +
       TIPC NETWORK LAYER
       P:       Per Liden
       M:       per.liden@ericsson.com
@@@@@@@@ -5751,17 -5751,17 -5768,17 -5755,17 -5751,17 -5806,17 -5751,17 +5827,17 @@@@@@@@ P:    Jiri Kosin
       M:       trivial@kernel.org
       T:       git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
       S:       Maintained
----- -F:       drivers/char/tty_*
----- -F:       drivers/serial/serial_core.c
----- -F:       include/linux/serial_core.h
----- -F:       include/linux/serial.h
----- -F:       include/linux/tty.h
       
       TTY LAYER
       P:       Alan Cox
       M:       alan@lxorguk.ukuu.org.uk
       S:       Maintained
       T:       stgit http://zeniv.linux.org.uk/~alan/ttydev/
+++++ +F:       drivers/char/tty_*
+++++ +F:       drivers/serial/serial_core.c
+++++ +F:       include/linux/serial_core.h
+++++ +F:       include/linux/serial.h
+++++ +F:       include/linux/tty.h
       
       TULIP NETWORK DRIVERS
       P:       Grant Grundler
@@@@@@@@ -5799,7 -5799,7 -5816,7 -5803,7 -5799,7 -5854,7 -5799,7 +5875,7 @@@@@@@@ UBI FILE SYSTEM (UBIFS
       P:       Artem Bityutskiy
       M:       dedekind@infradead.org
       P:       Adrian Hunter
----- -M:       ext-adrian.hunter@nokia.com
+++++ +M:       adrian.hunter@nokia.com
       L:       linux-mtd@lists.infradead.org
       T:       git git://git.infradead.org/ubifs-2.6.git
       W:       http://www.linux-mtd.infradead.org/doc/ubifs.html
diff --combined arch/arm/Kconfig
@@@@@@@@ -217,7 -217,6 -217,6 -217,6 -217,6 -217,6 -217,6 +217,7 @@@@@@@@ config ARCH_REALVIE
        select ICST307
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
 ++++++ select ARCH_WANT_OPTIONAL_GPIOLIB
        help
          This enables support for ARM Ltd RealView boards.
       
@@@@@@@@ -230,7 -229,6 -229,6 -229,6 -229,6 -229,6 -229,6 +230,7 @@@@@@@@ config ARCH_VERSATIL
        select ICST307
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
 ++++++ select ARCH_WANT_OPTIONAL_GPIOLIB
        help
          This enables support for ARM Ltd Versatile board.
       
@@@@@@@@ -495,10 -493,10 -493,10 -493,10 -493,10 -493,10 -493,18 +495,18 @@@@@@@@ config ARCH_W90X90
        select CPU_ARM926T
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_GPIO
++++++  select HAVE_CLK
        select COMMON_CLKDEV
++++++  select GENERIC_TIME
++++++  select GENERIC_CLOCKEVENTS
        help
------          Support for Nuvoton (Winbond logic dept.) ARM9 processor,You
------          can login www.mcuos.com or www.nuvoton.com to know more.
++++++    Support for Nuvoton (Winbond logic dept.) ARM9 processor,
++++++    At present, the w90x900 has been renamed nuc900, regarding
++++++    the ARM series product line, you can login the following
++++++    link address to know more.
++++++ 
++++++    <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
++++++          ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
       
       config ARCH_PNX4008
        bool "Philips Nexperia PNX4008 Mobile"
@@@@@@@@ -639,6 -637,6 -637,18 -637,6 -637,6 -637,6 -645,6 +647,18 @@@@@@@@ config ARCH_OMA
        help
          Support for TI's OMAP platform (OMAP1 and OMAP2).
       
++ ++++config ARCH_BCMRING
++ ++++ bool "Broadcom BCMRING"
++ ++++ depends on MMU
++ ++++ select CPU_V6
++ ++++ select ARM_AMBA
++ ++++ select COMMON_CLKDEV
++ ++++ select GENERIC_TIME
++ ++++ select GENERIC_CLOCKEVENTS
++ ++++ select ARCH_WANT_OPTIONAL_GPIOLIB
++ ++++ help
++ ++++   Support for Broadcom's BCMRing platform.
++ ++++
       endchoice
       
       source "arch/arm/mach-clps711x/Kconfig"
@@@@@@@@ -732,6 -730,6 -742,8 -730,6 -730,6 -730,6 -738,6 +752,8 @@@@@@@@ source "arch/arm/mach-u300/Kconfig
       
       source "arch/arm/mach-w90x900/Kconfig"
       
++ ++++source "arch/arm/mach-bcmring/Kconfig"
++ ++++
       # Definitions to make life easier
       config ARCH_ACORN
        bool
@@@@@@@@ -1056,6 -1054,6 -1068,6 -1054,6 -1054,6 -1054,11 -1062,6 +1078,11 @@@@@@@@ config HIGHME
       
          If unsure, say n.
       
+++++ +config HIGHPTE
+++++ + bool "Allocate 2nd-level pagetables from highmem"
+++++ + depends on HIGHMEM
+++++ + depends on !OUTER_CACHE
+++++ +
       source "mm/Kconfig"
       
       config LEDS
       #include <linux/platform_device.h>
       #include <linux/spi/spi.h>
       #include <linux/spi/at73c213.h>
+++++ +#include <linux/gpio_keys.h>
+++++ +#include <linux/input.h>
       #include <linux/clk.h>
       
       #include <mach/hardware.h>
@@@@@@@@ -218,9 -218,10 -218,9 -218,9 -218,9 -220,59 -218,9 +220,60 @@@@@@@@ static struct gpio_led ek_leds[] = 
        }
       };
       
+++++ +
+++++ +/*
+++++ + * GPIO Buttons
+++++ + */
+++++ +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+++++ +static struct gpio_keys_button ek_buttons[] = {
+++++ + {
+++++ +         .gpio           = AT91_PIN_PA30,
+++++ +         .code           = BTN_3,
+++++ +         .desc           = "Button 3",
+++++ +         .active_low     = 1,
+++++ +         .wakeup         = 1,
+++++ + },
+++++ + {
+++++ +         .gpio           = AT91_PIN_PA31,
+++++ +         .code           = BTN_4,
+++++ +         .desc           = "Button 4",
+++++ +         .active_low     = 1,
+++++ +         .wakeup         = 1,
+++++ + }
+++++ +};
+++++ +
+++++ +static struct gpio_keys_platform_data ek_button_data = {
+++++ + .buttons        = ek_buttons,
+++++ + .nbuttons       = ARRAY_SIZE(ek_buttons),
+++++ +};
+++++ +
+++++ +static struct platform_device ek_button_device = {
+++++ + .name           = "gpio-keys",
+++++ + .id             = -1,
+++++ + .num_resources  = 0,
+++++ + .dev            = {
+++++ +         .platform_data  = &ek_button_data,
+++++ + }
+++++ +};
+++++ +
+++++ +static void __init ek_add_device_buttons(void)
+++++ +{
+++++ + at91_set_gpio_input(AT91_PIN_PA30, 1);  /* btn3 */
+++++ + at91_set_deglitch(AT91_PIN_PA30, 1);
+++++ + at91_set_gpio_input(AT91_PIN_PA31, 1);  /* btn4 */
+++++ + at91_set_deglitch(AT91_PIN_PA31, 1);
+++++ +
+++++ + platform_device_register(&ek_button_device);
+++++ +}
+++++ +#else
+++++ +static void __init ek_add_device_buttons(void) {}
+++++ +#endif
+++++ +
+++++ +
       static struct i2c_board_info __initdata ek_i2c_devices[] = {
        {
                I2C_BOARD_INFO("24c512", 0x50),
+ +++++         I2C_BOARD_INFO("wm8731", 0x1b),
        },
       };
       
@@@@@@@@ -245,6 -246,6 -245,6 -245,6 -245,6 -297,8 -245,6 +298,8 @@@@@@@@ static void __init ek_board_init(void
        at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
        /* LEDs */
        at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
+++++ + /* Push Buttons */
+++++ + ek_add_device_buttons();
        /* PCK0 provides MCLK to the WM8731 */
        at91_set_B_periph(AT91_PIN_PC1, 0);
        /* SSC (for WM8731) */
       #include <linux/spi/spi.h>
       #include <linux/fb.h>
       #include <linux/clk.h>
+ +++++#include <linux/input.h>
+ +++++#include <linux/gpio_keys.h>
       
       #include <video/atmel_lcdc.h>
       
@@@@@@@@ -186,19 -188,19 -186,19 -186,19 -186,19 -186,21 -186,19 +188,21 @@@@@@@@ static struct fb_monspecs at91fb_defaul
       static void at91_lcdc_power_control(int on)
       {
        if (on)
----- -         at91_set_gpio_value(AT91_PIN_PA30, 0);  /* power up */
+++++ +         at91_set_gpio_value(AT91_PIN_PC1, 0);   /* power up */
        else
----- -         at91_set_gpio_value(AT91_PIN_PA30, 1);  /* power down */
+++++ +         at91_set_gpio_value(AT91_PIN_PC1, 1);   /* power down */
       }
       
       /* Driver datas */
       static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
+++++ + .lcdcon_is_backlight            = true,
        .default_bpp                    = 16,
        .default_dmacon                 = ATMEL_LCDC_DMAEN,
        .default_lcdcon2                = AT91SAM9RL_DEFAULT_LCDCON2,
        .default_monspecs               = &at91fb_default_monspecs,
        .atmel_lcdfb_power_control      = at91_lcdc_power_control,
        .guard_time                     = 1,
+++++ + .lcd_wiring_mode                = ATMEL_LCDC_WIRING_RGB,
       };
       
       #else
@@@@@@@@ -206,6 -208,79 -206,6 -206,6 -206,6 -208,6 -206,6 +210,79 @@@@@@@@ static struct atmel_lcdfb_info __initda
       #endif
       
       
+ +++++/*
+ +++++ * LEDs
+ +++++ */
+ +++++static struct gpio_led ek_leds[] = {
+ +++++ {       /* "bottom" led, green, userled1 to be defined */
+ +++++         .name                   = "ds1",
+ +++++         .gpio                   = AT91_PIN_PD15,
+ +++++         .active_low             = 1,
+ +++++         .default_trigger        = "none",
+ +++++ },
+ +++++ {       /* "bottom" led, green, userled2 to be defined */
+ +++++         .name                   = "ds2",
+ +++++         .gpio                   = AT91_PIN_PD16,
+ +++++         .active_low             = 1,
+ +++++         .default_trigger        = "none",
+ +++++ },
+ +++++ {       /* "power" led, yellow */
+ +++++         .name                   = "ds3",
+ +++++         .gpio                   = AT91_PIN_PD14,
+ +++++         .default_trigger        = "heartbeat",
+ +++++ }
+ +++++};
+ +++++
+ +++++
+ +++++/*
+ +++++ * GPIO Buttons
+ +++++ */
+ +++++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+ +++++static struct gpio_keys_button ek_buttons[] = {
+ +++++ {
+ +++++         .gpio           = AT91_PIN_PB0,
+ +++++         .code           = BTN_2,
+ +++++         .desc           = "Right Click",
+ +++++         .active_low     = 1,
+ +++++         .wakeup         = 1,
+ +++++ },
+ +++++ {
+ +++++         .gpio           = AT91_PIN_PB1,
+ +++++         .code           = BTN_1,
+ +++++         .desc           = "Left Click",
+ +++++         .active_low     = 1,
+ +++++         .wakeup         = 1,
+ +++++ }
+ +++++};
+ +++++
+ +++++static struct gpio_keys_platform_data ek_button_data = {
+ +++++ .buttons        = ek_buttons,
+ +++++ .nbuttons       = ARRAY_SIZE(ek_buttons),
+ +++++};
+ +++++
+ +++++static struct platform_device ek_button_device = {
+ +++++ .name           = "gpio-keys",
+ +++++ .id             = -1,
+ +++++ .num_resources  = 0,
+ +++++ .dev            = {
+ +++++         .platform_data  = &ek_button_data,
+ +++++ }
+ +++++};
+ +++++
+ +++++static void __init ek_add_device_buttons(void)
+ +++++{
+ +++++ at91_set_gpio_input(AT91_PIN_PB1, 1);   /* btn1 */
+ +++++ at91_set_deglitch(AT91_PIN_PB1, 1);
+ +++++ at91_set_gpio_input(AT91_PIN_PB0, 1);   /* btn2 */
+ +++++ at91_set_deglitch(AT91_PIN_PB0, 1);
+ +++++
+ +++++ platform_device_register(&ek_button_device);
+ +++++}
+ +++++#else
+ +++++static void __init ek_add_device_buttons(void) {}
+ +++++#endif
+ +++++
+ +++++
       static void __init ek_board_init(void)
       {
        /* Serial */
        at91_add_device_lcdc(&ek_lcdc_data);
        /* Touch Screen Controller */
        at91_add_device_tsadcc();
+ +++++ /* LEDs */
+ +++++ at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
+ +++++ /* Push Buttons */
+ +++++ ek_add_device_buttons();
       }
       
       MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
diff --combined drivers/amba/bus.c
@@@@@@@@ -204,10 -204,9 -204,9 -204,9 -204,9 -204,19 -204,9 +204,20 @@@@@@@@ static void amba_device_release(struct 
       int amba_device_register(struct amba_device *dev, struct resource *parent)
       {
        u32 pid, cid;
 ++++++ u32 size;
        void __iomem *tmp;
        int i, ret;
       
+++++ + device_initialize(&dev->dev);
+++++ +
+++++ + /*
+++++ +  * Copy from device_add
+++++ +  */
+++++ + if (dev->dev.init_name) {
+++++ +         dev_set_name(&dev->dev, "%s", dev->dev.init_name);
+++++ +         dev->dev.init_name = NULL;
+++++ + }
+++++ +
        dev->dev.release = amba_device_release;
        dev->dev.bus = &amba_bustype;
        dev->dev.dma_mask = &dev->dma_mask;
        if (ret)
                goto err_out;
       
 ------ tmp = ioremap(dev->res.start, SZ_4K);
 ++++++ /*
 ++++++  * Dynamically calculate the size of the resource
 ++++++  * and use this for iomap
 ++++++  */
 ++++++ size = resource_size(&dev->res);
 ++++++ tmp = ioremap(dev->res.start, size);
        if (!tmp) {
                ret = -ENOMEM;
                goto err_release;
        }
       
 ++++++ /*
 ++++++  * Read pid and cid based on size of resource
 ++++++  * they are located at end of region
 ++++++  */
        for (pid = 0, i = 0; i < 4; i++)
 ------         pid |= (readl(tmp + 0xfe0 + 4 * i) & 255) << (i * 8);
 ++++++         pid |= (readl(tmp + size - 0x20 + 4 * i) & 255) << (i * 8);
        for (cid = 0, i = 0; i < 4; i++)
 ------         cid |= (readl(tmp + 0xff0 + 4 * i) & 255) << (i * 8);
 ++++++         cid |= (readl(tmp + size - 0x10 + 4 * i) & 255) << (i * 8);
       
        iounmap(tmp);
       
                goto err_release;
        }
       
----- - ret = device_register(&dev->dev);
+++++ + ret = device_add(&dev->dev);
        if (ret)
                goto err_release;
       
@@@@@@@@ -353,14 -343,11 -343,11 -343,11 -343,11 -353,11 -343,11 +363,14 @@@@@@@@ amba_find_device(const char *busid, str
       int amba_request_regions(struct amba_device *dev, const char *name)
       {
        int ret = 0;
 ++++++ u32 size;
       
        if (!name)
                name = dev->dev.driver->name;
       
 ------ if (!request_mem_region(dev->res.start, SZ_4K, name))
 ++++++ size = resource_size(&dev->res);
 ++++++
 ++++++ if (!request_mem_region(dev->res.start, size, name))
                ret = -EBUSY;
       
        return ret;
        */
       void amba_release_regions(struct amba_device *dev)
       {
 ------ release_mem_region(dev->res.start, SZ_4K);
 ++++++ u32 size;
 ++++++
 ++++++ size = resource_size(&dev->res);
 ++++++ release_mem_region(dev->res.start, size);
       }
       
       EXPORT_SYMBOL(amba_driver_register);
diff --combined drivers/video/Kconfig
@@@@@@@@ -616,6 -616,6 -616,6 -616,6 -616,6 -616,8 -616,6 +616,8 @@@@@@@@ config FB_ST
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
+++++ + select STI_CONSOLE
+++++ + select VT
        default y
        ---help---
          STI refers to the HP "Standard Text Interface" which is a set of
@@@@@@@@ -933,7 -933,7 -933,7 -933,7 -933,7 -935,7 -933,7 +935,7 @@@@@@@@ config FB_S1D13XX
       
       config FB_ATMEL
        tristate "AT91/AT32 LCD Controller support"
- ----- depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || AVR32)
+ +++++ depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9G10 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45 || ARCH_AT91CAP9 || AVR32)
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
@@@@@@@@ -949,7 -949,7 -949,7 -949,7 -949,7 -951,7 -949,7 +951,7 @@@@@@@@ config FB_INTSRA
       
       config FB_ATMEL_STN
        bool "Use a STN display with AT91/AT32 LCD Controller"
- ----- depends on FB_ATMEL && MACH_AT91SAM9261EK
+ +++++ depends on FB_ATMEL && (MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK)
        default n
        help
          Say Y if you want to connect a STN LCD display to the AT91/AT32 LCD
@@@@@@@@ -182,7 -182,8 -182,7 -182,7 -182,7 -182,7 -182,7 +182,8 @@@@@@@@ static unsigned long compute_hozval(uns
       {
        unsigned long value;
       
- ----- if (!(cpu_is_at91sam9261() || cpu_is_at32ap7000()))
+ +++++ if (!(cpu_is_at91sam9261() || cpu_is_at91sam9g10()
+ +++++         || cpu_is_at32ap7000()))
                return xres;
       
        value = xres;
@@@@@@@@ -261,6 -262,6 -261,6 -261,6 -261,6 -261,9 -261,6 +262,9 @@@@@@@@ static inline void atmel_lcdfb_free_vid
       /**
        *       atmel_lcdfb_alloc_video_memory - Allocate framebuffer memory
        *       @sinfo: the frame buffer to allocate memory for
+++++ + *       
+++++ + *       This function is called only from the atmel_lcdfb_probe()
+++++ + *       so no locking by fb_info->mm_lock around smem_len setting is needed.
        */
       static int atmel_lcdfb_alloc_video_memory(struct atmel_lcdfb_info *sinfo)
       {
@@@@@@@@ -821,7 -822,8 -821,7 -821,7 -821,7 -824,7 -821,7 +825,8 @@@@@@@@ static int __init atmel_lcdfb_probe(str
        info->fix = atmel_lcdfb_fix;
       
        /* Enable LCDC Clocks */
- ----- if (cpu_is_at91sam9261() || cpu_is_at32ap7000()) {
+ +++++ if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()
+ +++++  || cpu_is_at32ap7000()) {
                sinfo->bus_clk = clk_get(dev, "hck1");
                if (IS_ERR(sinfo->bus_clk)) {
                        ret = PTR_ERR(sinfo->bus_clk);