Merge tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6
Linus Torvalds [Fri, 1 Jun 2012 23:57:51 +0000 (16:57 -0700)]
Pull fbdev updates from Florian Tobias Schandinat:
 - driver for AUO-K1900 and AUO-K1901 epaper controller
 - large updates for OMAP (e.g. decouple HDMI audio and video)
 - some updates for Exynos and SH Mobile
 - various other small fixes and cleanups

* tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6: (130 commits)
  video: bfin_adv7393fb: Fix cleanup code
  video: exynos_dp: reduce delay time when configuring video setting
  video: exynos_dp: move sw reset prioir to enabling sw defined function
  video: exynos_dp: use devm_ functions
  fb: handle NULL pointers in framebuffer release
  OMAPDSS: HDMI: OMAP4: Update IRQ flags for the HPD IRQ request
  OMAPDSS: Apply VENC timings even if panel is disabled
  OMAPDSS: VENC/DISPC: Delay dividing Y resolution for managers connected to VENC
  OMAPDSS: DISPC: Support rotation through TILER
  OMAPDSS: VRFB: remove compiler warnings when CONFIG_BUG=n
  OMAPFB: remove compiler warnings when CONFIG_BUG=n
  OMAPDSS: remove compiler warnings when CONFIG_BUG=n
  OMAPDSS: DISPC: fix usage of dispc_ovl_set_accu_uv
  OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays
  OMAPDSS: DSI: Support command mode interleaving during video mode blanking periods
  OMAPDSS: DISPC: Update Accumulator configuration for chroma plane
  drivers/video: fsl-diu-fb: don't initialize the THRESHOLDS registers
  video: exynos mipi dsi: support reverse panel type
  video: exynos mipi dsi: Properly interpret the interrupt source flags
  video: exynos mipi dsi: Avoid races in probe()
  ...

18 files changed:
1  2 
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-s3c64xx/mach-anw6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-hmt.c
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-smartq5.c
arch/arm/mach-s3c64xx/mach-smartq7.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s5pv210/mach-goni.c
arch/arm/mach-s5pv210/mach-smdkv210.c
drivers/video/mxsfb.c
drivers/video/omap2/displays/panel-acx565akm.c
drivers/video/udlfb.c
include/linux/fb.h

@@@ -212,44 -212,12 +212,35 @@@ static struct platform_device nuri_gpio
        },
  };
  
 +#ifdef CONFIG_DRM_EXYNOS
 +static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
 +      .panel = {
 +              .timing = {
 +                      .xres           = 1024,
 +                      .yres           = 600,
 +                      .hsync_len      = 40,
 +                      .left_margin    = 79,
 +                      .right_margin   = 200,
 +                      .vsync_len      = 10,
 +                      .upper_margin   = 10,
 +                      .lower_margin   = 11,
 +                      .refresh        = 60,
 +              },
 +      },
 +      .vidcon0        = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
 +                        VIDCON0_CLKSEL_LCD,
 +      .vidcon1        = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
 +      .default_win    = 3,
 +      .bpp            = 32,
 +};
 +
 +#else
  /* Frame Buffer */
  static struct s3c_fb_pd_win nuri_fb_win0 = {
-       .win_mode = {
-               .left_margin    = 64,
-               .right_margin   = 16,
-               .upper_margin   = 64,
-               .lower_margin   = 1,
-               .hsync_len      = 48,
-               .vsync_len      = 3,
-               .xres           = 1024,
-               .yres           = 600,
-               .refresh        = 60,
-       },
        .max_bpp        = 24,
        .default_bpp    = 16,
+       .xres           = 1024,
+       .yres           = 600,
        .virtual_x      = 1024,
        .virtual_y      = 2 * 600,
  };
@@@ -582,46 -583,27 +582,50 @@@ static struct platform_device origen_lc
        .dev.platform_data      = &origen_lcd_hv070wsa_data,
  };
  
 +#ifdef CONFIG_DRM_EXYNOS
 +static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
 +      .panel  = {
 +              .timing = {
 +                      .left_margin    = 64,
 +                      .right_margin   = 16,
 +                      .upper_margin   = 64,
 +                      .lower_margin   = 16,
 +                      .hsync_len      = 48,
 +                      .vsync_len      = 3,
 +                      .xres           = 1024,
 +                      .yres           = 600,
 +              },
 +      },
 +      .vidcon0        = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
 +      .vidcon1        = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
 +                              VIDCON1_INV_VCLK,
 +      .default_win    = 0,
 +      .bpp            = 32,
 +};
 +#else
  static struct s3c_fb_pd_win origen_fb_win0 = {
-       .win_mode = {
-               .left_margin    = 64,
-               .right_margin   = 16,
-               .upper_margin   = 64,
-               .lower_margin   = 16,
-               .hsync_len      = 48,
-               .vsync_len      = 3,
-               .xres           = 1024,
-               .yres           = 600,
-       },
+       .xres                   = 1024,
+       .yres                   = 600,
        .max_bpp                = 32,
        .default_bpp            = 24,
 +      .virtual_x              = 1024,
 +      .virtual_y              = 2 * 600,
  };
  
+ static struct fb_videomode origen_lcd_timing = {
+       .left_margin    = 64,
+       .right_margin   = 16,
+       .upper_margin   = 64,
+       .lower_margin   = 16,
+       .hsync_len      = 48,
+       .vsync_len      = 3,
+       .xres           = 1024,
+       .yres           = 600,
+ };
  static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
        .win[0]         = &origen_fb_win0,
+       .vtiming        = &origen_lcd_timing,
        .vidcon0        = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
        .vidcon1        = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
                                VIDCON1_INV_VCLK,
@@@ -157,39 -160,22 +157,42 @@@ static struct platform_device smdkv310_
        .dev.platform_data      = &smdkv310_lcd_lte480wv_data,
  };
  
 +#ifdef CONFIG_DRM_EXYNOS
 +static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
 +      .panel  = {
 +              .timing = {
 +                      .left_margin    = 13,
 +                      .right_margin   = 8,
 +                      .upper_margin   = 7,
 +                      .lower_margin   = 5,
 +                      .hsync_len      = 3,
 +                      .vsync_len      = 1,
 +                      .xres           = 800,
 +                      .yres           = 480,
 +              },
 +      },
 +      .vidcon0        = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
 +      .vidcon1        = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
 +      .default_win    = 0,
 +      .bpp            = 32,
 +};
 +#else
  static struct s3c_fb_pd_win smdkv310_fb_win0 = {
-       .win_mode = {
-               .left_margin    = 13,
-               .right_margin   = 8,
-               .upper_margin   = 7,
-               .lower_margin   = 5,
-               .hsync_len      = 3,
-               .vsync_len      = 1,
-               .xres           = 800,
-               .yres           = 480,
-       },
-       .max_bpp                = 32,
-       .default_bpp            = 24,
+       .max_bpp        = 32,
+       .default_bpp    = 24,
+       .xres           = 800,
+       .yres           = 480,
+ };
+ static struct fb_videomode smdkv310_lcd_timing = {
+       .left_margin    = 13,
+       .right_margin   = 8,
+       .upper_margin   = 7,
+       .lower_margin   = 5,
+       .hsync_len      = 3,
+       .vsync_len      = 1,
+       .xres           = 800,
+       .yres           = 480,
  };
  
  static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = {
@@@ -818,44 -811,12 +818,35 @@@ static struct i2c_board_info i2c1_devs[
        /* Gyro, To be updated */
  };
  
 +#ifdef CONFIG_DRM_EXYNOS
 +static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
 +      .panel = {
 +              .timing = {
 +                      .left_margin    = 16,
 +                      .right_margin   = 16,
 +                      .upper_margin   = 2,
 +                      .lower_margin   = 28,
 +                      .hsync_len      = 2,
 +                      .vsync_len      = 1,
 +                      .xres           = 480,
 +                      .yres           = 800,
 +                      .refresh        = 55,
 +              },
 +      },
 +      .vidcon0        = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
 +                        VIDCON0_CLKSEL_LCD,
 +      .vidcon1        = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN
 +                        | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
 +      .default_win    = 3,
 +      .bpp            = 32,
 +};
 +#else
  /* Frame Buffer */
  static struct s3c_fb_pd_win universal_fb_win0 = {
-       .win_mode = {
-               .left_margin    = 16,
-               .right_margin   = 16,
-               .upper_margin   = 2,
-               .lower_margin   = 28,
-               .hsync_len      = 2,
-               .vsync_len      = 1,
-               .xres           = 480,
-               .yres           = 800,
-               .refresh        = 55,
-       },
        .max_bpp        = 32,
        .default_bpp    = 16,
+       .xres           = 480,
+       .yres           = 800,
        .virtual_x      = 480,
        .virtual_y      = 2 * 800,
  };
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge