Merge tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6
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() ...
This commit is contained in:
@@ -140,41 +140,59 @@ static struct s3c2410_platform_nand mini6410_nand_info = {
|
||||
.sets = mini6410_nand_sets,
|
||||
};
|
||||
|
||||
static struct s3c_fb_pd_win mini6410_fb_win[] = {
|
||||
{
|
||||
.win_mode = { /* 4.3" 480x272 */
|
||||
.left_margin = 3,
|
||||
.right_margin = 2,
|
||||
.upper_margin = 1,
|
||||
.lower_margin = 1,
|
||||
.hsync_len = 40,
|
||||
.vsync_len = 1,
|
||||
.xres = 480,
|
||||
.yres = 272,
|
||||
},
|
||||
.max_bpp = 32,
|
||||
.default_bpp = 16,
|
||||
}, {
|
||||
.win_mode = { /* 7.0" 800x480 */
|
||||
.left_margin = 8,
|
||||
.right_margin = 13,
|
||||
.upper_margin = 7,
|
||||
.lower_margin = 5,
|
||||
.hsync_len = 3,
|
||||
.vsync_len = 1,
|
||||
.xres = 800,
|
||||
.yres = 480,
|
||||
},
|
||||
.max_bpp = 32,
|
||||
.default_bpp = 16,
|
||||
},
|
||||
static struct s3c_fb_pd_win mini6410_lcd_type0_fb_win = {
|
||||
.max_bpp = 32,
|
||||
.default_bpp = 16,
|
||||
.xres = 480,
|
||||
.yres = 272,
|
||||
};
|
||||
|
||||
static struct s3c_fb_platdata mini6410_lcd_pdata __initdata = {
|
||||
.setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
|
||||
.win[0] = &mini6410_fb_win[0],
|
||||
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
|
||||
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
|
||||
static struct fb_videomode mini6410_lcd_type0_timing = {
|
||||
/* 4.3" 480x272 */
|
||||
.left_margin = 3,
|
||||
.right_margin = 2,
|
||||
.upper_margin = 1,
|
||||
.lower_margin = 1,
|
||||
.hsync_len = 40,
|
||||
.vsync_len = 1,
|
||||
.xres = 480,
|
||||
.yres = 272,
|
||||
};
|
||||
|
||||
static struct s3c_fb_pd_win mini6410_lcd_type1_fb_win = {
|
||||
.max_bpp = 32,
|
||||
.default_bpp = 16,
|
||||
.xres = 800,
|
||||
.yres = 480,
|
||||
};
|
||||
|
||||
static struct fb_videomode mini6410_lcd_type1_timing = {
|
||||
/* 7.0" 800x480 */
|
||||
.left_margin = 8,
|
||||
.right_margin = 13,
|
||||
.upper_margin = 7,
|
||||
.lower_margin = 5,
|
||||
.hsync_len = 3,
|
||||
.vsync_len = 1,
|
||||
.xres = 800,
|
||||
.yres = 480,
|
||||
};
|
||||
|
||||
static struct s3c_fb_platdata mini6410_lcd_pdata[] __initdata = {
|
||||
{
|
||||
.setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
|
||||
.vtiming = &mini6410_lcd_type0_timing,
|
||||
.win[0] = &mini6410_lcd_type0_fb_win,
|
||||
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
|
||||
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
|
||||
}, {
|
||||
.setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
|
||||
.vtiming = &mini6410_lcd_type1_timing,
|
||||
.win[0] = &mini6410_lcd_type1_fb_win,
|
||||
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
|
||||
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static void mini6410_lcd_power_set(struct plat_lcd_data *pd,
|
||||
@@ -272,7 +290,7 @@ static void mini6410_parse_features(
|
||||
"screen type already set\n", f);
|
||||
} else {
|
||||
int li = f - '0';
|
||||
if (li >= ARRAY_SIZE(mini6410_fb_win))
|
||||
if (li >= ARRAY_SIZE(mini6410_lcd_pdata))
|
||||
printk(KERN_INFO "MINI6410: '%c' out "
|
||||
"of range LCD mode\n", f);
|
||||
else {
|
||||
@@ -296,14 +314,12 @@ static void __init mini6410_machine_init(void)
|
||||
/* Parse the feature string */
|
||||
mini6410_parse_features(&features, mini6410_features_str);
|
||||
|
||||
mini6410_lcd_pdata.win[0] = &mini6410_fb_win[features.lcd_index];
|
||||
|
||||
printk(KERN_INFO "MINI6410: selected LCD display is %dx%d\n",
|
||||
mini6410_lcd_pdata.win[0]->win_mode.xres,
|
||||
mini6410_lcd_pdata.win[0]->win_mode.yres);
|
||||
mini6410_lcd_pdata[features.lcd_index].win[0]->xres,
|
||||
mini6410_lcd_pdata[features.lcd_index].win[0]->yres);
|
||||
|
||||
s3c_nand_set_platdata(&mini6410_nand_info);
|
||||
s3c_fb_set_platdata(&mini6410_lcd_pdata);
|
||||
s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]);
|
||||
s3c24xx_ts_set_platdata(NULL);
|
||||
|
||||
/* configure nCS1 width to 16 bits */
|
||||
|
Verwijs in nieuw issue
Block a user