aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2013-12-02 02:40:46 -0500
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 09:47:26 -0400
commit3635877fda641334eb3ed8fc6cdb01ea7ba2f027 (patch)
tree8121c56257aa4200c87bad12d78d6c91ccbb75b0
parent077b24de57070a908bd094903f2b89619309f278 (diff)
ENGR00290337 ipuv3: Setup pixel clock tree after ipu reset
When the ipu pixel clocks are initialized, the default pixel clock rate will be calucated according to the present ipu register setting which is likely set by a bootloader. But these registers will be reset by the ipu reset function. If the default pixel clock rate is the same to what is requested later, the clk_set_rate function will treat this case as pixel clock unchanged. Move the pixel clock setup function after the ipu reset function to resolve this issue Signed-off-by: Sandor Yu <R01008@freescale.com>
-rw-r--r--drivers/mxc/ipu3/ipu_common.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
index 8303bc8bf131..e4bf14bf35de 100644
--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c
@@ -465,12 +465,6 @@ static int ipu_probe(struct platform_device *pdev)
465 } 465 }
466 466
467 ipu->online = true; 467 ipu->online = true;
468 ret = ipu_clk_setup_enable(ipu, pltfm_data);
469 if (ret < 0) {
470 dev_err(ipu->dev, "ipu clk setup failed\n");
471 ipu->online = false;
472 return ret;
473 }
474 468
475 platform_set_drvdata(pdev, ipu); 469 platform_set_drvdata(pdev, ipu);
476 470
@@ -490,6 +484,14 @@ static int ipu_probe(struct platform_device *pdev)
490 IPU_DISP_GEN); 484 IPU_DISP_GEN);
491 } 485 }
492 486
487 /* setup ipu clk tree after ipu reset */
488 ret = ipu_clk_setup_enable(ipu, pltfm_data);
489 if (ret < 0) {
490 dev_err(ipu->dev, "ipu clk setup failed\n");
491 ipu->online = false;
492 return ret;
493 }
494
493 /* Set sync refresh channels and CSI->mem channel as high priority */ 495 /* Set sync refresh channels and CSI->mem channel as high priority */
494 ipu_idmac_write(ipu, 0x18800001L, IDMAC_CHA_PRI(0)); 496 ipu_idmac_write(ipu, 0x18800001L, IDMAC_CHA_PRI(0));
495 497