summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-01-06 18:12:28 -0800
committerColin Cross <ccross@android.com>2011-01-06 18:12:28 -0800
commitab3fe23e4a9bad1a04cf40393fc65ece67b68723 (patch)
treeaa4487774ba10ad0d63a9029e3e7708b23f58808 /drivers/video/tegra/dc
parent3051b1526aca9dc9262028a5dd443d1083364b95 (diff)
parentc32a73b4fce0ac2825e3d52460ea9e767edadc6b (diff)
Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36
Diffstat (limited to 'drivers/video/tegra/dc')
-rw-r--r--drivers/video/tegra/dc/dc.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 946d3da7dc2c..2819a93d8442 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1041,6 +1041,7 @@ static int tegra_dc_probe(struct nvhost_device *ndev)
void __iomem *base;
int irq;
int i;
+ unsigned long emc_clk_rate;
if (!ndev->dev.platform_data) {
dev_err(&ndev->dev, "no platform data\n");
@@ -1097,13 +1098,6 @@ static int tegra_dc_probe(struct nvhost_device *ndev)
goto err_put_clk;
}
- /*
- * The emc is a shared clock, it will be set to the highest
- * requested rate from any user. Set the rate to ULONG_MAX to
- * always request the max rate whenever this request is enabled
- */
- clk_set_rate(emc_clk, ULONG_MAX);
-
dc->clk = clk;
dc->emc_clk = emc_clk;
dc->base_res = base_res;
@@ -1112,6 +1106,13 @@ static int tegra_dc_probe(struct nvhost_device *ndev)
dc->ndev = ndev;
dc->pdata = ndev->dev.platform_data;
+ /*
+ * The emc is a shared clock, it will be set based on
+ * the requirements for each user on the bus.
+ */
+ emc_clk_rate = dc->pdata->emc_clk_rate;
+ clk_set_rate(emc_clk, emc_clk_rate ? emc_clk_rate : ULONG_MAX);
+
if (dc->pdata->flags & TEGRA_DC_FLAG_ENABLED)
dc->enabled = true;