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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox