[PATCH] ARM: video: mxs: Fix mxsfb misconfiguring VDCTRL0
Shawn Guo
shawn.guo at linaro.org
Tue Mar 19 01:51:19 EDT 2013
On Mon, Mar 18, 2013 at 07:24:02PM +0100, Marek Vasut wrote:
> The issue fixed by this patch manifests only then using X11
> with mxsfb driver. The X11 will display either shifted image
> or otherwise distorted image on the LCD.
>
> The problem is that the X11 tries to reconfigure the framebuffer
> and along the way calls fb_ops.fb_set_par() with X11's desired
> configuration values. The field of particular interest is
> fb_info->var.sync which contains non-standard values if
> configured by kernel. These are either FB_SYNC_DATA_ENABLE_HIGH_ACT,
> FB_SYNC_DOTCLK_FAILING_ACT or both, depending on the platform
> configuration. Both of these values are defined in the
> include/linux/mxsfb.h file.
>
> The driver interprets these values and configures the LCD controller
> accordingly. Yet X11 only has access to the standard values for this
> field defined in include/uapi/linux/fb.h and thus, unlike kernel,
> omits these special values. This results in distorted image on the
> LCD.
>
> This patch moves these non-standard values into new field of the
> mxsfb_platform_data structure so the driver can in turn check this
> field instead of the video mode field for these specific portions.
>
> Moreover, this patch prefixes these values with MXSFB_SYNC_ prefix
> instead of FB_SYNC_ prefix to prevent confusion of subsequent users.
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> Cc: Linux ARM <linux-arm-kernel at lists.infradead.org>
> Cc: Linux FBDEV <linux-fbdev at vger.kernel.org>
> Cc: Lothar Waßmann <LW at karo-electronics.de>
> Cc: Sascha Hauer <kernel at pengutronix.de>
> Cc: Shawn Guo <shawn.guo at linaro.org>
> Tested-by: Fabio Estevam <fabio.estevam at freescale.com>
Applied with one trivial change below.
...
> @@ -407,6 +404,8 @@ 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;
> +
I removed this unnecessary new line.
Shawn
> }
More information about the linux-arm-kernel
mailing list