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>
This commit is contained in:
parent
025a10a768
commit
73674648e9
1 changed files with 7 additions and 4 deletions
|
@ -674,9 +674,8 @@ static int fsi_hdmi_set_rate(struct device *dev, int rate, int enable)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
ret = __fsi_set_round_rate(fsib_clk, fsib_rate, enable);
|
ret = __fsi_set_round_rate(fsib_clk, fsib_rate, enable);
|
||||||
clk_put(fsib_clk);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
goto fsi_set_rate_end;
|
||||||
|
|
||||||
/* FSI DIV setting */
|
/* FSI DIV setting */
|
||||||
ret = __fsi_set_round_rate(fdiv_clk, fdiv_rate, enable);
|
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 */
|
/* disable FSI B */
|
||||||
if (enable)
|
if (enable)
|
||||||
__fsi_set_round_rate(fsib_clk, fsib_rate, 0);
|
__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)
|
static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
|
||||||
|
|
Reference in a new issue