Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp4273129pxb; Mon, 27 Sep 2021 13:11:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwUl/R+jZBGfhcvjf6eWD2y2VGxOvUfuDupOITaKweLFNqzPm4Cpr0XQCC6m/pHCmglUM+c X-Received: by 2002:a63:b04c:: with SMTP id z12mr1201170pgo.371.1632773495845; Mon, 27 Sep 2021 13:11:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632773495; cv=none; d=google.com; s=arc-20160816; b=vGOcf/fDvcKYRWbQjgydNgK2UCkVK1VrSX1hkqzcTXi9LWTMfszTPXN04xpww3ILF8 yNpKPIYcuPw0SZn9G1dK8cyBXO1inu6NsoRYJp75RzXpvEykPUWya4wimc5ojgpsSlcx 8JEWRrrvK9F1KGRpWumOfhafYqfAonvyqt2A3OO4+dMOZBFh1Kmi7k/bD/PfPeBUv3jQ MWqFHICChQ+8meTp+y8H5Vs1yd7lH1CKpzgBFSzSe0Rmthv8vT63Y/GBOYA48oZDbKPs R91yu/YZEfVM0+oe6CEfiHmjCeCwDSJThF3mhgapEmcmeRz/LTA4IGKv8XOPI4WfiaD4 SMWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=d5ITitKbW8QknxMC9x+amJYPxE5+CtXakSS4f6Ruyrk=; b=0qW+0o4vP9b89M5QdIFWxjncjuN5CX/SIMrulqgMadc6BXtls+uZjCbMgu7XThsBh/ w3UQdMtgWfcyXWXZb/llRZvh6WQ2WG5I/GKgpNyvOdaOl2LTxNrsvoh07SgLjm4rSjrR i/+XQBPQQx0cqsRqdNCXjkvGHfNgNrfGLBHYKjo+tfkI6ooMA2TUHKreSDTwOwB3B61D r1Pxdm26nBnyOVY7HxEMtzMKjvQZLbEDf3Y/K18oGv2TfOtHj/syneUwmmgAoxv+t0fT eKnsk75e2wnM62LnRORaoJ7NzA5wKXf2wEGubHeJy/rPxM2Mn7Wdj30sGrE7Irlc8+Os Kuiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=iz+rXT9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q4si19653846pln.372.2021.09.27.13.11.23; Mon, 27 Sep 2021 13:11:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=iz+rXT9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236805AbhI0ULC (ORCPT + 99 others); Mon, 27 Sep 2021 16:11:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:59614 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236750AbhI0ULC (ORCPT ); Mon, 27 Sep 2021 16:11:02 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id C2F8F6103B; Mon, 27 Sep 2021 20:09:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1632773363; bh=J4WKzNfsIiazj7H7fCzN53GkjN+q2BUUdv7RdPQ+jvs=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=iz+rXT9iurX/Sbwxr0JiSOuhKGhkSJ/ZvA9uw914KWJpvAANWwMdb/MtedCiS54lS O4dVlseh6GqrUxg1YD+XyKKd+SwGAuj8FFf5ji70+pHdB4/pRrUxxo8jf8IudGCDtu LtBnr3LkhDr5Hfzmbruf/81BbM7+KWYfUt9oMhE2sH/EqooPTEMF5VjZ5LXEAAh9hO z2CiZ7lgLXGHXi7oXi2Td1tROFYJz/ERayeCuMoOF7473nW6Y0xZlsqx5Zblamfymm 5XKvXVyLbE8UF++l1RJyUg7RBYeHIXiU6vEP5mRK5UT5zlQq7jHKbA1wRxDbH0Wixx nRXT2zqo1kryQ== Received: by mail-ed1-f41.google.com with SMTP id v18so38724181edc.11; Mon, 27 Sep 2021 13:09:23 -0700 (PDT) X-Gm-Message-State: AOAM531QT4+7eR985DjBPxx7rdtJt9rzt0fInld5E3uodnIFioP8EpAR i6/mC//ZFMbiFAx31iJcZp3aTs8w/7n66+C/PQ== X-Received: by 2002:a17:906:7217:: with SMTP id m23mr2177174ejk.466.1632773362346; Mon, 27 Sep 2021 13:09:22 -0700 (PDT) MIME-Version: 1.0 References: <20210924170546.805663-1-f.fainelli@gmail.com> <20210924170546.805663-8-f.fainelli@gmail.com> In-Reply-To: From: Rob Herring Date: Mon, 27 Sep 2021 15:09:10 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 07/11] of/irq: Export of_irq_count to drivers To: Florian Fainelli Cc: "linux-kernel@vger.kernel.org" , Russell King , Ray Jui , Scott Branden , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Catalin Marinas , Will Deacon , Yoshinori Sato , Rich Felker , Thomas Gleixner , Marc Zyngier , Frank Rowand , Ard Biesheuvel , Mike Rapoport , Linus Walleij , Andrew Morton , Geert Uytterhoeven , Arnd Bergmann , Guenter Roeck , Kefeng Wang , Mark Rutland , Andrey Konovalov , Anshuman Khandual , Valentin Schneider , Ingo Molnar , Peter Zijlstra , "moderated list:ARM PORT" , "open list:SUPERH" , "open list:BROADCOM BMIPS MIPS ARCHITECTURE" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Sep 27, 2021 at 2:49 PM Florian Fainelli wrote: > > On 9/27/21 12:43 PM, Rob Herring wrote: > > On Mon, Sep 27, 2021 at 2:28 PM Florian Fainelli wrote: > >> > >> On 9/27/21 12:08 PM, Rob Herring wrote: > >>> On Fri, Sep 24, 2021 at 12:07 PM Florian Fainelli wrote: > >>>> > >>>> In order to build drivers/irqchip/irq-bcm7120-l2.c as a module, we will > >>>> need to have of_irq_count() exported to modules. > >>>> > >>>> Signed-off-by: Florian Fainelli > >>>> --- > >>>> drivers/of/irq.c | 1 + > >>>> 1 file changed, 1 insertion(+) > >>>> > >>>> diff --git a/drivers/of/irq.c b/drivers/of/irq.c > >>>> index 352e14b007e7..949b9d1f8729 100644 > >>>> --- a/drivers/of/irq.c > >>>> +++ b/drivers/of/irq.c > >>>> @@ -440,6 +440,7 @@ int of_irq_count(struct device_node *dev) > >>>> > >>>> return nr; > >>>> } > >>>> +EXPORT_SYMBOL_GPL(of_irq_count); > >>> > >>> Please convert to use platform_irq_count() instead. > >> > >> That requires a platform_device to be passed to platform_irq_count(), > >> will that work even when the drivers remain built into the kernel and > >> get initialized early on? > > > > No, does your irqchip using this do both? Looks to me like it is > > always a platform_device. > > On ARM/ARM64 not using GKI as well as MIPS, we would want the module to > be built into the kernel image, however when using GKI that driver would > become a module. How do you suggest reconciling both usages? What's there to resolve? Every driver that works as a module can be built-in. Is there something special about irqchip drivers? The only issue I see here is platform_irqchip_probe() doesn't pass the platform_device pointer to the irq_init_cb function. There's 3 ways to fix that. Add a platform_device pointer to the init hook. That's a global change though. That's the right thing to do IMO. Or you can use of_find_device_by_node(). That's fairly expensive, but easy and isolated. You could also set device_node.data pointer to the platform_device, but ideally I'd like to get rid of that pointer as it's hardly used. Rob