On Mon, 2025-08-11 at 11:17 -0400, Brian Masney via B4 Relay wrote: > From: Brian Masney <bmasney@xxxxxxxxxx> > > determine_rate() is expected to return an error code, or 0 on success. > clk_sam9x5_peripheral_determine_rate() has a branch that returns the > parent rate on a certain case. This is the behavior of round_rate(), > so let's go ahead and fix this by setting req->rate. > > Fixes: b4c115c76184f ("clk: at91: clk-peripheral: add support for changeable parent rate") > Signed-off-by: Brian Masney <bmasney@xxxxxxxxxx> Reviewed-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > --- > drivers/clk/at91/clk-peripheral.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c > index c173a44c800aa8cc6970c266995f4a60b0a38554..629f050a855aaebfd1a03ff87c2b016cd2284a5a 100644 > --- a/drivers/clk/at91/clk-peripheral.c > +++ b/drivers/clk/at91/clk-peripheral.c > @@ -279,8 +279,11 @@ static int clk_sam9x5_peripheral_determine_rate(struct clk_hw *hw, > long best_diff = LONG_MIN; > u32 shift; > > - if (periph->id < PERIPHERAL_ID_MIN || !periph->range.max) > - return parent_rate; > + if (periph->id < PERIPHERAL_ID_MIN || !periph->range.max) { > + req->rate = parent_rate; > + > + return 0; > + } > > /* Fist step: check the available dividers. */ > for (shift = 0; shift <= PERIPHERAL_MAX_SHIFT; shift++) { -- Alexander Sverdlin.