summaryrefslogtreecommitdiff
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2011-01-06 05:43:00 +0300
committerPaul Mundt <lethal@linux-sh.org>2011-01-06 06:15:23 +0300
commit73674648e9bf3b0a75000b7e97edaac255cd73f7 (patch)
treecd8e1976fda4e0dcad40262363a26a146e94692a /arch/arm/mach-shmobile
parent025a10a76808cfd9e55dbf965d0f1453e4f8ae84 (diff)
downloadlinux-73674648e9bf3b0a75000b7e97edaac255cd73f7.tar.xz
ARM: mach-shmobile: ap4evb: fixup clk_put timing of fsib_clk
fsib_clk will be used when fdiv_clk failed on fsi_hdmi_set_rate. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index f59e93919e26..07b85c034d13 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -674,9 +674,8 @@ static int fsi_hdmi_set_rate(struct device *dev, int rate, int enable)
return -EIO;
ret = __fsi_set_round_rate(fsib_clk, fsib_rate, enable);
- clk_put(fsib_clk);
if (ret < 0)
- return ret;
+ goto fsi_set_rate_end;
/* FSI DIV setting */
ret = __fsi_set_round_rate(fdiv_clk, fdiv_rate, enable);
@@ -684,10 +683,14 @@ static int fsi_hdmi_set_rate(struct device *dev, int rate, int enable)
/* disable FSI B */
if (enable)
__fsi_set_round_rate(fsib_clk, fsib_rate, 0);
- return ret;
+ goto fsi_set_rate_end;
}
- return ackmd_bpfmd;
+ ret = ackmd_bpfmd;
+
+fsi_set_rate_end:
+ clk_put(fsib_clk);
+ return ret;
}
static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)