diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index 3d017b04784bc76265a4e22841df6e8e7dc1f6b0..0a603242f36712e1060542f6c14c97efd3100a76 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -284,6 +284,8 @@ void followparent_recalc(struct clk *clk)
 		return;
 
 	clk->rate = clk->parent->rate;
+	if (unlikely(clk->flags & RATE_PROPAGATES))
+		propagate_rate(clk);
 }
 
 /* Propagate rate to children */