From: Dan Carpenter <dan.carpenter@oracle.com>
To: nobuhiro1.iwamatsu@toshiba.co.jp
Cc: linux-clk@vger.kernel.org
Subject: [bug report] clk: visconti: Add support common clock driver and reset driver
Date: Tue, 11 Jan 2022 11:14:35 +0300 [thread overview]
Message-ID: <20220111081435.GA19822@kili> (raw)
Hello Nobuhiro Iwamatsu,
The patch b4cbe606dc36: "clk: visconti: Add support common clock
driver and reset driver" from Oct 25, 2021, leads to the following
Smatch static checker warning:
drivers/clk/visconti/clkc.c:150 visconti_clk_register_gates()
warn: always true condition '(clks[i]->rs_id >= 0) => (0-255 >= 0)'
drivers/clk/visconti/clkc.c
124 int visconti_clk_register_gates(struct visconti_clk_provider *ctx,
125 const struct visconti_clk_gate_table *clks,
126 int num_gate,
127 const struct visconti_reset_data *reset,
128 spinlock_t *lock)
129 {
130 struct device *dev = ctx->dev;
131 int i;
132
133 for (i = 0; i < num_gate; i++) {
134 const char *parent_div_name = clks[i].parent_data[0].name;
135 struct clk_parent_data *pdata;
136 u32 rson_offset, rsoff_offset;
137 struct clk_hw *gate_clk;
138 struct clk_hw *div_clk;
139 char *dev_name;
140 u8 rs_idx;
141
142 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
143 if (!pdata)
144 return -ENOMEM;
145
146 dev_name = devm_kasprintf(dev, GFP_KERNEL, "%s_div", clks[i].name);
147 if (!dev_name)
148 return -ENOMEM;
149
--> 150 if (clks[i].rs_id >= 0) {
This is a u8. But it does get set to -1 for PISYSTEM in clkc-tmpv770x.c
> drivers/clk/visconti/clkc-tmpv770x.c
> 175 /* PISYSTEM */
> 176 { TMPV770X_CLK_WRCK, "wrck",
> 177 clks_parent_data, ARRAY_SIZE(clks_parent_data),
> 178 0, 0x68, 0x168, 9, 32,
> 179 -1, }, /* No reset */
151 rson_offset = reset[clks[i].rs_id].rson_offset;
152 rsoff_offset = reset[clks[i].rs_id].rsoff_offset;
153 rs_idx = reset[clks[i].rs_id].rs_idx;
154 } else {
155 rson_offset = rsoff_offset = rs_idx = -1;
All these variables are unsigned but they're set to -1. clks[i].rs_idx
is also unsigned.
156 }
157
158 div_clk = devm_clk_hw_register_fixed_factor(dev,
159 dev_name,
160 parent_div_name,
161 0, 1,
162 clks[i].div);
163 if (IS_ERR(div_clk))
164 return PTR_ERR(div_clk);
165
166 gate_clk = visconti_clk_register_gate(dev,
167 clks[i].name,
168 dev_name,
169 ctx->regmap,
170 &clks[i],
171 rson_offset,
172 rsoff_offset,
173 rs_idx,
174 lock);
175 if (IS_ERR(gate_clk)) {
176 dev_err(dev, "%s: failed to register clock %s\n",
177 __func__, clks[i].name);
178 return PTR_ERR(gate_clk);
179 }
180
181 ctx->clk_data.hws[clks[i].id] = gate_clk;
182 }
183
184 return 0;
185 }
regards,
dan carpenter
next reply other threads:[~2022-01-11 8:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-11 8:14 Dan Carpenter [this message]
2022-01-20 20:55 ` [bug report] clk: visconti: Add support common clock driver and reset driver Stephen Boyd
-- strict thread matches above, loose matches on Subject: below --
2025-12-09 13:05 Dan Carpenter
2025-12-10 7:36 ` Nathan Chancellor
2025-12-10 7:53 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220111081435.GA19822@kili \
--to=dan.carpenter@oracle.com \
--cc=linux-clk@vger.kernel.org \
--cc=nobuhiro1.iwamatsu@toshiba.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.