mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 16:29:05 +00:00
The mxs fixes for 3.9, take 3:
- Fix the shifted framebuffer with X11 system -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAABAgAGBQJRR/2TAAoJEFBXWFqHsHzOxSYH/1ZOu9LcOclGxw79GE+GxZqK ZiZXyPSlgb+0+oXGezYq04ciGfKMgNmORuJfuxseH1cHPY0JqccmWac3mXKC7fYE qlNdp/xjLihHJnYH3XJCbUJJ0axtt518FJB2WAT5oi3+MP7+XhqSaYvwpwq3d+Hy pVC/VuSdfqKJg6JhxoQ+F8G/y7OXMF92C9WjQCeQZlfYDsr40e6Wg7UsXnerqqhi HmY/hLF0vZatgsO4LNxRFJpzYl5Ahr+/svv6gH1MbcaL4iMo5U6RhgAtAiDSAY6E jgpfNUHmCjAWHCjr30uxiD0fyXZk9Aq1jiQ3iUBZ9GbghHkxKWgeNtuKdn8JkMo= =kmVW -----END PGP SIGNATURE----- Merge tag 'mxs-fixes-3.9-3' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes From Shawn Guo <shawn.guo@linaro.org>: The mxs fixes for 3.9, take 3: - Fix the shifted framebuffer with X11 system * tag 'mxs-fixes-3.9-3' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: video: mxs: Fix mxsfb misconfiguring VDCTRL0 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
a4ba740d41
@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = {
|
||||
.lower_margin = 4,
|
||||
.hsync_len = 1,
|
||||
.vsync_len = 1,
|
||||
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
FB_SYNC_DOTCLK_FAILING_ACT,
|
||||
},
|
||||
};
|
||||
|
||||
@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = {
|
||||
.lower_margin = 10,
|
||||
.hsync_len = 10,
|
||||
.vsync_len = 10,
|
||||
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
FB_SYNC_DOTCLK_FAILING_ACT,
|
||||
},
|
||||
};
|
||||
|
||||
@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = {
|
||||
.lower_margin = 45,
|
||||
.hsync_len = 1,
|
||||
.vsync_len = 1,
|
||||
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT,
|
||||
},
|
||||
};
|
||||
|
||||
@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = {
|
||||
.lower_margin = 13,
|
||||
.hsync_len = 48,
|
||||
.vsync_len = 3,
|
||||
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT |
|
||||
FB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
FB_SYNC_DOTCLK_FAILING_ACT,
|
||||
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
||||
},
|
||||
};
|
||||
|
||||
@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = {
|
||||
.lower_margin = 0x15,
|
||||
.hsync_len = 64,
|
||||
.vsync_len = 4,
|
||||
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT |
|
||||
FB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
FB_SYNC_DOTCLK_FAILING_ACT,
|
||||
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
||||
},
|
||||
};
|
||||
|
||||
@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = {
|
||||
.lower_margin = 2,
|
||||
.hsync_len = 15,
|
||||
.vsync_len = 15,
|
||||
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT
|
||||
},
|
||||
};
|
||||
|
||||
@ -259,6 +249,8 @@ static void __init imx23_evk_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes);
|
||||
mxsfb_pdata.default_bpp = 32;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
MXSFB_SYNC_DOTCLK_FAILING_ACT;
|
||||
}
|
||||
|
||||
static inline void enable_clk_enet_out(void)
|
||||
@ -278,6 +270,8 @@ static void __init imx28_evk_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes);
|
||||
mxsfb_pdata.default_bpp = 32;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
MXSFB_SYNC_DOTCLK_FAILING_ACT;
|
||||
|
||||
mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0);
|
||||
}
|
||||
@ -297,6 +291,7 @@ static void __init m28evk_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes);
|
||||
mxsfb_pdata.default_bpp = 16;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
|
||||
}
|
||||
|
||||
static void __init sc_sps1_init(void)
|
||||
@ -322,6 +317,8 @@ static void __init apx4devkit_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes);
|
||||
mxsfb_pdata.default_bpp = 32;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
MXSFB_SYNC_DOTCLK_FAILING_ACT;
|
||||
}
|
||||
|
||||
#define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0)
|
||||
@ -407,6 +404,7 @@ static void __init cfa10049_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes);
|
||||
mxsfb_pdata.default_bpp = 32;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
|
||||
}
|
||||
|
||||
static void __init cfa10037_init(void)
|
||||
@ -423,6 +421,8 @@ static void __init apf28_init(void)
|
||||
mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes);
|
||||
mxsfb_pdata.default_bpp = 16;
|
||||
mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT;
|
||||
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
|
||||
MXSFB_SYNC_DOTCLK_FAILING_ACT;
|
||||
}
|
||||
|
||||
static void __init mxs_machine_init(void)
|
||||
|
@ -169,6 +169,7 @@ struct mxsfb_info {
|
||||
unsigned dotclk_delay;
|
||||
const struct mxsfb_devdata *devdata;
|
||||
int mapped;
|
||||
u32 sync;
|
||||
};
|
||||
|
||||
#define mxsfb_is_v3(host) (host->devdata->ipversion == 3)
|
||||
@ -456,9 +457,9 @@ static int mxsfb_set_par(struct fb_info *fb_info)
|
||||
vdctrl0 |= VDCTRL0_HSYNC_ACT_HIGH;
|
||||
if (fb_info->var.sync & FB_SYNC_VERT_HIGH_ACT)
|
||||
vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH;
|
||||
if (fb_info->var.sync & FB_SYNC_DATA_ENABLE_HIGH_ACT)
|
||||
if (host->sync & MXSFB_SYNC_DATA_ENABLE_HIGH_ACT)
|
||||
vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH;
|
||||
if (fb_info->var.sync & FB_SYNC_DOTCLK_FAILING_ACT)
|
||||
if (host->sync & MXSFB_SYNC_DOTCLK_FAILING_ACT)
|
||||
vdctrl0 |= VDCTRL0_DOTCLK_ACT_FAILING;
|
||||
|
||||
writel(vdctrl0, host->base + LCDC_VDCTRL0);
|
||||
@ -861,6 +862,8 @@ static int mxsfb_probe(struct platform_device *pdev)
|
||||
|
||||
INIT_LIST_HEAD(&fb_info->modelist);
|
||||
|
||||
host->sync = pdata->sync;
|
||||
|
||||
ret = mxsfb_init_fbinfo(host);
|
||||
if (ret != 0)
|
||||
goto error_init_fb;
|
||||
|
@ -24,8 +24,8 @@
|
||||
#define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */
|
||||
#define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */
|
||||
|
||||
#define FB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6)
|
||||
#define FB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */
|
||||
#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6)
|
||||
#define MXSFB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */
|
||||
|
||||
struct mxsfb_platform_data {
|
||||
struct fb_videomode *mode_list;
|
||||
@ -44,6 +44,9 @@ struct mxsfb_platform_data {
|
||||
* allocated. If specified,fb_size must also be specified.
|
||||
* fb_phys must be unused by Linux.
|
||||
*/
|
||||
u32 sync; /* sync mask, contains MXSFB specifics not
|
||||
* carried in fb_info->var.sync
|
||||
*/
|
||||
};
|
||||
|
||||
#endif /* __LINUX_MXSFB_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user