Hi Jesse, > Il giorno 14 feb 2021, alle ore 03:58, Jesse T <mr.bossman...@gmail.com> ha > scritto: > > > This looks good to me, and helps beginners like me. As for the function > itself, i have 2 concerns: If it does return a negative value why is it > unsigned, if it is in fact signed that a clock above 2.2Ghz is a negative > number.
I was worried too at first sight but if you try to check negative numbers you see that -1 is 0xFFFFFFFF so in the worst case you only loose 4095 numbers from the maximum, try to check with hex calculator. And that is the trick. > As for the IS_ERR_VALUE macro there still is a chance that it will error if > the clock just so happens to be 2^31 through 2^31 + number of err values. This is answered from above and IS_ERR_VALUE is a very contracted macro that basically let you to keep value NOT valid if (0 > value > 4095). > Just voicing my concerns i assume as i learn more about uboot, linux,rtos's > and different programs there will be minor issues like this. Sure, no problem :-) Giulio > >> On Sat, Feb 13, 2021 at 9:17 PM Giulio Benetti >> <giulio.bene...@benettiengineering.com> wrote: >> Improve clk_get_rate() @return documentation that otherwise is a bit >> ambiguous. At the moment I expect to return 0 as error since the return >> type is 'ulong', instead the function really returns negative value in >> case the corresponding function pointer is null and returns 0 if the clock >> is invalid. >> >> Signed-off-by: Giulio Benetti <giulio.bene...@benettiengineering.com> >> --- >> V1->V2: >> * previous comment was wrong, this function returns negative value, so let's >> improve it's @return documentation as suggested by Simon Glass >> --- >> include/clk.h | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/include/clk.h b/include/clk.h >> index ca6b85fa6f..5a8c7244d0 100644 >> --- a/include/clk.h >> +++ b/include/clk.h >> @@ -344,7 +344,8 @@ int clk_free(struct clk *clk); >> * >> * @clk: A clock struct that was previously successfully requested by >> * clk_request/get_by_*(). >> - * @return clock rate in Hz, or -ve error code. >> + * @return clock rate in Hz on success, 0 for invalid clock, or -ve error >> code >> + * for other errors. >> */ >> ulong clk_get_rate(struct clk *clk); >> >> -- >> 2.25.1 >>