]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00209978-2: imx6sl: lcdif: update driver part
authorRobby Cai <R63905@freescale.com>
Fri, 18 May 2012 10:11:16 +0000 (18:11 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:11:53 +0000 (14:11 +0200)
- use new console lock/unlock

Board Rework Needed:
 - remove R572, R569, R611 to eliminate conflict with FEC modules.

Signed-off-by: Robby Cai <R63905@freescale.com>
drivers/video/mxc/mxc_elcdif_fb.c
drivers/video/mxc/mxcfb_seiko_wvga.c
include/linux/fsl_devices.h

index 7a5fa6d1900cc14564915afa40be849cf8ef26f5..2c96eecc111fb44b215e041001542adc5ad7e7d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2010-2012 Freescale Semiconductor, Inc.
  */
 
 /*
@@ -128,8 +128,10 @@ static inline void setup_dotclk_panel(u32 pixel_clk,
        __raw_writel(BM_ELCDIF_CTRL_SHIFT_NUM_BITS,
                     elcdif_base + HW_ELCDIF_CTRL_CLR);
 
+       __raw_writel(BM_ELCDIF_CTRL2_OUTSTANDING_REQS,
+                    elcdif_base + HW_ELCDIF_CTRL2_CLR);
        __raw_writel(BF_ELCDIF_CTRL2_OUTSTANDING_REQS
-                   (BV_ELCDIF_CTRL2_OUTSTANDING_REQS__REQ_8),
+                   (BV_ELCDIF_CTRL2_OUTSTANDING_REQS__REQ_16),
                     elcdif_base + HW_ELCDIF_CTRL2_SET);
 
        /* Recover on underflow */
@@ -824,7 +826,7 @@ static int mxc_elcdif_fb_set_par(struct fb_info *fbi)
        mxc_init_elcdif();
        mxc_elcdif_init_panel();
 
-       dev_dbg(fbi->device, "pixclock = %ul Hz\n",
+       dev_dbg(fbi->device, "pixclock = %lu Hz\n",
                (u32) (PICOS2KHZ(fbi->var.pixclock) * 1000UL));
 
        memset(&sig_cfg, 0, sizeof(sig_cfg));
@@ -1369,7 +1371,7 @@ static int mxc_elcdif_fb_suspend(struct platform_device *pdev,
        struct mxc_elcdif_fb_data *data = (struct mxc_elcdif_fb_data *)fbi->par;
        int saved_blank;
 
-       acquire_console_sem();
+       console_lock();
        fb_set_suspend(fbi, 1);
        saved_blank = data->cur_blank;
        mxc_elcdif_fb_blank(FB_BLANK_POWERDOWN, fbi);
@@ -1388,7 +1390,7 @@ static int mxc_elcdif_fb_suspend(struct platform_device *pdev,
                clk_disable(g_elcdif_axi_clk);
                g_elcdif_axi_clk_enable = false;
        }
-       release_console_sem();
+       console_unlock();
        return 0;
 }
 
@@ -1397,10 +1399,10 @@ static int mxc_elcdif_fb_resume(struct platform_device *pdev)
        struct fb_info *fbi = platform_get_drvdata(pdev);
        struct mxc_elcdif_fb_data *data = (struct mxc_elcdif_fb_data *)fbi->par;
 
-       acquire_console_sem();
+       console_lock();
        mxc_elcdif_fb_blank(data->next_blank, fbi);
        fb_set_suspend(fbi, 0);
-       release_console_sem();
+       console_unlock();
 
        return 0;
 }
index 0ba4d9ed064fa4f7deddd5d55c361928497aa2a9..c96238d80cb2d67f672d77ffd4c68a3dfc83dd17 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
  */
 
 /*
@@ -122,7 +122,7 @@ static struct notifier_block nb = {
 static int __devinit lcd_probe(struct platform_device *pdev)
 {
        int i;
-       struct mxc_lcd_platform_data *plat = pdev->dev.platform_data;
+       struct fsl_mxc_lcd_platform_data *plat = pdev->dev.platform_data;
 
        if (plat) {
                if (plat->reset)
index bec8fe9cd83832b54c73d5b0e63451adc57d66db..b476173e21a44be53ffa427dccbd3d73b399c5e4 100644 (file)
@@ -238,6 +238,13 @@ struct fsl_mxc_ldb_platform_data {
        int sec_disp_id;
 };
 
+struct mxc_fb_platform_data {
+       struct fb_videomode *mode;
+       int num_modes;
+       char *mode_str;
+       u32 interface_pix_fmt;
+};
+
 struct fsl_mxc_lcd_platform_data {
        char *io_reg;
        char *core_reg;