From: kernel test robot <lkp@intel.com>
To: Julien Panis <jpanis@baylibre.com>,
william.gray@linaro.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org
Cc: kbuild-all@lists.01.org, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
mranostay@ti.com
Subject: Re: [PATCH v7 3/4] counter: ti-ecap-capture: capture driver support for ECAP
Date: Thu, 22 Sep 2022 09:33:32 +0800 [thread overview]
Message-ID: <202209220938.I4JYSpmy-lkp@intel.com> (raw)
In-Reply-To: <20220921100627.124085-4-jpanis@baylibre.com>
Hi Julien,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on linus/master v6.0-rc6 next-20220921]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Julien-Panis/ECAP-support-on-TI-AM62x-SoC/20220921-180742
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20220922/202209220938.I4JYSpmy-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/f8a0bbe39ba2d6018559e92fb0c66b789387b293
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Julien-Panis/ECAP-support-on-TI-AM62x-SoC/20220921-180742
git checkout f8a0bbe39ba2d6018559e92fb0c66b789387b293
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash drivers/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/counter/ti-ecap-capture.c: In function 'ecap_cnt_watch_validate':
>> drivers/counter/ti-ecap-capture.c:234:66: error: 'COUNTER_EVENT_CAPTURE' undeclared (first use in this function); did you mean 'COUNTER_EVENT_INDEX'?
234 | if ((watch->channel <= ECAP_CEVT_LAST && watch->event == COUNTER_EVENT_CAPTURE) ||
| ^~~~~~~~~~~~~~~~~~~~~
| COUNTER_EVENT_INDEX
drivers/counter/ti-ecap-capture.c:234:66: note: each undeclared identifier is reported only once for each function it appears in
drivers/counter/ti-ecap-capture.c: At top level:
drivers/counter/ti-ecap-capture.c:253:47: warning: 'enum counter_signal_polarity' declared inside parameter list will not be visible outside of this definition or declaration
253 | size_t idx, enum counter_signal_polarity *pol)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/counter/ti-ecap-capture.c: In function 'ecap_cnt_pol_read':
>> drivers/counter/ti-ecap-capture.c:259:16: error: 'COUNTER_SIGNAL_POLARITY_NEGATIVE' undeclared (first use in this function)
259 | COUNTER_SIGNAL_POLARITY_NEGATIVE :
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:260:16: error: 'COUNTER_SIGNAL_POLARITY_POSITIVE' undeclared (first use in this function)
260 | COUNTER_SIGNAL_POLARITY_POSITIVE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:258:14: error: invalid use of undefined type 'enum counter_signal_polarity'
258 | *pol = regmap_test_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)) ?
| ^
drivers/counter/ti-ecap-capture.c: At top level:
drivers/counter/ti-ecap-capture.c:268:48: warning: 'enum counter_signal_polarity' declared inside parameter list will not be visible outside of this definition or declaration
268 | size_t idx, enum counter_signal_polarity pol)
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:268:72: error: parameter 4 ('pol') has incomplete type
268 | size_t idx, enum counter_signal_polarity pol)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
>> drivers/counter/ti-ecap-capture.c:266:12: error: function declaration isn't a prototype [-Werror=strict-prototypes]
266 | static int ecap_cnt_pol_write(struct counter_device *counter,
| ^~~~~~~~~~~~~~~~~~
drivers/counter/ti-ecap-capture.c: In function 'ecap_cnt_pol_write':
drivers/counter/ti-ecap-capture.c:276:20: error: 'COUNTER_SIGNAL_POLARITY_NEGATIVE' undeclared (first use in this function)
276 | if (pol == COUNTER_SIGNAL_POLARITY_NEGATIVE)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/counter/ti-ecap-capture.c: At top level:
>> drivers/counter/ti-ecap-capture.c:375:43: error: array type has incomplete element type 'enum counter_signal_polarity'
375 | static const enum counter_signal_polarity ecap_cnt_pol_avail[] = {
| ^~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:376:9: error: 'COUNTER_SIGNAL_POLARITY_POSITIVE' undeclared here (not in a function)
376 | COUNTER_SIGNAL_POLARITY_POSITIVE,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:377:9: error: 'COUNTER_SIGNAL_POLARITY_NEGATIVE' undeclared here (not in a function)
377 | COUNTER_SIGNAL_POLARITY_NEGATIVE,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:380:77: error: expected ')' before '(' token
380 | static DEFINE_COUNTER_ARRAY_POLARITY(ecap_cnt_pol_array, ecap_cnt_pol_avail, ECAP_NB_CEVT);
| ^
| )
>> drivers/counter/ti-ecap-capture.c:383:9: error: implicit declaration of function 'COUNTER_COMP_ARRAY_POLARITY' [-Werror=implicit-function-declaration]
383 | COUNTER_COMP_ARRAY_POLARITY(ecap_cnt_pol_read, ecap_cnt_pol_write, ecap_cnt_pol_array),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/counter/ti-ecap-capture.c:383:76: error: 'ecap_cnt_pol_array' undeclared here (not in a function); did you mean 'ecap_cnt_pol_read'?
383 | COUNTER_COMP_ARRAY_POLARITY(ecap_cnt_pol_read, ecap_cnt_pol_write, ecap_cnt_pol_array),
| ^~~~~~~~~~~~~~~~~~
| ecap_cnt_pol_read
drivers/counter/ti-ecap-capture.c:414:52: error: expected ')' before '(' token
414 | static DEFINE_COUNTER_ARRAY_U64(ecap_cnt_cap_array, ECAP_NB_CEVT);
| ^
| )
>> drivers/counter/ti-ecap-capture.c:417:9: error: implicit declaration of function 'COUNTER_COMP_COUNT_ARRAY_U64'; did you mean 'COUNTER_COMP_COUNT_U64'? [-Werror=implicit-function-declaration]
417 | COUNTER_COMP_COUNT_ARRAY_U64("capture", ecap_cnt_cap_read, NULL, ecap_cnt_cap_array),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| COUNTER_COMP_COUNT_U64
>> drivers/counter/ti-ecap-capture.c:417:74: error: 'ecap_cnt_cap_array' undeclared here (not in a function); did you mean 'ecap_cnt_cap_read'?
417 | COUNTER_COMP_COUNT_ARRAY_U64("capture", ecap_cnt_cap_read, NULL, ecap_cnt_cap_array),
| ^~~~~~~~~~~~~~~~~~
| ecap_cnt_cap_read
drivers/counter/ti-ecap-capture.c: In function 'ecap_cnt_isr':
drivers/counter/ti-ecap-capture.c:449:57: error: 'COUNTER_EVENT_CAPTURE' undeclared (first use in this function); did you mean 'COUNTER_EVENT_INDEX'?
449 | counter_push_event(counter_dev, COUNTER_EVENT_CAPTURE, i);
| ^~~~~~~~~~~~~~~~~~~~~
| COUNTER_EVENT_INDEX
drivers/counter/ti-ecap-capture.c: At top level:
drivers/counter/ti-ecap-capture.c:375:43: warning: 'ecap_cnt_pol_avail' defined but not used [-Wunused-variable]
375 | static const enum counter_signal_polarity ecap_cnt_pol_avail[] = {
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +234 drivers/counter/ti-ecap-capture.c
230
231 static int ecap_cnt_watch_validate(struct counter_device *counter,
232 const struct counter_watch *watch)
233 {
> 234 if ((watch->channel <= ECAP_CEVT_LAST && watch->event == COUNTER_EVENT_CAPTURE) ||
235 (watch->channel == ECAP_CNTOVF && watch->event == COUNTER_EVENT_OVERFLOW))
236 return 0;
237
238 return -EINVAL;
239 }
240
241 static int ecap_cnt_clk_get_freq(struct counter_device *counter,
242 struct counter_signal *signal, u64 *freq)
243 {
244 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
245
246 *freq = clk_get_rate(ecap_dev->clk);
247
248 return 0;
249 }
250
251 static int ecap_cnt_pol_read(struct counter_device *counter,
252 struct counter_signal *signal,
253 size_t idx, enum counter_signal_polarity *pol)
254 {
255 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
256
257 pm_runtime_get_sync(counter->parent);
> 258 *pol = regmap_test_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)) ?
> 259 COUNTER_SIGNAL_POLARITY_NEGATIVE :
> 260 COUNTER_SIGNAL_POLARITY_POSITIVE;
261 pm_runtime_put_sync(counter->parent);
262
263 return 0;
264 }
265
> 266 static int ecap_cnt_pol_write(struct counter_device *counter,
267 struct counter_signal *signal,
> 268 size_t idx, enum counter_signal_polarity pol)
269 {
270 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
271
272 if (ecap_dev->enabled)
273 return -EBUSY;
274
275 pm_runtime_get_sync(counter->parent);
276 if (pol == COUNTER_SIGNAL_POLARITY_NEGATIVE)
277 regmap_set_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx));
278 else
279 regmap_clear_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx));
280 pm_runtime_put_sync(counter->parent);
281
282 return 0;
283 }
284
285 static inline int ecap_cnt_cap_read(struct counter_device *counter,
286 struct counter_count *count,
287 size_t idx, u64 *cap)
288 {
289 return ecap_cnt_count_get_val(counter, ECAP_CAP_REG(idx), cap);
290 }
291
292 static int ecap_cnt_nb_ovf_read(struct counter_device *counter,
293 struct counter_count *count, u64 *val)
294 {
295 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
296
297 *val = atomic_read(&ecap_dev->nb_ovf);
298
299 return 0;
300 }
301
302 static int ecap_cnt_nb_ovf_write(struct counter_device *counter,
303 struct counter_count *count, u64 val)
304 {
305 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
306
307 if (ecap_dev->enabled)
308 return -EBUSY;
309 if (val > 0)
310 return -EINVAL;
311
312 atomic_set(&ecap_dev->nb_ovf, val);
313
314 return 0;
315 }
316
317 static int ecap_cnt_ceiling_read(struct counter_device *counter,
318 struct counter_count *count, u64 *val)
319 {
320 *val = U32_MAX;
321
322 return 0;
323 }
324
325 static int ecap_cnt_enable_read(struct counter_device *counter,
326 struct counter_count *count, u8 *enable)
327 {
328 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
329
330 *enable = ecap_dev->enabled;
331
332 return 0;
333 }
334
335 static int ecap_cnt_enable_write(struct counter_device *counter,
336 struct counter_count *count, u8 enable)
337 {
338 struct ecap_cnt_dev *ecap_dev = counter_priv(counter);
339
340 if (enable == ecap_dev->enabled)
341 return 0;
342 if (enable)
343 ecap_cnt_capture_enable(counter);
344 else
345 ecap_cnt_capture_disable(counter);
346 ecap_dev->enabled = enable;
347
348 return 0;
349 }
350
351 static const struct counter_ops ecap_cnt_ops = {
352 .count_read = ecap_cnt_count_read,
353 .count_write = ecap_cnt_count_write,
354 .function_read = ecap_cnt_function_read,
355 .action_read = ecap_cnt_action_read,
356 .watch_validate = ecap_cnt_watch_validate,
357 };
358
359 static const enum counter_function ecap_cnt_functions[] = {
360 COUNTER_FUNCTION_INCREASE,
361 };
362
363 static const enum counter_synapse_action ecap_cnt_clock_actions[] = {
364 COUNTER_SYNAPSE_ACTION_RISING_EDGE,
365 };
366
367 static const enum counter_synapse_action ecap_cnt_input_actions[] = {
368 COUNTER_SYNAPSE_ACTION_NONE,
369 };
370
371 static struct counter_comp ecap_cnt_clock_ext[] = {
372 COUNTER_COMP_SIGNAL_U64("frequency", ecap_cnt_clk_get_freq, NULL),
373 };
374
> 375 static const enum counter_signal_polarity ecap_cnt_pol_avail[] = {
> 376 COUNTER_SIGNAL_POLARITY_POSITIVE,
> 377 COUNTER_SIGNAL_POLARITY_NEGATIVE,
378 };
379
> 380 static DEFINE_COUNTER_ARRAY_POLARITY(ecap_cnt_pol_array, ecap_cnt_pol_avail, ECAP_NB_CEVT);
381
382 static struct counter_comp ecap_cnt_signal_ext[] = {
> 383 COUNTER_COMP_ARRAY_POLARITY(ecap_cnt_pol_read, ecap_cnt_pol_write, ecap_cnt_pol_array),
384 };
385
386 static struct counter_signal ecap_cnt_signals[] = {
387 {
388 .id = ECAP_CLOCK_SIG,
389 .name = "Clock Signal",
390 .ext = ecap_cnt_clock_ext,
391 .num_ext = ARRAY_SIZE(ecap_cnt_clock_ext),
392 },
393 {
394 .id = ECAP_INPUT_SIG,
395 .name = "Input Signal",
396 .ext = ecap_cnt_signal_ext,
397 .num_ext = ARRAY_SIZE(ecap_cnt_signal_ext),
398 },
399 };
400
401 static struct counter_synapse ecap_cnt_synapses[] = {
402 {
403 .actions_list = ecap_cnt_clock_actions,
404 .num_actions = ARRAY_SIZE(ecap_cnt_clock_actions),
405 .signal = &ecap_cnt_signals[ECAP_CLOCK_SIG],
406 },
407 {
408 .actions_list = ecap_cnt_input_actions,
409 .num_actions = ARRAY_SIZE(ecap_cnt_input_actions),
410 .signal = &ecap_cnt_signals[ECAP_INPUT_SIG],
411 },
412 };
413
414 static DEFINE_COUNTER_ARRAY_U64(ecap_cnt_cap_array, ECAP_NB_CEVT);
415
416 static struct counter_comp ecap_cnt_count_ext[] = {
> 417 COUNTER_COMP_COUNT_ARRAY_U64("capture", ecap_cnt_cap_read, NULL, ecap_cnt_cap_array),
418 COUNTER_COMP_COUNT_U64("num_overflows", ecap_cnt_nb_ovf_read, ecap_cnt_nb_ovf_write),
419 COUNTER_COMP_CEILING(ecap_cnt_ceiling_read, NULL),
420 COUNTER_COMP_ENABLE(ecap_cnt_enable_read, ecap_cnt_enable_write),
421 };
422
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-09-22 1:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-21 10:06 [PATCH v7 0/4] ECAP support on TI AM62x SoC Julien Panis
2022-09-21 10:06 ` [PATCH v7 1/4] dt-bindings: counter: add ti,am62-ecap-capture.yaml Julien Panis
2022-09-21 10:06 ` [PATCH v7 2/4] Documentation: ABI: sysfs-bus-counter: add frequency & num_overflows items Julien Panis
2022-09-22 2:27 ` William Breathitt Gray
2022-09-21 10:06 ` [PATCH v7 3/4] counter: ti-ecap-capture: capture driver support for ECAP Julien Panis
2022-09-21 18:10 ` kernel test robot
2022-09-22 1:33 ` kernel test robot [this message]
2022-09-22 2:07 ` William Breathitt Gray
2022-09-21 10:06 ` [PATCH v7 4/4] MAINTAINERS: add TI ECAP driver info Julien Panis
2022-09-22 2:19 ` William Breathitt Gray
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=202209220938.I4JYSpmy-lkp@intel.com \
--to=lkp@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=jpanis@baylibre.com \
--cc=kbuild-all@lists.01.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mranostay@ti.com \
--cc=robh+dt@kernel.org \
--cc=william.gray@linaro.org \
/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.