]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00209883-2 - EPDC fb: Add support for MX 6SoloLite SoC
authorDanny Nold <dannynold@freescale.com>
Thu, 17 May 2012 20:22:51 +0000 (15:22 -0500)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:40 +0000 (08:34 +0200)
- Add support for TCE source buffer in EPDC v2.1
- Remove debug code

Signed-off-by: Danny Nold <dannynold@freescale.com>
drivers/video/mxc/epdc_regs.h
drivers/video/mxc/mxc_epdc_fb.c

index 50d352e7a2125dfaacf70f45c68f0788ebe2724d..cc7b5000db180586d181ea928f2fc33ec710f910 100644 (file)
@@ -163,9 +163,7 @@ extern void __iomem *epdc_base;
 #define EPDC_PIGEON_15_0               (epdc_base + 0xBC0)
 #define EPDC_PIGEON_15_1               (epdc_base + 0xBD0)
 #define EPDC_PIGEON_15_2               (epdc_base + 0xBE0)
-#define EPDC_PIGEON_16_0               (epdc_base + 0xC00)
-#define EPDC_PIGEON_16_1               (epdc_base + 0xC10)
-#define EPDC_PIGEON_16_2               (epdc_base + 0xC20)
+#define EPDC_WB_ADDR_TCE               (epdc_base + 0xC10)
 
 /*
  * Register field definitions
index da77373e03a68b5ef8f7713c686970ba5598084f..ef4916db0436e9607cbec26919446af232e586fb 100644 (file)
@@ -1130,6 +1130,7 @@ static void epdc_init_sequence(struct mxc_epdc_fb_data *fb_data)
        epdc_init_settings(fb_data);
        __raw_writel(fb_data->waveform_buffer_phys, EPDC_WVADDR);
        __raw_writel(fb_data->working_buffer_phys, EPDC_WB_ADDR);
+       __raw_writel(fb_data->working_buffer_phys, EPDC_WB_ADDR_TCE);
        fb_data->in_init = true;
        epdc_powerup(fb_data);
        draw_mode0(fb_data);
@@ -4006,8 +4007,8 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
        clk_enable(fb_data->epdc_clk_pix);
        rounded_pix_clk = clk_round_rate(fb_data->epdc_clk_pix, target_pix_clk);
 
-       if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/200) ||
-               (rounded_pix_clk <= target_pix_clk - target_pix_clk/200))) {
+       if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+               (rounded_pix_clk <= target_pix_clk - target_pix_clk/100))) {
                /* Can't get close enough without changing parent clk */
                epdc_parent = clk_get_parent(fb_data->epdc_clk_pix);
                rounded_parent_rate = clk_round_rate(epdc_parent, target_pix_clk);
@@ -4018,8 +4019,8 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
                clk_set_rate(epdc_parent, epdc_pix_rate);
 
                rounded_pix_clk = clk_round_rate(fb_data->epdc_clk_pix, target_pix_clk);
-               if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/200) ||
-                       (rounded_pix_clk <= target_pix_clk - target_pix_clk/200)))
+               if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+                       (rounded_pix_clk <= target_pix_clk - target_pix_clk/100)))
                        /* Still can't get a good clock, provide warning */
                        dev_err(fb_data->dev, "Unable to get an accurate EPDC pix clk"
                                "desired = %lu, actual = %lu\n", target_pix_clk,