summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-06-11 22:11:18 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:44:44 -0800
commit59c8b2d9eb81711c1f53294b9f09f9ee053d4418 (patch)
treec05f710f8c84d5a6448f5e1e58641c22672b31b9 /drivers/usb/gadget
parent6449c1ee5f8033dc381afbea456aeeba16a71ff1 (diff)
Revert "usb: fsl_udc: tegra: Fix for reducing turnaround errors."
This reverts commit 141f664e2b5052d7fcd57c5287ae1e27db0f658b. The original commit (a) renamed con_id for shared user clock from "sclk" to "hclk" (b) increased requested clock rate Since there is no "hclk" shared bus in tegra clock tree, this effectively disabled busy hint from USB driver, and actually reduced the bus clock (instead of increasing it). Bug 821986 sated that clock effect has not been tested. Reverting it would at least restore 80MHz bus clock limit required for USB operations. Change-Id: I280340699df96c1cd21e3d8c0a65b5f89a7607b4 Reviewed-on: http://git-master/r/36200 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Narendra Damahe <ndamahe@nvidia.com> Rebase-Id: R5089f03f8b455ace94d89fef7ef44259d09c2293
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/fsl_tegra_udc.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/drivers/usb/gadget/fsl_tegra_udc.c b/drivers/usb/gadget/fsl_tegra_udc.c
index 860d9a70ffda..c691a1b199d5 100644
--- a/drivers/usb/gadget/fsl_tegra_udc.c
+++ b/drivers/usb/gadget/fsl_tegra_udc.c
@@ -16,7 +16,7 @@
static struct tegra_usb_phy *phy;
static struct clk *udc_clk;
static struct clk *emc_clk;
-static struct clk *hclk_clk;
+static struct clk *sclk_clk;
static void *udc_base;
int fsl_udc_clk_init(struct platform_device *pdev)
@@ -35,21 +35,15 @@ int fsl_udc_clk_init(struct platform_device *pdev)
clk_enable(udc_clk);
- hclk_clk = clk_get(&pdev->dev, "hclk");
- if (IS_ERR(hclk_clk)) {
- dev_err(&pdev->dev, "Can't get hclk clock\n");
- err = PTR_ERR(hclk_clk);
- goto err_hclk;
+ sclk_clk = clk_get(&pdev->dev, "sclk");
+ if (IS_ERR(sclk_clk)) {
+ dev_err(&pdev->dev, "Can't get sclk clock\n");
+ err = PTR_ERR(sclk_clk);
+ goto err_sclk;
}
-#ifdef CONFIG_ARCH_TEGRA_2x_SOC
- /* Set hclk to 240MHz. For Tegra 2x SOC */
- clk_set_rate(hclk_clk, 240000000);
-#else
- /* Set hclk to 216MHz. For Tegra 3x SOC */
- clk_set_rate(hclk_clk, 216000000);
-#endif
- clk_enable(hclk_clk);
+ clk_set_rate(sclk_clk, 80000000);
+ clk_enable(sclk_clk);
emc_clk = clk_get(&pdev->dev, "emc");
if (IS_ERR(emc_clk)) {
@@ -101,9 +95,9 @@ err0:
clk_disable(emc_clk);
clk_put(emc_clk);
err_emc:
- clk_disable(hclk_clk);
- clk_put(hclk_clk);
-err_hclk:
+ clk_disable(sclk_clk);
+ clk_put(sclk_clk);
+err_sclk:
clk_disable(udc_clk);
clk_put(udc_clk);
return err;
@@ -122,8 +116,8 @@ void fsl_udc_clk_release(void)
clk_disable(udc_clk);
clk_put(udc_clk);
- clk_disable(hclk_clk);
- clk_put(hclk_clk);
+ clk_disable(sclk_clk);
+ clk_put(sclk_clk);
clk_disable(emc_clk);
clk_put(emc_clk);
@@ -133,14 +127,14 @@ void fsl_udc_clk_suspend(bool is_dpd)
{
tegra_usb_phy_power_off(phy, is_dpd);
clk_disable(udc_clk);
- clk_disable(hclk_clk);
+ clk_disable(sclk_clk);
clk_disable(emc_clk);
}
void fsl_udc_clk_resume(bool is_dpd)
{
clk_enable(emc_clk);
- clk_enable(hclk_clk);
+ clk_enable(sclk_clk);
clk_enable(udc_clk);
tegra_usb_phy_power_on(phy, is_dpd);
}