@@ -569,6 +569,7 @@ static int fsi_set_rate(int is_porta, int rate)
{
struct clk *fsib_clk;
struct clk *fdiv_clk = &sh7372_fsidivb_clk;
+ unsigned long new_rate;
int ret;
/* set_rate is not needed if port A */
@@ -581,7 +582,9 @@ static int fsi_set_rate(int is_porta, int rate)
switch (rate) {
case 44100:
- clk_set_rate(fsib_clk, clk_round_rate(fsib_clk, 11283000));
+ new_rate = clk_round_rate(fsib_clk, 11283000);
+ clk_set_rate(fsib_clk, new_rate);
+ clk_set_rate(fdiv_clk, new_rate);
ret = SH_FSI_ACKMD_256 | SH_FSI_BPFMD_64;
break;
case 48000: