diff options
author | Andy Shevchenko <andy.shevchenko@gmail.com> | 2024-03-03 14:14:10 +0200 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2024-03-08 17:04:04 -0800 |
commit | 6e3f07f9df896fcb2ee80a7d61c70a64735590d9 (patch) | |
tree | 477622f261a04bf103a381e90c9c27f48653266f | |
parent | 9b6c057bc1cec98dec34393ff329ff42a9461cb9 (diff) | |
download | lwn-6e3f07f9df896fcb2ee80a7d61c70a64735590d9.tar.gz lwn-6e3f07f9df896fcb2ee80a7d61c70a64735590d9.zip |
clk: fractional-divider: Move mask calculations out of lock
There is no need to calculate masks under the lock taken.
Move them out of it.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20240303121410.240761-1-andy.shevchenko@gmail.com
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
-rw-r--r-- | drivers/clk/clk-fractional-divider.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractional-divider.c index 5067e067e906..bd882c45385b 100644 --- a/drivers/clk/clk-fractional-divider.c +++ b/drivers/clk/clk-fractional-divider.c @@ -195,14 +195,14 @@ static int clk_fd_set_rate(struct clk_hw *hw, unsigned long rate, n--; } + mmask = GENMASK(fd->mwidth - 1, 0) << fd->mshift; + nmask = GENMASK(fd->nwidth - 1, 0) << fd->nshift; + if (fd->lock) spin_lock_irqsave(fd->lock, flags); else __acquire(fd->lock); - mmask = GENMASK(fd->mwidth - 1, 0) << fd->mshift; - nmask = GENMASK(fd->nwidth - 1, 0) << fd->nshift; - val = clk_fd_readl(fd); val &= ~(mmask | nmask); val |= (m << fd->mshift) | (n << fd->nshift); |