From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752991AbcEBGtV (ORCPT ); Mon, 2 May 2016 02:49:21 -0400 Received: from down.free-electrons.com ([37.187.137.238]:45559 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752798AbcEBGtI (ORCPT ); Mon, 2 May 2016 02:49:08 -0400 Date: Mon, 2 May 2016 08:48:54 +0200 From: Maxime Ripard To: Andre Przywara Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, arm@kernel.org, Rob Herring , suzuki.poulose@arm.com, Russell King , wens@csie.org, tglx@linutronix.de, Jason Cooper , marc.zyngier@arm.com Subject: Re: [PATCH v3] sunxi-irq: Fix Kconfig dependency on GENERIC_IRQ_CHIP Message-ID: <20160502064854.GL17159@lukather> References: <1461546292-21110-1-git-send-email-andre.przywara@arm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="DXTueXWT3Da08pik" Content-Disposition: inline In-Reply-To: <1461546292-21110-1-git-send-email-andre.przywara@arm.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --DXTueXWT3Da08pik Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, On Mon, Apr 25, 2016 at 02:04:52AM +0100, Andre Przywara wrote: > The Allwinner NMI irqchip driver requires GENERIC_IRQ_CHIP, but > we can't select it directly, because there is no specific Kconfig entry > for the driver. Compiling this NMI driver with certain arm64 > configurations thus fails due to the missing dependency: >=20 > drivers/built-in.o: In function `sunxi_sc_nmi_set_type': > drivers/irqchip/irq-sunxi-nmi.c:114: undefined reference to `irq_setup_al= t_chip' > drivers/built-in.o: In function `irq_domain_add_linear': > include/linux/irqdomain.h:253: undefined reference to `irq_generic_chip_o= ps' > include/linux/irqdomain.h:253: undefined reference to `irq_generic_chip_o= ps' > drivers/built-in.o: In function `sunxi_sc_nmi_irq_init': > drivers/irqchip/irq-sunxi-nmi.c:146: undefined reference to `irq_alloc_do= main_generic_chips' > drivers/irqchip/irq-sunxi-nmi.c:161: undefined reference to `irq_get_doma= in_generic_chip' > drivers/irqchip/irq-sunxi-nmi.c:170: undefined reference to `irq_gc_mask_= clr_bit' > drivers/irqchip/irq-sunxi-nmi.c:171: undefined reference to `irq_gc_mask_= set_bit' > drivers/irqchip/irq-sunxi-nmi.c:172: undefined reference to `irq_gc_ack_s= et_bit' > drivers/irqchip/irq-sunxi-nmi.c:170: undefined reference to `irq_gc_mask_= clr_bit' >=20 > Add separate Kconfig options for both Allwinner specific irqchip > drivers and select GENERIC_IRQ_CHIP for the NMI driver. > The older sun4i IRQ driver only gets selected when support for these > specific SoCs is compiled, while the NMI driver is selected for all > Allwinner SoCs (copying the current behaviour and covering future SoCs > automatically). >=20 > Reported-by: Suzuki K Poulose > Signed-off-by: Andre Przywara > --- > Hi, >=20 > this is a new approach to the problem that Suzuki tried to address > already. > It separates the sun4i IRQ controller driver and the NMI driver as > Maxime requested. > While there should be no difference for the NMI driver, the sun4i > driver now only gets selected for certain SoCs, which is admittedly > a bold call for -rc5. If people find this too risky, I can bring the > sun4i in line with the NMI driver (selected for all ARCH_SUNXI) for > this release and re-create the more selective dependency as a merge > window patch, so that it gets more testing. > Please let me know. >=20 > Cheers, > Andre. >=20 > arch/arm/mach-sunxi/Kconfig | 3 ++- > drivers/irqchip/Kconfig | 8 ++++++++ > drivers/irqchip/Makefile | 4 ++-- > 3 files changed, 12 insertions(+), 3 deletions(-) >=20 > diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig > index c124d65..c092bc2 100644 > --- a/arch/arm/mach-sunxi/Kconfig > +++ b/arch/arm/mach-sunxi/Kconfig > @@ -4,7 +4,6 @@ menuconfig ARCH_SUNXI > select ARCH_REQUIRE_GPIOLIB > select ARCH_HAS_RESET_CONTROLLER > select CLKSRC_MMIO > - select GENERIC_IRQ_CHIP > select PINCTRL > select SUN4I_TIMER > select RESET_CONTROLLER > @@ -14,11 +13,13 @@ if ARCH_SUNXI > config MACH_SUN4I > bool "Allwinner A10 (sun4i) SoCs support" > default ARCH_SUNXI > + select SUN4I_IRQCHIP > =20 > config MACH_SUN5I > bool "Allwinner A10s / A13 (sun5i) SoCs support" > default ARCH_SUNXI > select SUN5I_HSTIMER > + select SUN4I_IRQCHIP > =20 > config MACH_SUN6I > bool "Allwinner A31 (sun6i) SoCs support" > diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig > index 3e12479..94f3f42 100644 > --- a/drivers/irqchip/Kconfig > +++ b/drivers/irqchip/Kconfig > @@ -165,6 +165,14 @@ config ST_IRQCHIP > help > Enables SysCfg Controlled IRQs on STi based platforms. > =20 > +config SUN4I_IRQCHIP > + bool > + > +config SUNXI_NMI > + bool "Allwinner SoC NMI controller" > + default ARCH_SUNXI > + select GENERIC_IRQ_CHIP This one is only used on SUN6I, SUN7I and SUN8I. There's no need to enable it for all the SoCs. Thanks! Maxime --=20 Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com --DXTueXWT3Da08pik Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXJvhWAAoJEBx+YmzsjxAgX5AP/ip341mbyn+J5xz8XKtgwsjM DFF0oMVu/QaxDkOeJ45tZ0MroKXiBUuGM8Kw5MPJxnYEBHTR/7QIqbY6GKn1wYc5 ro0v0U70KR2rAo7GMHYWZICbb9wqA+/HDQXJW8rZjt2x8kE5v2q0IpWcNxoNP9XC 6PV1LFx//pWJHufLNSRFEE0M0ZQ64fF2zQXBPZuHKBAac6YFn3CLaO9iMBbGP4BO ++0z9r6OTQmwMfBzhS5vXrgSYSfM89/XuW9BJo+n4q6MUX9JSq+njE6xjFyuRxrL aZYqQv7o5sbfepksO8holVTZk0lr7LcQyrt1xiAjy2c2Ji7JroiJ/+W/oSTM4Uf2 W161fgpGqRsnbOfAIDkI4/asLo1XlD0/V5GpO+mtHJVnfFjD33eaQVAZYMZknZiF iUzYuNwfPTBIHPjHCX1sBRZzsDTsqPeYYKqywmIIgmuKUrQeLDrarESMbdFiRScn MyY/+ZVeraklm4vHKYcHze6n01/V+s4oRFwayWEJTuzooCWVYpzYF/UyKDn4FKXY zwuTlJY4VBP7XSF3qg7GICtvd7vlAy4C4A+b5scpp6Ad3YqvMpby/vKU6+ofVLGf 2auugJtKSk1BMaWSOwhwxQFTMbPg5XepRFSKof23OF1ZNZwH3w8gmnSN9yKJy2PW Op2AJPkgMsOM7B1mkyB9 =2Ipp -----END PGP SIGNATURE----- --DXTueXWT3Da08pik--