All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@gmail.com>
Subject: drivers/net/dsa/qca/ar9331.c:502:29: error: implicit declaration of function 'irq_find_mapping'
Date: Thu, 9 Nov 2023 22:13:38 +0800	[thread overview]
Message-ID: <202311092236.uvirbjcm-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   6bc986ab839c844e78a2333a02e55f02c9e57935
commit: ec6698c272debe16c8825c88a5b3c3f68a12ef4a net: dsa: add support for Atheros AR9331 built-in switch
date:   3 years, 11 months ago
config: um-randconfig-001-20231109 (https://download.01.org/0day-ci/archive/20231109/202311092236.uvirbjcm-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231109/202311092236.uvirbjcm-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/202311092236.uvirbjcm-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   cc1: warning: arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bitfield.h:10,
                    from drivers/net/dsa/qca/ar9331.c:42:
   include/asm-generic/fixmap.h: In function 'fix_to_virt':
   include/asm-generic/fixmap.h:32:26: warning: comparison of unsigned expression in '>= 0' is always true [-Wtype-limits]
      32 |         BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
         |                          ^~
   include/linux/compiler.h:330:23: note: in definition of macro '__compiletime_assert'
     330 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   include/linux/compiler.h:350:9: note: in expansion of macro '_compiletime_assert'
     350 |         _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
         |         ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
      39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
         |                                     ^~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
      50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
         |         ^~~~~~~~~~~~~~~~
   include/asm-generic/fixmap.h:32:9: note: in expansion of macro 'BUILD_BUG_ON'
      32 |         BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
         |         ^~~~~~~~~~~~
   drivers/net/dsa/qca/ar9331.c: In function 'ar9331_sw_irq':
>> drivers/net/dsa/qca/ar9331.c:502:29: error: implicit declaration of function 'irq_find_mapping' [-Werror=implicit-function-declaration]
     502 |                 child_irq = irq_find_mapping(priv->irqdomain, 0);
         |                             ^~~~~~~~~~~~~~~~
   drivers/net/dsa/qca/ar9331.c: At top level:
>> drivers/net/dsa/qca/ar9331.c:567:18: error: 'irq_domain_xlate_onecell' undeclared here (not in a function)
     567 |         .xlate = irq_domain_xlate_onecell,
         |                  ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/dsa/qca/ar9331.c: In function 'ar9331_sw_irq_init':
>> drivers/net/dsa/qca/ar9331.c:589:27: error: implicit declaration of function 'irq_domain_add_linear' [-Werror=implicit-function-declaration]
     589 |         priv->irqdomain = irq_domain_add_linear(np, 1, &ar9331_sw_irqdomain_ops,
         |                           ^~~~~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/qca/ar9331.c:589:25: warning: assignment to 'struct irq_domain *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     589 |         priv->irqdomain = irq_domain_add_linear(np, 1, &ar9331_sw_irqdomain_ops,
         |                         ^
>> drivers/net/dsa/qca/ar9331.c:596:24: error: implicit declaration of function 'irq_create_mapping'; did you mean 'irq_create_of_mapping'? [-Werror=implicit-function-declaration]
     596 |         irq_set_parent(irq_create_mapping(priv->irqdomain, 0), irq);
         |                        ^~~~~~~~~~~~~~~~~~
         |                        irq_create_of_mapping
   drivers/net/dsa/qca/ar9331.c: In function 'ar9331_sw_probe':
>> drivers/net/dsa/qca/ar9331.c:821:9: error: implicit declaration of function 'irq_domain_remove' [-Werror=implicit-function-declaration]
     821 |         irq_domain_remove(priv->irqdomain);
         |         ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for LOCKDEP
   Depends on [n]: DEBUG_KERNEL [=y] && LOCK_DEBUGGING_SUPPORT [=y] && (FRAME_POINTER [=n] || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86)
   Selected by [y]:
   - PROVE_LOCKING [=y] && DEBUG_KERNEL [=y] && LOCK_DEBUGGING_SUPPORT [=y]
   - DEBUG_LOCK_ALLOC [=y] && DEBUG_KERNEL [=y] && LOCK_DEBUGGING_SUPPORT [=y]


vim +/irq_find_mapping +502 drivers/net/dsa/qca/ar9331.c

   482	
   483	static irqreturn_t ar9331_sw_irq(int irq, void *data)
   484	{
   485		struct ar9331_sw_priv *priv = data;
   486		struct regmap *regmap = priv->regmap;
   487		u32 stat;
   488		int ret;
   489	
   490		ret = regmap_read(regmap, AR9331_SW_REG_GINT, &stat);
   491		if (ret) {
   492			dev_err(priv->dev, "can't read interrupt status\n");
   493			return IRQ_NONE;
   494		}
   495	
   496		if (!stat)
   497			return IRQ_NONE;
   498	
   499		if (stat & AR9331_SW_GINT_PHY_INT) {
   500			int child_irq;
   501	
 > 502			child_irq = irq_find_mapping(priv->irqdomain, 0);
   503			handle_nested_irq(child_irq);
   504		}
   505	
   506		ret = regmap_write(regmap, AR9331_SW_REG_GINT, stat);
   507		if (ret) {
   508			dev_err(priv->dev, "can't write interrupt status\n");
   509			return IRQ_NONE;
   510		}
   511	
   512		return IRQ_HANDLED;
   513	}
   514	
   515	static void ar9331_sw_mask_irq(struct irq_data *d)
   516	{
   517		struct ar9331_sw_priv *priv = irq_data_get_irq_chip_data(d);
   518		struct regmap *regmap = priv->regmap;
   519		int ret;
   520	
   521		ret = regmap_update_bits(regmap, AR9331_SW_REG_GINT_MASK,
   522					 AR9331_SW_GINT_PHY_INT, 0);
   523		if (ret)
   524			dev_err(priv->dev, "could not mask IRQ\n");
   525	}
   526	
   527	static void ar9331_sw_unmask_irq(struct irq_data *d)
   528	{
   529		struct ar9331_sw_priv *priv = irq_data_get_irq_chip_data(d);
   530		struct regmap *regmap = priv->regmap;
   531		int ret;
   532	
   533		ret = regmap_update_bits(regmap, AR9331_SW_REG_GINT_MASK,
   534					 AR9331_SW_GINT_PHY_INT,
   535					 AR9331_SW_GINT_PHY_INT);
   536		if (ret)
   537			dev_err(priv->dev, "could not unmask IRQ\n");
   538	}
   539	
   540	static struct irq_chip ar9331_sw_irq_chip = {
   541		.name = AR9331_SW_NAME,
   542		.irq_mask = ar9331_sw_mask_irq,
   543		.irq_unmask = ar9331_sw_unmask_irq,
   544	};
   545	
   546	static int ar9331_sw_irq_map(struct irq_domain *domain, unsigned int irq,
   547				     irq_hw_number_t hwirq)
   548	{
   549		irq_set_chip_data(irq, domain->host_data);
   550		irq_set_chip_and_handler(irq, &ar9331_sw_irq_chip, handle_simple_irq);
   551		irq_set_nested_thread(irq, 1);
   552		irq_set_noprobe(irq);
   553	
   554		return 0;
   555	}
   556	
   557	static void ar9331_sw_irq_unmap(struct irq_domain *d, unsigned int irq)
   558	{
   559		irq_set_nested_thread(irq, 0);
   560		irq_set_chip_and_handler(irq, NULL, NULL);
   561		irq_set_chip_data(irq, NULL);
   562	}
   563	
   564	static const struct irq_domain_ops ar9331_sw_irqdomain_ops = {
   565		.map = ar9331_sw_irq_map,
   566		.unmap = ar9331_sw_irq_unmap,
 > 567		.xlate = irq_domain_xlate_onecell,
   568	};
   569	
   570	static int ar9331_sw_irq_init(struct ar9331_sw_priv *priv)
   571	{
   572		struct device_node *np = priv->dev->of_node;
   573		struct device *dev = priv->dev;
   574		int ret, irq;
   575	
   576		irq = of_irq_get(np, 0);
   577		if (irq <= 0) {
   578			dev_err(dev, "failed to get parent IRQ\n");
   579			return irq ? irq : -EINVAL;
   580		}
   581	
   582		ret = devm_request_threaded_irq(dev, irq, NULL, ar9331_sw_irq,
   583						IRQF_ONESHOT, AR9331_SW_NAME, priv);
   584		if (ret) {
   585			dev_err(dev, "unable to request irq: %d\n", ret);
   586			return ret;
   587		}
   588	
 > 589		priv->irqdomain = irq_domain_add_linear(np, 1, &ar9331_sw_irqdomain_ops,
   590							priv);
   591		if (!priv->irqdomain) {
   592			dev_err(dev, "failed to create IRQ domain\n");
   593			return -EINVAL;
   594		}
   595	
 > 596		irq_set_parent(irq_create_mapping(priv->irqdomain, 0), irq);
   597	
   598		return 0;
   599	}
   600	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2023-11-09 14:14 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202311092236.uvirbjcm-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andrew@lunn.ch \
    --cc=linux-kernel@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=vivien.didelot@gmail.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.