diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 9b2f94197dbf5943fb5b3295c01639af19ac3c16..2e669a87fb15b3555fbce57ca19fc04e42418992 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1216,7 +1216,7 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
 	clk_prepare_lock();
 
 	/* bail early if nothing to do */
-	if (rate == clk->rate)
+	if (rate == clk_get_rate(clk))
 		goto out;
 
 	if ((clk->flags & CLK_SET_RATE_GATE) && clk->prepare_count) {