Message ID | CAD=FV=WSDtxjtGD3c22OqXsSqaphKcmup9rAfonbeC-bUWHmSQ@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 59d853d..56db138 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1618,9 +1618,10 @@ int clk_set_rate(struct clk *clk, unsigned long rate) /* prevent racing with updates to the clock topology */ clk_prepare_lock(); - /* bail early if nothing to do */ - if (rate == clk_get_rate(clk)) + /* bail early if nothing to do; linux should always set the rate once */ + if (rate == clk_get_rate(clk) && clk->did_set_rate) goto out; + clk->did_set_rate = true; if ((clk->flags & CLK_SET_RATE_GATE) && clk->prepare_count) { ret = -EBUSY;