From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751391AbcEHTNO (ORCPT ); Sun, 8 May 2016 15:13:14 -0400 Received: from down.free-electrons.com ([37.187.137.238]:47365 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750896AbcEHTNM (ORCPT ); Sun, 8 May 2016 15:13:12 -0400 Date: Sun, 8 May 2016 21:13:10 +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: <20160508191310.GE6167@lukather> References: <1461546292-21110-1-git-send-email-andre.przywara@arm.com> <20160502064854.GL17159@lukather> <5729D2A0.70900@arm.com> <20160505132146.GH17159@lukather> <572B55CC.7080603@arm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="SWTRyWv/ijrBap1m" Content-Disposition: inline In-Reply-To: <572B55CC.7080603@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 --SWTRyWv/ijrBap1m Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 05, 2016 at 03:16:44PM +0100, Andre Przywara wrote: > Hi Maxime, >=20 > On 05/05/16 14:21, Maxime Ripard wrote: > > On Wed, May 04, 2016 at 11:44:48AM +0100, Andre Przywara wrote: > >> Hi Maxime, > >> > >> On 02/05/16 07:48, Maxime Ripard wrote: > >>> 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 en= try > >>>> for the driver. Compiling this NMI driver with certain arm64 > >>>> configurations thus fails due to the missing dependency: > >>>> > >>>> drivers/built-in.o: In function `sunxi_sc_nmi_set_type': > >>>> drivers/irqchip/irq-sunxi-nmi.c:114: undefined reference to `irq_set= up_alt_chip' > >>>> drivers/built-in.o: In function `irq_domain_add_linear': > >>>> include/linux/irqdomain.h:253: undefined reference to `irq_generic_c= hip_ops' > >>>> include/linux/irqdomain.h:253: undefined reference to `irq_generic_c= hip_ops' > >>>> drivers/built-in.o: In function `sunxi_sc_nmi_irq_init': > >>>> drivers/irqchip/irq-sunxi-nmi.c:146: undefined reference to `irq_all= oc_domain_generic_chips' > >>>> drivers/irqchip/irq-sunxi-nmi.c:161: undefined reference to `irq_get= _domain_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_set_bit' > >>>> drivers/irqchip/irq-sunxi-nmi.c:170: undefined reference to `irq_gc_= mask_clr_bit' > >>>> > >>>> 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 So= Cs > >>>> automatically). > >>>> > >>>> Reported-by: Suzuki K Poulose > >>>> Signed-off-by: Andre Przywara > >>>> --- > >>>> Hi, > >>>> > >>>> 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. > >>>> > >>>> Cheers, > >>>> Andre. > >>>> > >>>> arch/arm/mach-sunxi/Kconfig | 3 ++- > >>>> drivers/irqchip/Kconfig | 8 ++++++++ > >>>> drivers/irqchip/Makefile | 4 ++-- > >>>> 3 files changed, 12 insertions(+), 3 deletions(-) > >>>> > >>>> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconf= ig > >>>> 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. > >> > >> But it is enabled for all SoCs at the moment - and as it is actually a > >> fix (-rc1 does not compile for certain arm64 configs) I'd really like = to > >> not take chances here. > >> As mentioned I am happy to send a follow up patch to restrict it furth= er > >> - given that it gets more testing, but at the moment I'd really like to > >> just fix the arm64 build without accidentally breaking existing arm(32) > >> boards. > >=20 > > Then at least be consistent and do the same thing for the A10 irq > > controller too. >=20 > Which is basically what Suzuki proposed with v2: > https://lkml.org/lkml/2016/4/13/592 And I already told that this was the wrong approach back then. A month down the road, we still have made no progress. > This patch also has been acked by Marc, so can't we just take that for > 4.6 and I'll send a patch on top of that to make a more fine grained > selection for the next release? I'm really not a fan of holding people hostage to get patches merged, but yeah, go ahead. We're very close from the merge window now, so I guess I won't even have a proper patch in 4.7... Great. Maxime --=20 Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com --SWTRyWv/ijrBap1m Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXL4/GAAoJEBx+YmzsjxAgrp8QAK1bSyPsO23gcIGOJ75mMonI py2d2DPRFR+xvRU2efYtlURfNhs0FwblVpUMdJygF+/DwXe8ygCuDAi5ezb9DUYK 1kKVdTB7m4EqijI7pCUUscOmOpkXxFVNdN5+0iTA6bHidKnLOmDMDV82Eyo9NysR aa3uincKd8A1Jf794OHNrl87DNw+c1JpgvteDUNEmcCjEtlGBbTdGOmHS0eLm1oh dojkKSyWatVmbphZGJIFuvAvICx/GYKqKvatzMnuj9ikcFMNhWE1vopWdr+lE1eO Uaw4xM3vkkyt8Xdh4moY+XTnTqpj55r4pVUVEboR5iNWsyoapVUVxyvJzgFYtI5E 2GOvXltoRAj73L+0SJiY8CMlMqgtTjjULFaTTFd4TelunitNnfBhY7f0FE2DT0r4 kgvaKD6U6+42G0khd2BeOS2f95LCaV5f6BC+uEhdcbD80Zaq9o4gGnyfba83FQqj ukNEZX+u0nsPrOhaSXM9G5To6O2GrQh4kdUnrMv4OhepmSFmuHqRJym46v8Ynasc lwd2fS6PXqpAgVRsjwpRIVvPV1hM+3FEaLaRKswCGx7oS0L4UKpq1IO08Qhjgtya KRhfeUFDl76lazUB7NLhanX0AcQ0POrqOPzON7TuhZR1IV/lYx8ZxZHdV57Huc2q 7sa1h3u0x3GmraXPYCzM =UQys -----END PGP SIGNATURE----- --SWTRyWv/ijrBap1m--