summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHyungwoo Yang <hyungwooy@nvidia.com>2011-09-06 19:03:10 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-09-08 17:19:47 -0700
commitb83e795747fa860b5b7fb66b2067ebe4f15bcfd0 (patch)
tree49d2cf606b7927475f5f2c61945e514a95eac372 /drivers
parent642eac7b9c8994b42d32a0c3794d0bb2194e62c0 (diff)
video: tegra: support display board PM313
This change supports PM313 with 19X12 panel. The change uses PM313 in "Single input to Dual output" mode Bug ID : 822980 Change-Id: Ibba1f116ea6e4b2626e451c66a39caca79055d0e Reviewed-on: http://git-master/r/50215 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/dc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 94580d90aff1..59bae4329668 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1218,17 +1218,28 @@ void tegra_dc_setup_clk(struct tegra_dc *dc, struct clk *clk)
int pclk;
if (dc->out->type == TEGRA_DC_OUT_RGB) {
+ unsigned long rate;
struct clk *parent_clk =
clk_get_sys(NULL, dc->out->parent_clk ? : "pll_p");
if (clk_get_parent(clk) != parent_clk)
clk_set_parent(clk, parent_clk);
+
+ if (parent_clk != clk_get_sys(NULL, "pll_p")) {
+ struct clk *base_clk = clk_get_parent(parent_clk);
+
+ /* Assuming either pll_d or pll_d2 is used */
+ rate = dc->mode.pclk * 2;
+
+ if (rate != clk_get_rate(base_clk))
+ clk_set_rate(base_clk, rate);
+ }
}
if (dc->out->type == TEGRA_DC_OUT_HDMI) {
unsigned long rate;
struct clk *parent_clk =
- clk_get_sys(NULL, dc->out->parent_clk ? : "pll_d_out0");
+ clk_get_sys(NULL, dc->out->parent_clk ? : "pll_d2_out0");
struct clk *base_clk = clk_get_parent(parent_clk);
/* needs to match tegra_dc_hdmi_supported_modes[]