summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuwei Zhou <b45643@freescale.com>2013-11-29 12:54:49 +0800
committerLuwei Zhou <b45643@freescale.com>2013-11-29 15:28:32 +0800
commitc18d944f8dd21fbf9257a34ce26498bfdc8869af (patch)
tree17df4c765051696f515dcf287fcf104955584064
parent465aa30deea0cc927186170e63180cb7307366d0 (diff)
ENGR00290176 mxc: mlb: Fix MLB suspend/resume issue
There is risk that mlb register will be access when clock is closed. This patch fix it. Signed-off-by: Luwei Zhou <b45643@freescale.com> (cherry picked from commit c2cd7fb85116694372ee3228c939fb958c261835)
-rwxr-xr-xdrivers/mxc/mlb/mxc_mlb150.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/mxc/mlb/mxc_mlb150.c b/drivers/mxc/mlb/mxc_mlb150.c
index 57708f1267dc..fe0239a8df0c 100755
--- a/drivers/mxc/mlb/mxc_mlb150.c
+++ b/drivers/mxc/mlb/mxc_mlb150.c
@@ -2702,14 +2702,14 @@ static int mxc_mlb150_suspend(struct platform_device *pdev, pm_message_t state)
struct mlb_data *drvdata = platform_get_drvdata(pdev);
struct mlb_dev_info *pdevinfo = drvdata->devinfo;
- mlb150_dev_exit();
-
if (pdevinfo && atomic_read(&pdevinfo->on)
&& (pdevinfo->fps >= CLK_2048FS))
clk_disable_unprepare(drvdata->clk_mlb6p);
- if (pdevinfo && atomic_read(&pdevinfo->opencnt))
+ if (pdevinfo && atomic_read(&pdevinfo->opencnt)) {
+ mlb150_dev_exit();
clk_disable_unprepare(drvdata->clk_mlb3p);
+ }
return 0;
}
@@ -2719,15 +2719,15 @@ static int mxc_mlb150_resume(struct platform_device *pdev)
struct mlb_data *drvdata = platform_get_drvdata(pdev);
struct mlb_dev_info *pdevinfo = drvdata->devinfo;
- if (pdevinfo && atomic_read(&pdevinfo->opencnt))
+ if (pdevinfo && atomic_read(&pdevinfo->opencnt)) {
clk_prepare_enable(drvdata->clk_mlb3p);
+ mlb150_dev_init();
+ }
if (pdevinfo && atomic_read(&pdevinfo->on) &&
(pdevinfo->fps >= CLK_2048FS))
clk_prepare_enable(drvdata->clk_mlb6p);
- mlb150_dev_init();
-
return 0;
}
#else