Received: by 2002:ab2:6816:0:b0:1f9:5764:f03e with SMTP id t22csp1551479lqo; Sat, 18 May 2024 08:03:16 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCW4oEYN5BxQ4VbfW/azkh/Vmyhk6w6sjfvaVfwC1tTNjxPbFlaA2udexb7VAl6weriQjw+GnhcsvTmVBk7+KJwscHIwuek5kNQ1o50VAw== X-Google-Smtp-Source: AGHT+IFpxiI7rNn6fEiBfvSALNwZb79G7PXwab9GLdcNv068Tpm9dtSf/mctSJTMud9oTvITSCbJ X-Received: by 2002:a05:6358:e49e:b0:192:4dd2:2b49 with SMTP id e5c5f4694b2df-193bb3fe9femr2672574055d.4.1716044596270; Sat, 18 May 2024 08:03:16 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716044596; cv=pass; d=google.com; s=arc-20160816; b=L6VK30/ro/Fj9e5xt1c45Z/BOL96CAs1489UA5PMz/1df9jSHgaVe9ccFamTpzJzR+ w5SImkpC73R9Pk0Xl0UgHak2XYlcccGM8GtIf295kTTr/xM778yNiPsPKqYWVuTipCD8 uWLpTGkxItelhT+FDVfdrhDdn1FGuJqVDWP9frWFRetU7XtXKeDTtNrTsDGwp6ViR2f4 oCyjWWs5T+o/B78WvrdlFWHthUxVz40lz8P1Z3fIkbeeK50LLE+TMpjXz1wMQUz6MnYj eFMespDDJmPBg1DWH7P9V31oilzh+jkpHie+QLfBZA3yn6ZAc4oxV6mbXDuRsGlA1kXT T5YQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=U9XQsAY9hxBUi12jsJ1Z1CVecrVgTYZyS0o63OlGpHU=; fh=CACKdOd1uhXQJvG/sgGGyVj0h9negP6s1AsnG+Epjt0=; b=tqqwQHDYG4T+dCdf/90NKHhl5wJcRkCkxKpkqp2yJfqcwpJbQMuhiN8JTmskmGih8Y MyNiu84TU2iFmnyHEtB/XLU3hBUogQwDL6QDPN1uW0H5VEf7uBocphR4c4z7ISXimHO6 rlNGeOf3WkB8He66J849n09C1q9bB1yvuUYSy8EU8Q6p+c96CQZj3OUaDA2KfaSPzfxV xr/+1BEM+YMlLqlcnUhMm0l0ZB5KADtjt+X7+NbjZR6bQmA/rDfVkz9NVcTmHGFldbnV smi2tpdSfn53dbW7veWyW9YwOTPnT/Xo0Gk3jgW8oAzdU/YSV+Ejx8MItb5Q0xEvfqlL UJPg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GDERuJWT; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-182898-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-182898-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d75a77b69052e-43df566f3a3si216334191cf.254.2024.05.18.08.03.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 May 2024 08:03:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-182898-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GDERuJWT; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-182898-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-182898-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id E62831C20C65 for ; Sat, 18 May 2024 15:03:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4CE0B4503C; Sat, 18 May 2024 15:03:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="GDERuJWT" Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 141A33B1AB; Sat, 18 May 2024 15:03:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716044586; cv=none; b=u5fL42RrSXphUlMPy/hz1OpdmPZ9GARa5D8BezghxbgCx2DDsk75dMXsWySwgGV0H12p68xyDSUkRgPDOGqJ/A8umDjJ0Z0iyc4sO1nPIg68qGWk9lO6TkizB3Psnbjet8DXlKJa1YVt5MrsGsKYkClqp7fk7/DHOj7w/kFUCPE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716044586; c=relaxed/simple; bh=T++rJxpdtYlVGykuO7HeCju3qfjYFKNtMtwqzSPJQAY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=RAoEjVgDZtTCbJjpWLvJmnWge7uyyxJ83Hj6hCFrqiVyjkc62Q50dT7/IiEtHsG5cF1LbgmBwXfjnePBiBwG9ZfExvqsFWc4fsN/u679MPegDW2QU5nhxQPqg3Rp03gZbiCs+SkZlV+5FSV2QfEFHRzIVRJVBn4eJxS8+BOUMBA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=GDERuJWT; arc=none smtp.client-ip=192.198.163.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1716044584; x=1747580584; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=T++rJxpdtYlVGykuO7HeCju3qfjYFKNtMtwqzSPJQAY=; b=GDERuJWTNdXLeWge/7/RfFmA5V+0SbcYwbT9JykdW4OyfYSHNlCV2lD6 1muaObtggnr/j5KWHfo+V37V9VnZLfyZtPuCqPooDOLUYqxHjuW9+UWij /1ojoS8Cl+dWuU6b0Am99YfIF9PYmRTx+nN2YUscbqTPOxoLEW3Hc0VAj T0vpg90ZxTl++6aJUD4TOHu6RMIRpOXUdOGOM5Y5I+G5Fb/gyhUcHmoAx ppdzamqQ0nRS+KmnpO/pi0JP+ZBG3xorvkq0ESkyUUjnTpqrlLz6R8zHO 6fklMZ+leHEjwNl5F+BcDGi29BOMnbcN5FCEKjCBsaU7k9HIHc09DVQ/f Q==; X-CSE-ConnectionGUID: A9nSvUokSXWkGk3ou97Pww== X-CSE-MsgGUID: 14ZAwKj5TN2C5MVLH9inFg== X-IronPort-AV: E=McAfee;i="6600,9927,11076"; a="12437514" X-IronPort-AV: E=Sophos;i="6.08,171,1712646000"; d="scan'208";a="12437514" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2024 08:03:03 -0700 X-CSE-ConnectionGUID: DLeP4KshTZ+MuSy65M+qZg== X-CSE-MsgGUID: FRKinAjcQD2OloZYfV2sGA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,171,1712646000"; d="scan'208";a="32658105" Received: from unknown (HELO 108735ec233b) ([10.239.97.151]) by orviesa008.jf.intel.com with ESMTP; 18 May 2024 08:02:58 -0700 Received: from kbuild by 108735ec233b with local (Exim 4.96) (envelope-from ) id 1s8LaI-0002J8-2e; Sat, 18 May 2024 15:02:54 +0000 Date: Sat, 18 May 2024 23:02:10 +0800 From: kernel test robot To: Alvin =?utf-8?Q?=C5=A0ipraga?= , Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Linus Walleij , Bartosz Golaszewski , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Michael Turquette , Stephen Boyd , Andi Shyti , Saravana Kannan Cc: oe-kbuild-all@lists.linux.dev, Emil Svendsen , 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 =?utf-8?Q?=C5=A0ipraga?= Subject: Re: [PATCH 04/13] a2b: add AD24xx I2C interface driver Message-ID: <202405182210.oMSzcs2I-lkp@intel.com> References: <20240517-a2b-v1-4-b8647554c67b@bang-olufsen.dk> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 | 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