summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Wu <pengw@nvidia.com>2014-06-04 11:16:32 -0700
committerWinnie Hsu <whsu@nvidia.com>2014-06-04 18:08:43 -0700
commita7feb27765cf32d7da33659771fd0b2571c87b8d (patch)
treeea56dd7bcdf819fb9725d3ad733b9b931fd8dabe
parent141076cd925f093adff5971ae8970ae339007ae4 (diff)
media: video: fix clock settings for Tegra VI driver
- remove reduntant emc clock rate set which is controlled by DVFS - VI's maxim working clock freq is 300MHz - Change VI clock divider from an integer to a decimal, so the maxim VI clock on Cardhu should be 272MHz (PLL_P is 408MHz and divider is 1.5) Bug 1478352 Change-Id: I4028ed8531d92300d131befb53a4c9dc9f90930d Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/419071 Reviewed-by: Winnie Hsu <whsu@nvidia.com> Tested-by: Winnie Hsu <whsu@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/tegra3_clocks.c2
-rw-r--r--drivers/media/video/tegra_v4l2_camera.c5
2 files changed, 3 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/tegra3_clocks.c b/arch/arm/mach-tegra/tegra3_clocks.c
index 0bc60869a3d0..e9d29d4ce758 100644
--- a/arch/arm/mach-tegra/tegra3_clocks.c
+++ b/arch/arm/mach-tegra/tegra3_clocks.c
@@ -4369,7 +4369,7 @@ struct clk tegra_list_clks[] = {
PERIPH_CLK("uartc_dbg", "serial8250.0", "uartc", 55, 0x1a0, 900000000, mux_pllp_clkm, MUX | DIV_U151 | DIV_U151_UART | PERIPH_ON_APB),
PERIPH_CLK("uartd_dbg", "serial8250.0", "uartd", 65, 0x1c0, 900000000, mux_pllp_clkm, MUX | DIV_U151 | DIV_U151_UART | PERIPH_ON_APB),
PERIPH_CLK("uarte_dbg", "serial8250.0", "uarte", 66, 0x1c4, 900000000, mux_pllp_clkm, MUX | DIV_U151 | DIV_U151_UART | PERIPH_ON_APB),
- PERIPH_CLK_EX("vi", "tegra_camera", "vi", 20, 0x148, 470000000, mux_pllm_pllc_pllp_plla, MUX | DIV_U71 | DIV_U71_INT, &tegra_vi_clk_ops),
+ PERIPH_CLK_EX("vi", "tegra_camera", "vi", 20, 0x148, 300000000, mux_pllm_pllc_pllp_plla, MUX | DIV_U71, &tegra_vi_clk_ops),
PERIPH_CLK("vi_sensor", "tegra_camera", "vi_sensor", 20, 0x1a8, 150000000, mux_pllm_pllc_pllp_plla, MUX | DIV_U71 | PERIPH_NO_RESET),
PERIPH_CLK("3d", "3d", NULL, 24, 0x158, 600000000, mux_pllm_pllc_pllp_plla, MUX | DIV_U71 | DIV_U71_INT | DIV_U71_IDLE | PERIPH_MANUAL_RESET),
PERIPH_CLK("3d2", "3d2", NULL, 98, 0x3b0, 600000000, mux_pllm_pllc_pllp_plla, MUX | DIV_U71 | DIV_U71_INT | DIV_U71_IDLE | PERIPH_MANUAL_RESET),
diff --git a/drivers/media/video/tegra_v4l2_camera.c b/drivers/media/video/tegra_v4l2_camera.c
index 237441f9ee31..8834e27afcee 100644
--- a/drivers/media/video/tegra_v4l2_camera.c
+++ b/drivers/media/video/tegra_v4l2_camera.c
@@ -1000,7 +1000,7 @@ static void tegra_camera_activate(struct tegra_camera_dev *pcdev)
tegra_unpowergate_partition(TEGRA_POWERGATE_VENC);
/* Turn on relevant clocks. */
- clk_set_rate(pcdev->clk_vi, 150000000);
+ clk_set_rate(pcdev->clk_vi, 300000000);
clk_enable(pcdev->clk_vi);
clk_set_rate(pcdev->clk_vi_sensor, 24000000);
clk_enable(pcdev->clk_vi_sensor);
@@ -1009,7 +1009,6 @@ static void tegra_camera_activate(struct tegra_camera_dev *pcdev)
clk_enable(pcdev->clk_csus);
clk_set_rate(pcdev->clk_sclk, 80000000);
clk_enable(pcdev->clk_sclk);
- clk_set_rate(pcdev->clk_sclk, 375000000);
clk_enable(pcdev->clk_emc);
/* Save current syncpt values. */
@@ -1887,7 +1886,7 @@ static int __devinit tegra_camera_probe(struct nvhost_device *ndev,
goto exit_put_clk_sclk;
}
- clk_set_rate(pcdev->clk_vi, 150000000);
+ clk_set_rate(pcdev->clk_vi, 300000000);
clk_set_rate(pcdev->clk_vi_sensor, 24000000);
/* Get regulator pointer */