Merge commit 'v3.3' into fbdev-next
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Tue, 20 Mar 2012 18:59:50 +0000 (18:59 +0000)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Tue, 20 Mar 2012 18:59:50 +0000 (18:59 +0000)
1  2 
MAINTAINERS
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-bonito.c
arch/arm/mach-shmobile/board-mackerel.c

diff --combined MAINTAINERS
@@@ -962,7 -962,7 +962,7 @@@ F: drivers/tty/serial/msm_serial.
  F:    drivers/platform/msm/
  F:    drivers/*/pm8???-*
  F:    include/linux/mfd/pm8xxx/
- T:    git git://codeaurora.org/quic/kernel/davidb/linux-msm.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git
  S:    Maintained
  
  ARM/TOSA MACHINE SUPPORT
@@@ -1310,7 -1310,7 +1310,7 @@@ F:      drivers/atm
  F:    include/linux/atm*
  
  ATMEL AT91 MCI DRIVER
- M:    Nicolas Ferre <nicolas.ferre@atmel.com>
+ M:    Ludovic Desroches <ludovic.desroches@atmel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.atmel.com/products/AT91/
  W:    http://www.at91.com/
@@@ -1318,7 -1318,7 +1318,7 @@@ S:      Maintaine
  F:    drivers/mmc/host/at91_mci.c
  
  ATMEL AT91 / AT32 MCI DRIVER
- M:    Nicolas Ferre <nicolas.ferre@atmel.com>
+ M:    Ludovic Desroches <ludovic.desroches@atmel.com>
  S:    Maintained
  F:    drivers/mmc/host/atmel-mci.c
  F:    drivers/mmc/host/atmel-mci-regs.h
@@@ -1513,19 -1513,23 +1513,23 @@@ F:   drivers/mtd/devices/block2mtd.
  
  BLUETOOTH DRIVERS
  M:    Marcel Holtmann <marcel@holtmann.org>
- M:    "Gustavo F. Padovan" <padovan@profusion.mobi>
+ M:    Gustavo Padovan <gustavo@padovan.org>
+ M:    Johan Hedberg <johan.hedberg@gmail.com>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
  S:    Maintained
  F:    drivers/bluetooth/
  
  BLUETOOTH SUBSYSTEM
  M:    Marcel Holtmann <marcel@holtmann.org>
- M:    "Gustavo F. Padovan" <padovan@profusion.mobi>
+ M:    Gustavo Padovan <gustavo@padovan.org>
+ M:    Johan Hedberg <johan.hedberg@gmail.com>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
  S:    Maintained
  F:    net/bluetooth/
  F:    include/net/bluetooth/
@@@ -1717,6 -1721,14 +1721,14 @@@ F:    include/linux/can/error.
  F:    include/linux/can/netlink.h
  F:    include/linux/can/platform/
  
+ CAPABILITIES
+ M:    Serge Hallyn <serge.hallyn@canonical.com>
+ L:    linux-security-module@vger.kernel.org
+ S:    Supported       
+ F:    include/linux/capability.h
+ F:    security/capability.c
+ F:    security/commoncap.c 
  CELL BROADBAND ENGINE ARCHITECTURE
  M:    Arnd Bergmann <arnd@arndb.de>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -2230,15 -2242,6 +2242,15 @@@ F:    Documentation/filesystems/quota.tx
  F:    fs/quota/
  F:    include/linux/quota*.h
  
 +DISPLAYLINK USB 2.0 FRAMEBUFFER DRIVER (UDLFB)
 +M:    Bernie Thompson <bernie@plugable.com>
 +L:    linux-fbdev@vger.kernel.org
 +S:    Maintained
 +W:    http://plugable.com/category/projects/udlfb/
 +F:    drivers/video/udlfb.c
 +F:    include/video/udlfb.h
 +F:    Documentation/fb/udlfb.txt
 +
  DISTRIBUTED LOCK MANAGER (DLM)
  M:    Christine Caulfield <ccaulfie@redhat.com>
  M:    David Teigland <teigland@redhat.com>
@@@ -2360,6 -2363,15 +2372,15 @@@ S:    Supporte
  F:    drivers/gpu/drm/exynos
  F:    include/drm/exynos*
  
+ EXYNOS MIPI DISPLAY DRIVERS
+ M:    Inki Dae <inki.dae@samsung.com>
+ M:    Donghwa Lee <dh09.lee@samsung.com>
+ M:    Kyungmin Park <kyungmin.park@samsung.com>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/video/exynos/exynos_mipi*
+ F:    include/video/exynos_mipi*
  DSCC4 DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -2640,21 -2652,6 +2661,21 @@@ M:    Mimi Zohar <zohar@us.ibm.com
  S:    Supported
  F:    security/integrity/evm/
  
 +EXYNOS DP DRIVER
 +M:    Jingoo Han <jg1.han@samsung.com>
 +L:    linux-fbdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/video/exynos/exynos_dp*
 +
 +EXYNOS MIPI DISPLAY DRIVERS
 +M:    Inki Dae <inki.dae@samsung.com>
 +M:    Donghwa Lee <dh09.lee@samsung.com>
 +M:    Kyungmin Park <kyungmin.park@samsung.com>
 +L:    linux-fbdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/video/exynos/exynos_mipi*
 +F:    include/video/exynos_mipi*
 +
  F71805F HARDWARE MONITORING DRIVER
  M:    Jean Delvare <khali@linux-fr.org>
  L:    lm-sensors@lm-sensors.org
@@@ -2869,6 -2866,12 +2890,12 @@@ S:    Maintaine
  F:    drivers/media/video/m5mols/
  F:    include/media/m5mols.h
  
+ FUJITSU TABLET EXTRAS
+ M:    Robert Gerlach <khnz@gmx.de>
+ L:    platform-driver-x86@vger.kernel.org
+ S:    Maintained
+ F:    drivers/platform/x86/fujitsu-tablet.c
  FUSE: FILESYSTEM IN USERSPACE
  M:    Miklos Szeredi <miklos@szeredi.hu>
  L:    fuse-devel@lists.sourceforge.net
@@@ -5877,6 -5880,7 +5904,7 @@@ F:      drivers/mmc/host/sdhci-s3c.
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
  M:    Viresh Kumar <viresh.kumar@st.com>
+ L:    spear-devel@list.st.com
  L:    linux-mmc@vger.kernel.org
  S:    Maintained
  F:    drivers/mmc/host/sdhci-spear.c
@@@ -6219,24 -6223,32 +6247,32 @@@ F:   drivers/tty/serial/sunzilog.
  
  SPEAR PLATFORM SUPPORT
  M:    Viresh Kumar <viresh.kumar@st.com>
+ L:    spear-devel@list.st.com
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
  F:    arch/arm/plat-spear/
  
  SPEAR3XX MACHINE SUPPORT
  M:    Viresh Kumar <viresh.kumar@st.com>
+ L:    spear-devel@list.st.com
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
  F:    arch/arm/mach-spear3xx/
  
  SPEAR6XX MACHINE SUPPORT
  M:    Rajeev Kumar <rajeev-dlh.kumar@st.com>
+ L:    spear-devel@list.st.com
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
  F:    arch/arm/mach-spear6xx/
  
  SPEAR CLOCK FRAMEWORK SUPPORT
  M:    Viresh Kumar <viresh.kumar@st.com>
+ L:    spear-devel@list.st.com
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
  F:    arch/arm/mach-spear*/clock.c
@@@ -6245,6 -6257,8 +6281,8 @@@ F:      arch/arm/plat-spear/include/plat/clo
  
  SPEAR PAD MULTIPLEXING SUPPORT
  M:    Viresh Kumar <viresh.kumar@st.com>
+ L:    spear-devel@list.st.com
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.st.com/spear
  S:    Maintained
  F:    arch/arm/plat-spear/include/plat/padmux.h
@@@ -38,6 -38,7 +38,7 @@@
  #include <linux/mmc/sh_mobile_sdhi.h>
  #include <linux/mfd/tmio.h>
  #include <linux/sh_clk.h>
+ #include <linux/videodev2.h>
  #include <video/sh_mobile_lcdc.h>
  #include <video/sh_mipi_dsi.h>
  #include <sound/sh_fsi.h>
@@@ -229,6 -230,16 +230,6 @@@ static void lcd_backlight_reset(void
        gpio_set_value(GPIO_PORT235, 1);
  }
  
 -static void lcd_on(void *board_data, struct fb_info *info)
 -{
 -      lcd_backlight_on();
 -}
 -
 -static void lcd_off(void *board_data)
 -{
 -      lcd_backlight_reset();
 -}
 -
  /* LCDC0 */
  static const struct fb_videomode lcdc0_modes[] = {
        {
@@@ -252,14 -263,14 +253,14 @@@ static struct sh_mobile_lcdc_info lcdc0
                .interface_type = RGB24,
                .clock_divider = 1,
                .flags = LCDC_FLAGS_DWPOL,
 -              .lcd_size_cfg.width = 44,
 -              .lcd_size_cfg.height = 79,
                .fourcc = V4L2_PIX_FMT_RGB565,
 -              .lcd_cfg = lcdc0_modes,
 -              .num_cfg = ARRAY_SIZE(lcdc0_modes),
 -              .board_cfg = {
 -                      .display_on = lcd_on,
 -                      .display_off = lcd_off,
 +              .lcd_modes = lcdc0_modes,
 +              .num_modes = ARRAY_SIZE(lcdc0_modes),
 +              .panel_cfg = {
 +                      .width = 44,
 +                      .height = 79,
 +                      .display_on = lcd_backlight_on,
 +                      .display_off = lcd_backlight_reset,
                },
        }
  };
@@@ -258,16 -258,10 +258,16 @@@ static struct sh_mobile_meram_info mera
  
  static struct resource meram_resources[] = {
        [0] = {
 -              .name   = "MERAM",
 -              .start  = 0xe8000000,
 -              .end    = 0xe81fffff,
 -              .flags  = IORESOURCE_MEM,
 +              .name   = "regs",
 +              .start  = 0xe8000000,
 +              .end    = 0xe807ffff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .name   = "meram",
 +              .start  = 0xe8080000,
 +              .end    = 0xe81fffff,
 +              .flags  = IORESOURCE_MEM,
        },
  };
  
@@@ -443,6 -437,82 +443,6 @@@ static struct platform_device usb1_host
        .resource       = usb1_host_resources,
  };
  
 -static const struct fb_videomode ap4evb_lcdc_modes[] = {
 -      {
 -#ifdef CONFIG_AP4EVB_QHD
 -              .name           = "R63302(QHD)",
 -              .xres           = 544,
 -              .yres           = 961,
 -              .left_margin    = 72,
 -              .right_margin   = 600,
 -              .hsync_len      = 16,
 -              .upper_margin   = 8,
 -              .lower_margin   = 8,
 -              .vsync_len      = 2,
 -              .sync           = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
 -#else
 -              .name           = "WVGA Panel",
 -              .xres           = 800,
 -              .yres           = 480,
 -              .left_margin    = 220,
 -              .right_margin   = 110,
 -              .hsync_len      = 70,
 -              .upper_margin   = 20,
 -              .lower_margin   = 5,
 -              .vsync_len      = 5,
 -              .sync           = 0,
 -#endif
 -      },
 -};
 -static struct sh_mobile_meram_cfg lcd_meram_cfg = {
 -      .icb[0] = {
 -              .marker_icb     = 28,
 -              .cache_icb      = 24,
 -              .meram_offset   = 0x0,
 -              .meram_size     = 0x40,
 -      },
 -      .icb[1] = {
 -              .marker_icb     = 29,
 -              .cache_icb      = 25,
 -              .meram_offset   = 0x40,
 -              .meram_size     = 0x40,
 -      },
 -};
 -
 -static struct sh_mobile_lcdc_info lcdc_info = {
 -      .meram_dev = &meram_info,
 -      .ch[0] = {
 -              .chan = LCDC_CHAN_MAINLCD,
 -              .fourcc = V4L2_PIX_FMT_RGB565,
 -              .lcd_cfg = ap4evb_lcdc_modes,
 -              .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes),
 -              .meram_cfg = &lcd_meram_cfg,
 -      }
 -};
 -
 -static struct resource lcdc_resources[] = {
 -      [0] = {
 -              .name   = "LCDC",
 -              .start  = 0xfe940000, /* P4-only space */
 -              .end    = 0xfe943fff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = intcs_evt2irq(0x580),
 -              .flags  = IORESOURCE_IRQ,
 -      },
 -};
 -
 -static struct platform_device lcdc_device = {
 -      .name           = "sh_mobile_lcdc_fb",
 -      .num_resources  = ARRAY_SIZE(lcdc_resources),
 -      .resource       = lcdc_resources,
 -      .dev    = {
 -              .platform_data  = &lcdc_info,
 -              .coherent_dma_mask = ~0,
 -      },
 -};
 -
  /*
   * QHD display
   */
@@@ -523,8 -593,6 +523,8 @@@ static struct resource mipidsi0_resourc
        },
  };
  
 +static struct sh_mobile_lcdc_info lcdc_info;
 +
  static struct sh_mipi_dsi_info mipidsi0_info = {
        .data_format    = MIPI_RGB888,
        .lcd_chan       = &lcdc_info.ch[0],
@@@ -551,81 -619,6 +551,81 @@@ static struct platform_device *qhd_devi
  };
  #endif /* CONFIG_AP4EVB_QHD */
  
 +/* LCDC0 */
 +static const struct fb_videomode ap4evb_lcdc_modes[] = {
 +      {
 +#ifdef CONFIG_AP4EVB_QHD
 +              .name           = "R63302(QHD)",
 +              .xres           = 544,
 +              .yres           = 961,
 +              .left_margin    = 72,
 +              .right_margin   = 600,
 +              .hsync_len      = 16,
 +              .upper_margin   = 8,
 +              .lower_margin   = 8,
 +              .vsync_len      = 2,
 +              .sync           = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
 +#else
 +              .name           = "WVGA Panel",
 +              .xres           = 800,
 +              .yres           = 480,
 +              .left_margin    = 220,
 +              .right_margin   = 110,
 +              .hsync_len      = 70,
 +              .upper_margin   = 20,
 +              .lower_margin   = 5,
 +              .vsync_len      = 5,
 +              .sync           = 0,
 +#endif
 +      },
 +};
 +
 +static const struct sh_mobile_meram_cfg lcd_meram_cfg = {
 +      .icb[0] = {
 +              .meram_size     = 0x40,
 +      },
 +      .icb[1] = {
 +              .meram_size     = 0x40,
 +      },
 +};
 +
 +static struct sh_mobile_lcdc_info lcdc_info = {
 +      .meram_dev = &meram_info,
 +      .ch[0] = {
 +              .chan = LCDC_CHAN_MAINLCD,
 +              .fourcc = V4L2_PIX_FMT_RGB565,
 +              .lcd_modes = ap4evb_lcdc_modes,
 +              .num_modes = ARRAY_SIZE(ap4evb_lcdc_modes),
 +              .meram_cfg = &lcd_meram_cfg,
 +#ifdef CONFIG_AP4EVB_QHD
 +              .tx_dev = &mipidsi0_device,
 +#endif
 +      }
 +};
 +
 +static struct resource lcdc_resources[] = {
 +      [0] = {
 +              .name   = "LCDC",
 +              .start  = 0xfe940000, /* P4-only space */
 +              .end    = 0xfe943fff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .start  = intcs_evt2irq(0x580),
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +};
 +
 +static struct platform_device lcdc_device = {
 +      .name           = "sh_mobile_lcdc_fb",
 +      .num_resources  = ARRAY_SIZE(lcdc_resources),
 +      .resource       = lcdc_resources,
 +      .dev    = {
 +              .platform_data  = &lcdc_info,
 +              .coherent_dma_mask = ~0,
 +      },
 +};
 +
  /* FSI */
  #define IRQ_FSI               evt2irq(0x1840)
  static int __fsi_set_rate(struct clk *clk, long rate, int enable)
@@@ -801,15 -794,69 +801,15 @@@ static struct fsi_ak4642_info fsi2_ak46
  static struct platform_device fsi_ak4643_device = {
        .name   = "fsi-ak4642-audio",
        .dev    = {
-               .platform_data  = &fsi_info,
+               .platform_data  = &fsi2_ak4643_info,
        },
  };
  
 -static struct sh_mobile_meram_cfg hdmi_meram_cfg = {
 -      .icb[0] = {
 -              .marker_icb     = 30,
 -              .cache_icb      = 26,
 -              .meram_offset   = 0x80,
 -              .meram_size     = 0x100,
 -      },
 -      .icb[1] = {
 -              .marker_icb     = 31,
 -              .cache_icb      = 27,
 -              .meram_offset   = 0x180,
 -              .meram_size     = 0x100,
 -      },
 -};
 -
 -static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = {
 -      .clock_source = LCDC_CLK_EXTERNAL,
 -      .meram_dev = &meram_info,
 -      .ch[0] = {
 -              .chan = LCDC_CHAN_MAINLCD,
 -              .fourcc = V4L2_PIX_FMT_RGB565,
 -              .interface_type = RGB24,
 -              .clock_divider = 1,
 -              .flags = LCDC_FLAGS_DWPOL,
 -              .meram_cfg = &hdmi_meram_cfg,
 -      }
 -};
 -
 -static struct resource lcdc1_resources[] = {
 -      [0] = {
 -              .name   = "LCDC1",
 -              .start  = 0xfe944000,
 -              .end    = 0xfe947fff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = intcs_evt2irq(0x1780),
 -              .flags  = IORESOURCE_IRQ,
 -      },
 -};
 -
 -static struct platform_device lcdc1_device = {
 -      .name           = "sh_mobile_lcdc_fb",
 -      .num_resources  = ARRAY_SIZE(lcdc1_resources),
 -      .resource       = lcdc1_resources,
 -      .id             = 1,
 -      .dev    = {
 -              .platform_data  = &sh_mobile_lcdc1_info,
 -              .coherent_dma_mask = ~0,
 -      },
 -};
 -
 +/* LCDC1 */
  static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq,
                                unsigned long *parent_freq);
  
 -
  static struct sh_mobile_hdmi_info hdmi_info = {
 -      .lcd_chan = &sh_mobile_lcdc1_info.ch[0],
 -      .lcd_dev = &lcdc1_device.dev,
        .flags = HDMI_SND_SRC_SPDIF,
        .clk_optimize_parent = ap4evb_clk_optimize,
  };
@@@ -838,6 -885,10 +838,6 @@@ static struct platform_device hdmi_devi
        },
  };
  
 -static struct platform_device fsi_hdmi_device = {
 -      .name           = "sh_fsi2_b_hdmi",
 -};
 -
  static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq,
                                unsigned long *parent_freq)
  {
        return error;
  }
  
 +static const struct sh_mobile_meram_cfg hdmi_meram_cfg = {
 +      .icb[0] = {
 +              .meram_size     = 0x100,
 +      },
 +      .icb[1] = {
 +              .meram_size     = 0x100,
 +      },
 +};
 +
 +static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = {
 +      .clock_source = LCDC_CLK_EXTERNAL,
 +      .meram_dev = &meram_info,
 +      .ch[0] = {
 +              .chan = LCDC_CHAN_MAINLCD,
 +              .fourcc = V4L2_PIX_FMT_RGB565,
 +              .interface_type = RGB24,
 +              .clock_divider = 1,
 +              .flags = LCDC_FLAGS_DWPOL,
 +              .meram_cfg = &hdmi_meram_cfg,
 +              .tx_dev = &hdmi_device,
 +      }
 +};
 +
 +static struct resource lcdc1_resources[] = {
 +      [0] = {
 +              .name   = "LCDC1",
 +              .start  = 0xfe944000,
 +              .end    = 0xfe947fff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .start  = intcs_evt2irq(0x1780),
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +};
 +
 +static struct platform_device lcdc1_device = {
 +      .name           = "sh_mobile_lcdc_fb",
 +      .num_resources  = ARRAY_SIZE(lcdc1_resources),
 +      .resource       = lcdc1_resources,
 +      .id             = 1,
 +      .dev    = {
 +              .platform_data  = &sh_mobile_lcdc1_info,
 +              .coherent_dma_mask = ~0,
 +      },
 +};
 +
 +static struct platform_device fsi_hdmi_device = {
 +      .name           = "sh_fsi2_b_hdmi",
 +};
 +
  static struct gpio_led ap4evb_leds[] = {
        {
                .name                   = "led4",
@@@ -1042,9 -1042,9 +1042,9 @@@ static struct platform_device *ap4evb_d
        &fsi_ak4643_device,
        &fsi_hdmi_device,
        &sh_mmcif_device,
 -      &lcdc1_device,
 -      &lcdc_device,
        &hdmi_device,
 +      &lcdc_device,
 +      &lcdc1_device,
        &ceu_device,
        &ap4evb_camera,
        &meram_device,
@@@ -1355,8 -1355,8 +1355,8 @@@ static void __init ap4evb_init(void
        lcdc_info.ch[0].interface_type          = RGB24;
        lcdc_info.ch[0].clock_divider           = 1;
        lcdc_info.ch[0].flags                   = LCDC_FLAGS_DWPOL;
 -      lcdc_info.ch[0].lcd_size_cfg.width      = 44;
 -      lcdc_info.ch[0].lcd_size_cfg.height     = 79;
 +      lcdc_info.ch[0].panel_cfg.width         = 44;
 +      lcdc_info.ch[0].panel_cfg.height        = 79;
  
        platform_add_devices(qhd_devices, ARRAY_SIZE(qhd_devices));
  
        lcdc_info.ch[0].interface_type          = RGB18;
        lcdc_info.ch[0].clock_divider           = 3;
        lcdc_info.ch[0].flags                   = 0;
 -      lcdc_info.ch[0].lcd_size_cfg.width      = 152;
 -      lcdc_info.ch[0].lcd_size_cfg.height     = 91;
 +      lcdc_info.ch[0].panel_cfg.width         = 152;
 +      lcdc_info.ch[0].panel_cfg.height        = 91;
  
        /* enable TouchScreen */
        irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW);
@@@ -27,6 -27,7 +27,7 @@@
  #include <linux/platform_device.h>
  #include <linux/gpio.h>
  #include <linux/smsc911x.h>
+ #include <linux/videodev2.h>
  #include <mach/common.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
@@@ -241,13 -242,13 +242,13 @@@ static struct sh_mobile_lcdc_info lcdc0
        .clock_source   = LCDC_CLK_BUS,
        .ch[0] = {
                .chan                   = LCDC_CHAN_MAINLCD,
-               .bpp                    = 16,
+               .fourcc = V4L2_PIX_FMT_RGB565,
                .interface_type         = RGB24,
                .clock_divider          = 5,
                .flags                  = 0,
 -              .lcd_cfg                = &lcdc0_mode,
 -              .num_cfg                = 1,
 -              .lcd_size_cfg = {
 +              .lcd_modes              = &lcdc0_mode,
 +              .num_modes              = 1,
 +              .panel_cfg = {
                        .width  = 152,
                        .height = 91,
                },
@@@ -318,14 -318,8 +318,14 @@@ static struct sh_mobile_meram_info mack
  
  static struct resource meram_resources[] = {
        [0] = {
 -              .name   = "MERAM",
 +              .name   = "regs",
                .start  = 0xe8000000,
 +              .end    = 0xe807ffff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .name   = "meram",
 +              .start  = 0xe8080000,
                .end    = 0xe81fffff,
                .flags  = IORESOURCE_MEM,
        },
@@@ -357,23 -351,29 +357,23 @@@ static struct fb_videomode mackerel_lcd
        },
  };
  
 -static int mackerel_set_brightness(void *board_data, int brightness)
 +static int mackerel_set_brightness(int brightness)
  {
        gpio_set_value(GPIO_PORT31, brightness);
  
        return 0;
  }
  
 -static int mackerel_get_brightness(void *board_data)
 +static int mackerel_get_brightness(void)
  {
        return gpio_get_value(GPIO_PORT31);
  }
  
 -static struct sh_mobile_meram_cfg lcd_meram_cfg = {
 +static const struct sh_mobile_meram_cfg lcd_meram_cfg = {
        .icb[0] = {
                .meram_size     = 0x40,
        },
        .icb[1] = {
 -              .marker_icb     = 29,
 -              .cache_icb      = 25,
 -              .meram_offset   = 0x40,
                .meram_size     = 0x40,
        },
  };
@@@ -384,20 -384,20 +384,20 @@@ static struct sh_mobile_lcdc_info lcdc_
        .ch[0] = {
                .chan = LCDC_CHAN_MAINLCD,
                .fourcc = V4L2_PIX_FMT_RGB565,
 -              .lcd_cfg = mackerel_lcdc_modes,
 -              .num_cfg = ARRAY_SIZE(mackerel_lcdc_modes),
 +              .lcd_modes = mackerel_lcdc_modes,
 +              .num_modes = ARRAY_SIZE(mackerel_lcdc_modes),
                .interface_type         = RGB24,
                .clock_divider          = 3,
                .flags                  = 0,
 -              .lcd_size_cfg.width     = 152,
 -              .lcd_size_cfg.height    = 91,
 -              .board_cfg = {
 -                      .set_brightness = mackerel_set_brightness,
 -                      .get_brightness = mackerel_get_brightness,
 +              .panel_cfg = {
 +                      .width          = 152,
 +                      .height         = 91,
                },
                .bl_info = {
                        .name = "sh_mobile_lcdc_bl",
                        .max_brightness = 1,
 +                      .set_brightness = mackerel_set_brightness,
 +                      .get_brightness = mackerel_get_brightness,
                },
                .meram_cfg = &lcd_meram_cfg,
        }
@@@ -426,44 -426,21 +426,44 @@@ static struct platform_device lcdc_devi
        },
  };
  
 -static struct sh_mobile_meram_cfg hdmi_meram_cfg = {
 +/* HDMI */
 +static struct sh_mobile_hdmi_info hdmi_info = {
 +      .flags          = HDMI_SND_SRC_SPDIF,
 +};
 +
 +static struct resource hdmi_resources[] = {
 +      [0] = {
 +              .name   = "HDMI",
 +              .start  = 0xe6be0000,
 +              .end    = 0xe6be00ff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              /* There's also an HDMI interrupt on INTCS @ 0x18e0 */
 +              .start  = evt2irq(0x17e0),
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +};
 +
 +static struct platform_device hdmi_device = {
 +      .name           = "sh-mobile-hdmi",
 +      .num_resources  = ARRAY_SIZE(hdmi_resources),
 +      .resource       = hdmi_resources,
 +      .id             = -1,
 +      .dev    = {
 +              .platform_data  = &hdmi_info,
 +      },
 +};
 +
 +static const struct sh_mobile_meram_cfg hdmi_meram_cfg = {
        .icb[0] = {
                .meram_size     = 0x100,
        },
        .icb[1] = {
                .meram_size     = 0x100,
        },
  };
 -/* HDMI */
 +
  static struct sh_mobile_lcdc_info hdmi_lcdc_info = {
        .meram_dev = &mackerel_meram_info,
        .clock_source = LCDC_CLK_EXTERNAL,
                .clock_divider = 1,
                .flags = LCDC_FLAGS_DWPOL,
                .meram_cfg = &hdmi_meram_cfg,
 +              .tx_dev = &hdmi_device,
        }
  };
  
@@@ -502,6 -478,36 +502,6 @@@ static struct platform_device hdmi_lcdc
        },
  };
  
 -static struct sh_mobile_hdmi_info hdmi_info = {
 -      .lcd_chan       = &hdmi_lcdc_info.ch[0],
 -      .lcd_dev        = &hdmi_lcdc_device.dev,
 -      .flags          = HDMI_SND_SRC_SPDIF,
 -};
 -
 -static struct resource hdmi_resources[] = {
 -      [0] = {
 -              .name   = "HDMI",
 -              .start  = 0xe6be0000,
 -              .end    = 0xe6be00ff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              /* There's also an HDMI interrupt on INTCS @ 0x18e0 */
 -              .start  = evt2irq(0x17e0),
 -              .flags  = IORESOURCE_IRQ,
 -      },
 -};
 -
 -static struct platform_device hdmi_device = {
 -      .name           = "sh-mobile-hdmi",
 -      .num_resources  = ARRAY_SIZE(hdmi_resources),
 -      .resource       = hdmi_resources,
 -      .id             = -1,
 -      .dev    = {
 -              .platform_data  = &hdmi_info,
 -      },
 -};
 -
  static struct platform_device fsi_hdmi_device = {
        .name           = "sh_fsi2_b_hdmi",
  };
@@@ -1270,8 -1276,8 +1270,8 @@@ static struct platform_device *mackerel
        &sh_mmcif_device,
        &ceu_device,
        &mackerel_camera,
 -      &hdmi_lcdc_device,
        &hdmi_device,
 +      &hdmi_lcdc_device,
        &meram_device,
  };
  
@@@ -1346,6 -1352,10 +1346,10 @@@ static struct map_desc mackerel_io_desc
  static void __init mackerel_map_io(void)
  {
        iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc));
+       /* DMA memory at 0xff200000 - 0xffdfffff. The default 2MB size isn't
+        * enough to allocate the frame buffer memory.
+        */
+       init_consistent_dma_size(12 << 20);
  
        /* setup early devices and console here as well */
        sh7372_add_early_devices();