diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2011-01-05 21:43:00 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-05 22:15:23 -0500 |
commit | 73674648e9bf3b0a75000b7e97edaac255cd73f7 (patch) | |
tree | cd8e1976fda4e0dcad40262363a26a146e94692a /arch/arm/mach-shmobile/board-ap4evb.c | |
parent | 025a10a76808cfd9e55dbf965d0f1453e4f8ae84 (diff) |
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/board-ap4evb.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-ap4evb.c | 11 |
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) | |||
674 | return -EIO; | 674 | return -EIO; |
675 | 675 | ||
676 | ret = __fsi_set_round_rate(fsib_clk, fsib_rate, enable); | 676 | ret = __fsi_set_round_rate(fsib_clk, fsib_rate, enable); |
677 | clk_put(fsib_clk); | ||
678 | if (ret < 0) | 677 | if (ret < 0) |
679 | return ret; | 678 | goto fsi_set_rate_end; |
680 | 679 | ||
681 | /* FSI DIV setting */ | 680 | /* FSI DIV setting */ |
682 | ret = __fsi_set_round_rate(fdiv_clk, fdiv_rate, enable); | 681 | 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) | |||
684 | /* disable FSI B */ | 683 | /* disable FSI B */ |
685 | if (enable) | 684 | if (enable) |
686 | __fsi_set_round_rate(fsib_clk, fsib_rate, 0); | 685 | __fsi_set_round_rate(fsib_clk, fsib_rate, 0); |
687 | return ret; | 686 | goto fsi_set_rate_end; |
688 | } | 687 | } |
689 | 688 | ||
690 | return ackmd_bpfmd; | 689 | ret = ackmd_bpfmd; |
690 | |||
691 | fsi_set_rate_end: | ||
692 | clk_put(fsib_clk); | ||
693 | return ret; | ||
691 | } | 694 | } |
692 | 695 | ||
693 | static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable) | 696 | static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable) |