From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Zyngier <maz@kernel.org>
Cc: devicetree@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,
Saravana Kannan <saravanak@google.com>,
kernel-team@android.com, Hanks Chen <hanks.chen@mediatek.com>,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Andy Gross <agross@kernel.org>,
John Stultz <john.stultz@linaro.org>,
Enric Balletbo i Serra <enric.balletbo@collabora.com>,
Frank Wunderlich <linux@fw-web.de>,
Frank Rowand <frowand.list@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 3/6] irqchip: Introduce IRQCHIP_HYBRID_DRIVER_{BEGIN, END} macros
Date: Sat, 12 Sep 2020 18:21:09 -0500 [thread overview]
Message-ID: <20200912232109.GG3715@yoga> (raw)
In-Reply-To: <20200912125148.1271481-4-maz@kernel.org>
On Sat 12 Sep 07:51 CDT 2020, Marc Zyngier wrote:
> Although we are trying to move to a world where a large number
> of irqchip drivers can safely be built as platform drivers
> the reality is that most endpoint drivers are not ready for that,
> and will fail to probe as they expect their interrupt controller
> to be up and running.
>
> A halfway house solution is to let the driver indicate that if
> it is built-in (i.e. not a module), then it must use the earily
> probe mechanism, IRQCHIP_DECLARE() style. Otherwise, it is a
> normal module implemenenting a platform driver, and we can
> fallback to the existing code.
>
> Hopefully we'll one day be able to drop this code altogether,
> but that's not for tomorrow.
>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Marc Zyngier <maz@kernel.org>
> ---
> include/linux/irqchip.h | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/include/linux/irqchip.h b/include/linux/irqchip.h
> index f8f25e9f8200..31fc9d00101f 100644
> --- a/include/linux/irqchip.h
> +++ b/include/linux/irqchip.h
> @@ -50,6 +50,18 @@ static struct platform_driver drv_name##_driver = { \
> }; \
> builtin_platform_driver(drv_name##_driver)
>
> +#ifdef MODULE
> +#define IRQCHIP_HYBRID_DRIVER_BEGIN(drv) \
> + IRQCHIP_PLATFORM_DRIVER_BEGIN(drv)
> +#define IRQCHIP_HYBRID_DRIVER_END(drv) \
> + IRQCHIP_PLATFORM_DRIVER_END(drv)
> +#else
> +#define IRQCHIP_HYBRID_DRIVER_BEGIN(drv) \
> + _OF_DECLARE_ARRAY_START(irqchip, drv)
> +#define IRQCHIP_HYBRID_DRIVER_END(drv) \
> + _OF_DECLARE_ARRAY_END;
> +#endif
> +
> /*
> * This macro must be used by the different irqchip drivers to declare
> * the association between their version and their initialization function.
> --
> 2.28.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Zyngier <maz@kernel.org>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Enric Balletbo i Serra <enric.balletbo@collabora.com>,
Frank Wunderlich <linux@fw-web.de>,
John Stultz <john.stultz@linaro.org>,
Saravana Kannan <saravanak@google.com>,
Hanks Chen <hanks.chen@mediatek.com>,
Andy Gross <agross@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>,
Rob Herring <robh+dt@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
kernel-team@android.com
Subject: Re: [PATCH 3/6] irqchip: Introduce IRQCHIP_HYBRID_DRIVER_{BEGIN,END} macros
Date: Sat, 12 Sep 2020 18:21:09 -0500 [thread overview]
Message-ID: <20200912232109.GG3715@yoga> (raw)
In-Reply-To: <20200912125148.1271481-4-maz@kernel.org>
On Sat 12 Sep 07:51 CDT 2020, Marc Zyngier wrote:
> Although we are trying to move to a world where a large number
> of irqchip drivers can safely be built as platform drivers
> the reality is that most endpoint drivers are not ready for that,
> and will fail to probe as they expect their interrupt controller
> to be up and running.
>
> A halfway house solution is to let the driver indicate that if
> it is built-in (i.e. not a module), then it must use the earily
> probe mechanism, IRQCHIP_DECLARE() style. Otherwise, it is a
> normal module implemenenting a platform driver, and we can
> fallback to the existing code.
>
> Hopefully we'll one day be able to drop this code altogether,
> but that's not for tomorrow.
>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Marc Zyngier <maz@kernel.org>
> ---
> include/linux/irqchip.h | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/include/linux/irqchip.h b/include/linux/irqchip.h
> index f8f25e9f8200..31fc9d00101f 100644
> --- a/include/linux/irqchip.h
> +++ b/include/linux/irqchip.h
> @@ -50,6 +50,18 @@ static struct platform_driver drv_name##_driver = { \
> }; \
> builtin_platform_driver(drv_name##_driver)
>
> +#ifdef MODULE
> +#define IRQCHIP_HYBRID_DRIVER_BEGIN(drv) \
> + IRQCHIP_PLATFORM_DRIVER_BEGIN(drv)
> +#define IRQCHIP_HYBRID_DRIVER_END(drv) \
> + IRQCHIP_PLATFORM_DRIVER_END(drv)
> +#else
> +#define IRQCHIP_HYBRID_DRIVER_BEGIN(drv) \
> + _OF_DECLARE_ARRAY_START(irqchip, drv)
> +#define IRQCHIP_HYBRID_DRIVER_END(drv) \
> + _OF_DECLARE_ARRAY_END;
> +#endif
> +
> /*
> * This macro must be used by the different irqchip drivers to declare
> * the association between their version and their initialization function.
> --
> 2.28.0
>
next prev parent reply other threads:[~2020-09-12 23:22 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-12 12:51 [PATCH 0/6] irqchip: Hybrid probing Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 12:51 ` [PATCH 1/6] of: Add basic infrastructure to create early probe arrays Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 23:20 ` Bjorn Andersson
2020-09-12 23:20 ` Bjorn Andersson
2020-09-13 2:40 ` Bjorn Andersson
2020-09-13 2:40 ` Bjorn Andersson
2020-09-12 12:51 ` [PATCH 2/6] irqchip: Make IRQCHIP_MATCH() type safe Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 23:20 ` Bjorn Andersson
2020-09-12 23:20 ` Bjorn Andersson
2020-09-12 12:51 ` [PATCH 3/6] irqchip: Introduce IRQCHIP_HYBRID_DRIVER_{BEGIN, END} macros Marc Zyngier
2020-09-12 12:51 ` [PATCH 3/6] irqchip: Introduce IRQCHIP_HYBRID_DRIVER_{BEGIN,END} macros Marc Zyngier
2020-09-12 23:21 ` Bjorn Andersson [this message]
2020-09-12 23:21 ` Bjorn Andersson
2020-09-12 12:51 ` [PATCH 4/6] irqchip/mtk-cirq: Allow modular build Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 23:22 ` Bjorn Andersson
2020-09-12 23:22 ` Bjorn Andersson
2020-09-16 8:26 ` Enric Balletbo Serra
2020-09-16 8:26 ` Enric Balletbo Serra
2020-09-12 12:51 ` [PATCH 5/6] irqchip/mtk-sysirq: " Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 23:22 ` Bjorn Andersson
2020-09-12 23:22 ` Bjorn Andersson
2020-09-16 8:22 ` Enric Balletbo Serra
2020-09-16 8:22 ` Enric Balletbo Serra
2020-09-12 12:51 ` [PATCH 6/6] irqchip/qcom-pdc: " Marc Zyngier
2020-09-12 12:51 ` Marc Zyngier
2020-09-12 23:22 ` Bjorn Andersson
2020-09-12 23:22 ` Bjorn Andersson
2020-09-14 21:04 ` [PATCH] irqchip/qcom-pdc: Allow QCOM_PDC to be loadable as a permanent module John Stultz
2020-09-14 21:04 ` John Stultz
2020-09-15 6:56 ` Greg Kroah-Hartman
2020-09-15 6:56 ` Greg Kroah-Hartman
2020-09-15 15:44 ` Bjorn Andersson
2020-09-15 15:44 ` Bjorn Andersson
2020-09-14 20:33 ` [PATCH 0/6] irqchip: Hybrid probing John Stultz
2020-09-14 20:33 ` John Stultz
2020-09-15 21:13 ` Rob Herring
2020-09-15 21:13 ` Rob Herring
2020-09-16 8:51 ` Marc Zyngier
2020-09-16 8:51 ` Marc Zyngier
2020-09-16 15:18 ` Rob Herring
2020-09-16 15:18 ` Rob Herring
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=20200912232109.GG3715@yoga \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=enric.balletbo@collabora.com \
--cc=frowand.list@gmail.com \
--cc=hanks.chen@mediatek.com \
--cc=jason@lakedaemon.net \
--cc=john.stultz@linaro.org \
--cc=kernel-team@android.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@fw-web.de \
--cc=matthias.bgg@gmail.com \
--cc=maz@kernel.org \
--cc=robh+dt@kernel.org \
--cc=saravanak@google.com \
--cc=tglx@linutronix.de \
/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.