From: kernel test robot <lkp@intel.com>
To: "Alvin Šipraga" <alvin@pqrs.dk>,
"Mark Brown" <broonie@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Jaroslav Kysela" <perex@perex.cz>,
"Takashi Iwai" <tiwai@suse.com>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Andi Shyti" <andi.shyti@kernel.org>,
"Saravana Kannan" <saravanak@google.com>
Cc: oe-kbuild-all@lists.linux.dev,
"Emil Svendsen" <emas@bang-olufsen.dk>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-sound@vger.kernel.org,
linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org,
"Alvin Šipraga" <alsi@bang-olufsen.dk>
Subject: Re: [PATCH 04/13] a2b: add AD24xx I2C interface driver
Date: Sat, 18 May 2024 23:02:10 +0800 [thread overview]
Message-ID: <202405182210.oMSzcs2I-lkp@intel.com> (raw)
In-Reply-To: <20240517-a2b-v1-4-b8647554c67b@bang-olufsen.dk>
Hi Alvin,
kernel test robot noticed the following build errors:
[auto build test ERROR on c75962170e49f24399141276ae119e6a879f36dc]
url: https://github.com/intel-lab-lkp/linux/commits/Alvin-ipraga/a2b-add-A2B-driver-core/20240517-211849
base: c75962170e49f24399141276ae119e6a879f36dc
patch link: https://lore.kernel.org/r/20240517-a2b-v1-4-b8647554c67b%40bang-olufsen.dk
patch subject: [PATCH 04/13] a2b: add AD24xx I2C interface driver
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20240518/202405182210.oMSzcs2I-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240518/202405182210.oMSzcs2I-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405182210.oMSzcs2I-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
drivers/a2b/ad24xx-i2c.c: In function 'ad24xx_i2c_irq_handler':
>> drivers/a2b/ad24xx-i2c.c:272:17: error: implicit declaration of function 'handle_nested_irq' [-Werror=implicit-function-declaration]
272 | handle_nested_irq(virq);
| ^~~~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c: In function 'ad24xx_i2c_irq_enable':
>> drivers/a2b/ad24xx-i2c.c:281:33: error: implicit declaration of function 'irq_data_get_irq_chip_data'; did you mean 'irq_domain_get_irq_data'? [-Werror=implicit-function-declaration]
281 | struct ad24xx_i2c *ad = irq_data_get_irq_chip_data(irq_data);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| irq_domain_get_irq_data
>> drivers/a2b/ad24xx-i2c.c:281:33: warning: initialization of 'struct ad24xx_i2c *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
>> drivers/a2b/ad24xx-i2c.c:282:41: error: invalid use of undefined type 'struct irq_data'
282 | irq_hw_number_t hwirq = irq_data->hwirq;
| ^~
drivers/a2b/ad24xx-i2c.c: In function 'ad24xx_i2c_irq_disable':
drivers/a2b/ad24xx-i2c.c:289:33: warning: initialization of 'struct ad24xx_i2c *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
289 | struct ad24xx_i2c *ad = irq_data_get_irq_chip_data(irq_data);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:290:41: error: invalid use of undefined type 'struct irq_data'
290 | irq_hw_number_t hwirq = irq_data->hwirq;
| ^~
drivers/a2b/ad24xx-i2c.c: At top level:
>> drivers/a2b/ad24xx-i2c.c:295:21: error: variable 'ad24xx_i2c_irq_chip' has initializer but incomplete type
295 | static const struct irq_chip ad24xx_i2c_irq_chip = {
| ^~~~~~~~
>> drivers/a2b/ad24xx-i2c.c:296:10: error: 'const struct irq_chip' has no member named 'name'
296 | .name = "ad24xx-i2c",
| ^~~~
>> drivers/a2b/ad24xx-i2c.c:296:17: warning: excess elements in struct initializer
296 | .name = "ad24xx-i2c",
| ^~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:296:17: note: (near initialization for 'ad24xx_i2c_irq_chip')
>> drivers/a2b/ad24xx-i2c.c:297:10: error: 'const struct irq_chip' has no member named 'irq_enable'
297 | .irq_enable = ad24xx_i2c_irq_enable,
| ^~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:297:23: warning: excess elements in struct initializer
297 | .irq_enable = ad24xx_i2c_irq_enable,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:297:23: note: (near initialization for 'ad24xx_i2c_irq_chip')
>> drivers/a2b/ad24xx-i2c.c:298:10: error: 'const struct irq_chip' has no member named 'irq_disable'
298 | .irq_disable = ad24xx_i2c_irq_disable,
| ^~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:298:24: warning: excess elements in struct initializer
298 | .irq_disable = ad24xx_i2c_irq_disable,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:298:24: note: (near initialization for 'ad24xx_i2c_irq_chip')
drivers/a2b/ad24xx-i2c.c: In function 'ad24xx_i2c_irqdomain_map':
>> drivers/a2b/ad24xx-i2c.c:304:9: error: implicit declaration of function 'irq_set_chip_data' [-Werror=implicit-function-declaration]
304 | irq_set_chip_data(irq, irqdomain->host_data);
| ^~~~~~~~~~~~~~~~~
>> drivers/a2b/ad24xx-i2c.c:305:9: error: implicit declaration of function 'irq_set_chip_and_handler' [-Werror=implicit-function-declaration]
305 | irq_set_chip_and_handler(irq, &ad24xx_i2c_irq_chip, handle_simple_irq);
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/a2b/ad24xx-i2c.c:305:61: error: 'handle_simple_irq' undeclared (first use in this function)
305 | irq_set_chip_and_handler(irq, &ad24xx_i2c_irq_chip, handle_simple_irq);
| ^~~~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c:305:61: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/a2b/ad24xx-i2c.c:306:9: error: implicit declaration of function 'irq_set_nested_thread' [-Werror=implicit-function-declaration]
306 | irq_set_nested_thread(irq, 1);
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/a2b/ad24xx-i2c.c:307:9: error: implicit declaration of function 'irq_set_noprobe' [-Werror=implicit-function-declaration]
307 | irq_set_noprobe(irq);
| ^~~~~~~~~~~~~~~
drivers/a2b/ad24xx-i2c.c: At top level:
>> drivers/a2b/ad24xx-i2c.c:295:30: error: storage size of 'ad24xx_i2c_irq_chip' isn't known
295 | static const struct irq_chip ad24xx_i2c_irq_chip = {
| ^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/handle_nested_irq +272 drivers/a2b/ad24xx-i2c.c
218
219 static irqreturn_t ad24xx_i2c_irq_handler(int irq, void *data)
220 {
221 struct ad24xx_i2c *ad = data;
222 bool handled = false;
223 unsigned long hwirq;
224 unsigned int val;
225 unsigned int virq;
226 int ret;
227
228 /*
229 * The transceiver asserts the IRQ line as long as there are pending
230 * interrupts. Process them all here so that the interrupt can be
231 * configured with an edge trigger.
232 */
233 while (true) {
234 mutex_lock(&ad->mutex);
235 ret = regmap_read(ad->base_regmap, A2B_INTSRC, &val);
236 mutex_unlock(&ad->mutex);
237 if (ret) {
238 dev_err_ratelimited(
239 ad->dev,
240 "failed to read interrupt source: %d\n", ret);
241 break;
242 }
243
244 if (val & A2B_INTSRC_MSTINT_MASK)
245 hwirq = 0;
246 else if (val & A2B_INTSRC_SLVINT_MASK)
247 hwirq = (val & A2B_INTSRC_INODE_MASK) + 1;
248 else
249 break;
250
251 /*
252 * Pending interrupts are only cleared when reading the
253 * interrupt type. Normally this is done in the corresponding
254 * node's interrupt handler, but in case the interrupt is
255 * disabled, it has to be read here.
256 */
257 if (!(BIT(hwirq) & ad->irqs_enabled)) {
258 ret = ad24xx_i2c_get_inttype(&ad->a2b_bus, &val);
259 if (ret)
260 dev_err_ratelimited(
261 ad->dev,
262 "failed to read interrupt type: %d\n",
263 ret);
264 handled = true;
265 continue;
266 }
267
268 virq = irq_find_mapping(ad->irqdomain, hwirq);
269 if (!virq)
270 break;
271
> 272 handle_nested_irq(virq);
273 handled = true;
274 }
275
276 return handled ? IRQ_HANDLED : IRQ_NONE;
277 }
278
279 static void ad24xx_i2c_irq_enable(struct irq_data *irq_data)
280 {
> 281 struct ad24xx_i2c *ad = irq_data_get_irq_chip_data(irq_data);
> 282 irq_hw_number_t hwirq = irq_data->hwirq;
283
284 ad->irqs_enabled |= BIT(hwirq);
285 }
286
287 static void ad24xx_i2c_irq_disable(struct irq_data *irq_data)
288 {
289 struct ad24xx_i2c *ad = irq_data_get_irq_chip_data(irq_data);
290 irq_hw_number_t hwirq = irq_data->hwirq;
291
292 ad->irqs_enabled &= ~BIT(hwirq);
293 }
294
> 295 static const struct irq_chip ad24xx_i2c_irq_chip = {
> 296 .name = "ad24xx-i2c",
> 297 .irq_enable = ad24xx_i2c_irq_enable,
> 298 .irq_disable = ad24xx_i2c_irq_disable,
299 };
300
301 static int ad24xx_i2c_irqdomain_map(struct irq_domain *irqdomain,
302 unsigned int irq, irq_hw_number_t hwirq)
303 {
> 304 irq_set_chip_data(irq, irqdomain->host_data);
> 305 irq_set_chip_and_handler(irq, &ad24xx_i2c_irq_chip, handle_simple_irq);
> 306 irq_set_nested_thread(irq, 1);
> 307 irq_set_noprobe(irq);
308
309 return 0;
310 }
311
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-05-18 15:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-17 12:57 [PATCH 00/13] Analog Devices Inc. Automotive Audio Bus (A2B) support Alvin Šipraga
2024-05-17 12:57 ` [PATCH 01/13] a2b: add A2B driver core Alvin Šipraga
2024-05-18 12:46 ` kernel test robot
2024-05-19 7:15 ` Markus Elfring
2024-05-19 7:33 ` Markus Elfring
2024-05-19 8:38 ` Markus Elfring
2024-05-21 7:11 ` Alvin Šipraga
2024-05-21 7:33 ` Markus Elfring
2024-05-21 7:37 ` Greg Kroah-Hartman
2024-05-19 11:18 ` Markus Elfring
2024-05-17 12:58 ` [PATCH 02/13] regmap: add A2B support Alvin Šipraga
2024-05-17 14:42 ` Mark Brown
2024-05-21 6:27 ` Alvin Šipraga
2024-05-21 10:43 ` Mark Brown
2024-05-17 12:58 ` [PATCH 03/13] dt-bindings: a2b: Analog Devices AD24xx devices Alvin Šipraga
2024-05-19 11:40 ` Krzysztof Kozlowski
2024-05-19 11:44 ` Krzysztof Kozlowski
2024-05-21 7:24 ` Alvin Šipraga
2024-05-21 7:47 ` Krzysztof Kozlowski
2024-05-17 12:58 ` [PATCH 04/13] a2b: add AD24xx I2C interface driver Alvin Šipraga
2024-05-17 14:49 ` Wolfram Sang
2024-05-21 8:31 ` Alvin Šipraga
2024-05-18 12:56 ` kernel test robot
2024-05-18 15:02 ` kernel test robot [this message]
2024-05-17 12:58 ` [PATCH 05/13] a2b: add AD24xx node driver Alvin Šipraga
2024-05-17 12:58 ` [PATCH 06/13] gpio: add AD24xx GPIO driver Alvin Šipraga
2024-05-22 15:31 ` Bartosz Golaszewski
2024-05-28 12:13 ` Linus Walleij
2024-05-28 20:02 ` Andy Shevchenko
2024-05-17 12:58 ` [PATCH 07/13] ASoC: codecs: add AD24xx codec driver Alvin Šipraga
2024-05-17 15:03 ` Mark Brown
2024-05-21 6:46 ` Alvin Šipraga
2024-05-21 7:08 ` Alvin Šipraga
2024-05-21 10:49 ` Mark Brown
2024-05-17 13:02 ` [PATCH 08/13] clk: add AD24xx clock driver Alvin Šipraga
2024-06-04 0:10 ` Stephen Boyd
2024-05-17 13:02 ` [PATCH 09/13] i2c: add AD24xx I2C controller driver Alvin Šipraga
2024-05-17 13:02 ` [PATCH 10/13] dt-bindings: vendor-prefixes: add Bang & Olufsen a/s Alvin Šipraga
2024-05-19 11:40 ` Krzysztof Kozlowski
2024-05-17 13:02 ` [PATCH 11/13] dt-bindings: a2b: add compatible string for Beosound Shape node Alvin Šipraga
2024-05-19 11:41 ` Krzysztof Kozlowski
2024-05-21 7:12 ` Alvin Šipraga
2024-05-21 7:32 ` Krzysztof Kozlowski
2024-05-17 13:02 ` [PATCH 12/13] a2b: add Beosound Shape node driver Alvin Šipraga
2024-05-17 13:02 ` [PATCH 13/13] MAINTAINERS: add maintainership for A2B drivers Alvin Šipraga
2024-05-17 14:57 ` [PATCH 00/13] Analog Devices Inc. Automotive Audio Bus (A2B) support Wolfram Sang
2024-05-21 7:08 ` Alvin Šipraga
2024-05-19 6:44 ` Markus Elfring
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=202405182210.oMSzcs2I-lkp@intel.com \
--to=lkp@intel.com \
--cc=alsi@bang-olufsen.dk \
--cc=alvin@pqrs.dk \
--cc=andi.shyti@kernel.org \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=emas@bang-olufsen.dk \
--cc=gregkh@linuxfoundation.org \
--cc=krzk@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=perex@perex.cz \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=tiwai@suse.com \
/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.