From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: walter.chang@mediatek.com,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
Matthias Brugger <matthias.bgg@gmail.com>,
"Maciej W . Rozycki" <macro@orcam.me.uk>,
John Stultz <jstultz@google.com>
Cc: wsd_upstream@mediatek.com, stanley.chu@mediatek.com,
Chun-hung.Wu@mediatek.com, Freddy.Hsin@mediatek.com,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH linux-next v3 4/4] clocksource/drivers/timer-mediatek: Make timer-mediatek become loadable module
Date: Wed, 19 Apr 2023 10:10:58 +0200 [thread overview]
Message-ID: <3dac0be8-6a49-43db-da65-e99d2e9719e6@collabora.com> (raw)
In-Reply-To: <20230419074910.10809-5-walter.chang@mediatek.com>
Il 19/04/23 09:49, walter.chang@mediatek.com ha scritto:
> From: Chun-Hung Wu <chun-hung.wu@mediatek.com>
>
> Make the timer-mediatek driver which can register
> an always-on timer as tick_broadcast_device on
> MediaTek SoCs become loadable module in GKI.
>
> Tested-by: Walter Chang <walter.chang@mediatek.com>
> Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
I think I typoed your email when sending the example patch for the
conversion to platform_device. Check [1], it may be better to just
iterate through that? (please ignore the pure_initcall() part, that's
a mistake, it's never gonna happen as it automatically becomes a
module_init() call).
It depends on what maintainers think about that clocksource.h addition,
the patch got zero comments, so if you're interested in that perhaps we
can explicitly ask what would be the best option between yours and mine;
that addition is done only to avoid the big ifdef party that this patch
proposes and makes things a bit shorter if this timer modularization
goes on with more drivers, but I don't have strong opinions anyway.
In the meanwhile, just to eventually speed up integrating this, or the
other patch - I'll still give you a review of this one.
[1]:
https://patchwork.kernel.org/project/linux-mediatek/patch/20230309132119.175650-1-angelogioacchino.delregno@collabora.com/
> ---
> drivers/clocksource/Kconfig | 2 +-
> drivers/clocksource/timer-mediatek.c | 39 ++++++++++++++++++++++++++++
> 2 files changed, 40 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 526382dc7482..a7413ad7b6ad 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -472,7 +472,7 @@ config SYS_SUPPORTS_SH_CMT
> bool
>
> config MTK_TIMER
> - bool "Mediatek timer driver" if COMPILE_TEST
> + tristate "Mediatek timer driver"
While at it, you could also fix the text, Mediatek -> MediaTek
> depends on HAS_IOMEM
> select TIMER_OF
> select CLKSRC_MMIO
> diff --git a/drivers/clocksource/timer-mediatek.c b/drivers/clocksource/timer-mediatek.c
> index 7bcb4a3f26fb..3448848682c0 100644
> --- a/drivers/clocksource/timer-mediatek.c
> +++ b/drivers/clocksource/timer-mediatek.c
> @@ -13,6 +13,9 @@
> #include <linux/clocksource.h>
> #include <linux/interrupt.h>
> #include <linux/irqreturn.h>
> +#include <linux/module.h>
> +#include <linux/of_device.h>
> +#include <linux/platform_device.h>
> #include <linux/sched_clock.h>
> #include <linux/slab.h>
> #include "timer-of.h"
> @@ -337,5 +340,41 @@ static int __init mtk_gpt_init(struct device_node *node)
>
> return 0;
> }
> +
> +#ifdef MODULE
#ifndef MODULE
... two lines...
#else
... a bunch of lines ...
#endif
looks more readable. I'd go with that.
> +static int mtk_timer_probe(struct platform_device *pdev)
> +{
> + int (*timer_init)(struct device_node *node);
> + struct device_node *np = pdev->dev.of_node;
> +
> + timer_init = of_device_get_match_data(&pdev->dev);
> + return timer_init(np);
> +}
> +
> +static const struct of_device_id mtk_timer_match_table[] = {
> + {
> + .compatible = "mediatek,mt6577-timer",
> + .data = mtk_gpt_init,
Fits in one line!
> + },
> + {
> + .compatible = "mediatek,mt6765-timer",
> + .data = mtk_syst_init,
ditto.
> + },
> + {}
Always end with { /* sentinel */ }
> +};
> +
> +static struct platform_driver mtk_timer_driver = {
> + .probe = mtk_timer_probe,
> + .driver = {
> + .name = "mtk-timer",
"mediatek-timer" looks nicer :-)
> + .of_match_table = mtk_timer_match_table,
> + },
> +};
> +module_platform_driver(mtk_timer_driver);
> +
> +MODULE_DESCRIPTION("MediaTek Module Timer driver");
"MediaTek Timer driver" is enough, "Module" gets misleading if this gets compiled
as built in platform driver (instead of built in timer_of).
> +MODULE_LICENSE("GPL v2");
> +#else
> TIMER_OF_DECLARE(mtk_mt6577, "mediatek,mt6577-timer", mtk_gpt_init);
> TIMER_OF_DECLARE(mtk_mt6765, "mediatek,mt6765-timer", mtk_syst_init);
> +#endif
next prev parent reply other threads:[~2023-04-19 8:11 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-19 7:49 [PATCH linux-next v3 0/4] Support timer drivers as loadable modules walter.chang
2023-04-19 7:49 ` [PATCH linux-next v3 1/4] time/sched_clock: Export sched_clock_register() walter.chang
2023-05-12 3:12 ` John Stultz
2023-04-19 7:49 ` [PATCH linux-next v3 2/4] clocksource/drivers/mmio: Export clocksource_mmio_init() walter.chang
2023-04-19 7:49 ` [PATCH linux-next v3 3/4] clocksource/drivers/timer-of: Remove __init markings walter.chang
2023-04-19 7:49 ` [PATCH linux-next v3 4/4] clocksource/drivers/timer-mediatek: Make timer-mediatek become loadable module walter.chang
2023-04-19 8:10 ` AngeloGioacchino Del Regno [this message]
2023-04-20 1:46 ` Walter Chang (張維哲)
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=3dac0be8-6a49-43db-da65-e99d2e9719e6@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=Chun-hung.Wu@mediatek.com \
--cc=Freddy.Hsin@mediatek.com \
--cc=daniel.lezcano@linaro.org \
--cc=jstultz@google.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=macro@orcam.me.uk \
--cc=matthias.bgg@gmail.com \
--cc=stanley.chu@mediatek.com \
--cc=tglx@linutronix.de \
--cc=walter.chang@mediatek.com \
--cc=wsd_upstream@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome