summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorRobby Cai <R63905@freescale.com>2013-08-08 11:34:02 +0800
committerRobby Cai <R63905@freescale.com>2013-08-08 12:22:05 +0800
commit99f5407c6751e3a5fb098ede214f201c2093509b (patch)
treed5337d720629aa510d1cd2f04d455c8f5c9585cb /drivers/dma
parent4e0ce32b6c319c35d3d739e2ef87b55643841a64 (diff)
ENGR00273973-1 Revert "ENGR00270573-2 [MX6SL]Add support for dynamic Power Gati
This reverts commit 881e21c1275dcc40ccd63fb4fa46b990eeb4fb00. With the commit 881e21c1 and 7b60e285, the system will hang when do suspend and resume stress test continuouly while run edpc test in the background. Revert it now and revisit it later. Signed-off-by: Robby Cai <R63905@freescale.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/pxp/pxp_dma_v2.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v2.c b/drivers/dma/pxp/pxp_dma_v2.c
index f0b50b7a1c05..7169b44a9bb3 100644
--- a/drivers/dma/pxp/pxp_dma_v2.c
+++ b/drivers/dma/pxp/pxp_dma_v2.c
@@ -800,8 +800,6 @@ static void pxp_clk_enable(struct pxps *pxp)
}
clk_enable(pxp->clk);
- /* Pull PxP out of reset */
- __raw_writel(0, pxp->base + HW_PXP_CTRL);
pxp->clk_stat = CLK_STAT_ON;
mutex_unlock(&pxp->clk_mutex);
@@ -820,13 +818,6 @@ static void pxp_clk_disable(struct pxps *pxp)
spin_lock_irqsave(&pxp->lock, flags);
if ((pxp->pxp_ongoing == 0) && list_empty(&head)) {
- /* Put the PXP into reset as the Display MIX is going
- * to be Power gated.
- */
- while (__raw_readl(pxp->base + HW_PXP_CTRL)
- & BM_PXP_CTRL_ENABLE)
- ;
- __raw_writel(BM_PXP_CTRL_SFTRST, pxp->base + HW_PXP_CTRL);
spin_unlock_irqrestore(&pxp->lock, flags);
clk_disable(pxp->clk);
pxp->clk_stat = CLK_STAT_OFF;
@@ -1636,11 +1627,11 @@ static int pxp_suspend(struct platform_device *pdev, pm_message_t state)
{
struct pxps *pxp = platform_get_drvdata(pdev);
- /* Need to call the enable/disable sequence here to
- * ensure that the PXP is in the right state before the
- * SOC enters suspend state.
- */
pxp_clk_enable(pxp);
+ while (__raw_readl(pxp->base + HW_PXP_CTRL) & BM_PXP_CTRL_ENABLE)
+ ;
+
+ __raw_writel(BM_PXP_CTRL_SFTRST, pxp->base + HW_PXP_CTRL);
pxp_clk_disable(pxp);
return 0;
@@ -1650,11 +1641,9 @@ static int pxp_resume(struct platform_device *pdev)
{
struct pxps *pxp = platform_get_drvdata(pdev);
- /* Need to call the enable/disable sequence here to
- * ensure that the PXP is in the right state after the
- * SOC exits suspend state.
- */
pxp_clk_enable(pxp);
+ /* Pull PxP out of reset */
+ __raw_writel(0, pxp->base + HW_PXP_CTRL);
pxp_clk_disable(pxp);
return 0;