Quoting Manivannan Sadhasivam via B4 Relay (2024-12-05 08:50:29) > From: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > > determine_rate() callback is used by the clk_set_rate() API to get the > closest rate of the target rate supported by the clock. If this callback > is not implemented (nor round_rate() callback), then the API will assume > that the clock cannot set the requested rate. And since there is no parent, > it will return -EINVAL. > > This is not an issue right now as clk_set_rate() mistakenly compares the > target rate with cached rate and bails out early. But once that is fixed > to compare the target rate with the actual rate of the clock (returned by > recalc_rate()), then clk_set_rate() for this clock will start to fail as > below: > > cpu cpu0: _opp_config_clk_single: failed to set clock rate: -22 > > So implement the determine_rate() callback that just returns the actual > rate at which the clock is passed to the CPUs in a domain. > > Fixes: 4370232c727b ("cpufreq: qcom-hw: Add CPU clock provider support") > Reported-by: Johan Hovold <johan+linaro@xxxxxxxxxx> > Closes: https://lore.kernel.org/all/20241202100621.29209-1-johan+linaro@xxxxxxxxxx > Suggested-by: Stephen Boyd <sboyd@xxxxxxxxxx> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > --- Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxx>