All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.