[U-Boot] [PATCH] mx6sabresd: Fix wrong colors in LVDS display
Liu Ying
liu.y.victor at gmail.com
Fri Nov 22 03:29:20 CET 2013
Hi Fabio,
2013/11/9 Fabio Estevam <fabio.estevam at freescale.com>
> Currently HDMI splash screen is selected by default on mx6sabresd boards.
>
> As LVDS is also always enabled, this causes incorrect colors to be
> displayed in
> the LVDS panel due to the different pixel format in HDMI and LVDS.
>
> Fix this by selecting the LVDS panel as the default splash output and also
> by
> ensuring that LVDS is turned off when HDMI output is active.
>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> board/freescale/mx6sabresd/mx6sabresd.c | 30
> ++++++++++++++++++++++--------
> 1 file changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/board/freescale/mx6sabresd/mx6sabresd.c
> b/board/freescale/mx6sabresd/mx6sabresd.c
> index 9dbe605..ba1f289 100644
> --- a/board/freescale/mx6sabresd/mx6sabresd.c
> +++ b/board/freescale/mx6sabresd/mx6sabresd.c
> @@ -249,8 +249,21 @@ static int detect_hdmi(struct display_info_t const
> *dev)
> return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
> }
>
> +static void disable_lvds(struct display_info_t const *dev)
> +{
> + struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
> +
> + int reg = readl(&iomux->gpr[2]);
> +
> + reg &= ~(IOMUXC_GPR2_LVDS_CH0_MODE_DISABLED |
> + IOMUXC_GPR2_LVDS_CH1_MODE_ENABLED_DI0);
>
Should change the above logic to this to make sure both the LDB two
channels are disabled correctly:
reg &= ~(IOMUXC_GPR2_LVDS_CH0_MODE_MASK | IOMUXC_GPR2_LVDS_CH1_MODE_MASK);
Otherwise, Acked-by: Liu Ying <liu.y.victor at gmail.com<Ying.Liu at freescale.com>
>
Regards,
Liu Ying
+
> + writel(reg, &iomux->gpr[2]);
> +}
> +
> static void do_enable_hdmi(struct display_info_t const *dev)
> {
> + disable_lvds(dev);
> imx_enable_hdmi_phy();
> }
>
> @@ -263,14 +276,15 @@ static void enable_lvds(struct display_info_t const
> *dev)
> IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT;
> writel(reg, &iomux->gpr[2]);
> }
> +
> static struct display_info_t const displays[] = {{
> .bus = -1,
> .addr = 0,
> - .pixfmt = IPU_PIX_FMT_RGB24,
> - .detect = detect_hdmi,
> - .enable = do_enable_hdmi,
> + .pixfmt = IPU_PIX_FMT_LVDS666,
> + .detect = NULL,
> + .enable = enable_lvds,
> .mode = {
> - .name = "HDMI",
> + .name = "Hannstar-XGA",
> .refresh = 60,
> .xres = 1024,
> .yres = 768,
> @@ -286,11 +300,11 @@ static struct display_info_t const displays[] = {{
> } }, {
> .bus = -1,
> .addr = 0,
> - .pixfmt = IPU_PIX_FMT_LVDS666,
> - .detect = NULL,
> - .enable = enable_lvds,
> + .pixfmt = IPU_PIX_FMT_RGB24,
> + .detect = detect_hdmi,
> + .enable = do_enable_hdmi,
> .mode = {
> - .name = "Hannstar-XGA",
> + .name = "HDMI",
> .refresh = 60,
> .xres = 1024,
> .yres = 768,
> --
> 1.8.1.2
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
More information about the U-Boot
mailing list