diff options
| author | Pedro Kopper <pedro.kopper@microchip.com> | 2026-08-14 10:22:13 +0100 |
|---|---|---|
| committer | Stephen Boyd <sboyd@kernel.org> | 2026-08-19 23:11:09 -0700 |
| commit | fbfa013eeac299ecc015cb14fa40e382a23fb489 (patch) | |
| tree | b45492ddcc932214707948aefa2efb3af19aa94a /drivers | |
| parent | 39c0e6c844a14945040cca4ccf6997792ab764c4 (diff) | |
clk: microchip: mpfs: fix regmap_update_bits() mask/val order
mpfs_cfg_clk_set_rate() passes the mask and value arguments to
regmap_update_bits() in the wrong order. The resulting write becomes
reg = orig_reg | val, causing bits to not be cleared if the clock
divider changes.
Pass the arguments in the correct order so the divider field is updated
as intended.
Fixes: c6f2dddfa7f9 ("clk: microchip: mpfs: use regmap for clocks")
Signed-off-by: Pedro Kopper <pedro.kopper@microchip.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/clk/microchip/clk-mpfs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c index ee58304913ef..7f044775aea8 100644 --- a/drivers/clk/microchip/clk-mpfs.c +++ b/drivers/clk/microchip/clk-mpfs.c @@ -285,7 +285,7 @@ static int mpfs_cfg_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned mask = clk_div_mask(cfg->width) << cfg->shift; val = divider_setting << cfg->shift; - regmap_update_bits(cfg->map, cfg->map_offset, val, mask); + regmap_update_bits(cfg->map, cfg->map_offset, mask, val); return 0; } |
