diff options
author | Sandor Yu <R01008@freescale.com> | 2013-12-02 02:40:46 -0500 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2014-04-16 09:47:26 -0400 |
commit | 3635877fda641334eb3ed8fc6cdb01ea7ba2f027 (patch) | |
tree | 8121c56257aa4200c87bad12d78d6c91ccbb75b0 | |
parent | 077b24de57070a908bd094903f2b89619309f278 (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.c | 14 |
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 | ||