summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Goodbody <andrew.goodbody@linaro.org>2025-07-24 11:48:12 +0100
committerMarek Vasut <marek.vasut+renesas@mailbox.org>2025-08-06 16:52:27 +0200
commit4ef864f1ae332fc1ae2a8d58ac0325db677abe52 (patch)
treee7ed784320cd6c9204b2c775a08af95080cb3157
parent007610da2cca405ea7739fc120d90085be4b6ac2 (diff)
clk: renesas: Do not test unsigned variable to be less than 0
In rcar_clk_set_rate64_div_table the unsigned variable 'value' is used to receive the return value from rcar_clk_get_table_val which returns an int and then attempts to test for being less than 0, which can never be true. Instead declare value as an int so the code can behave as expected. Also remove initial values from 'value' and 'div' as they are not needed. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
-rw-r--r--drivers/clk/renesas/rcar-cpg-lib.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/clk/renesas/rcar-cpg-lib.c b/drivers/clk/renesas/rcar-cpg-lib.c
index ea33bfd3239..60ab2cb379e 100644
--- a/drivers/clk/renesas/rcar-cpg-lib.c
+++ b/drivers/clk/renesas/rcar-cpg-lib.c
@@ -92,7 +92,8 @@ int rcar_clk_set_rate64_div_table(unsigned int parent, u64 parent_rate, ulong ra
void __iomem *reg, const u32 mask,
const struct clk_div_table *table, char *name)
{
- u32 value = 0, div = 0;
+ u32 div;
+ int value;
div = DIV_ROUND_CLOSEST(parent_rate, rate);
value = rcar_clk_get_table_val(table, div);
@@ -101,7 +102,7 @@ int rcar_clk_set_rate64_div_table(unsigned int parent, u64 parent_rate, ulong ra
clrsetbits_le32(reg, mask, field_prep(mask, value));
- debug("%s[%i] %s clk: parent=%i div=%u rate=%lu => val=%u\n",
+ debug("%s[%i] %s clk: parent=%i div=%u rate=%lu => val=%d\n",
__func__, __LINE__, name, parent, div, rate, value);
return 0;