* [PATCH 0/2] soc: mediatek: Make mtk-infracfg modular @ 2026-05-29 10:16 Justin Yeh 2026-05-29 10:16 ` [PATCH 1/2] soc: mediatek: Allow MTK_INFRACFG to be built as module Justin Yeh 2026-05-29 10:16 ` [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules Justin Yeh 0 siblings, 2 replies; 4+ messages in thread From: Justin Yeh @ 2026-05-29 10:16 UTC (permalink / raw) To: Matthias Brugger, AngeloGioacchino Del Regno Cc: Project_Global_Chrome_Upstream_Group, linux-kernel, linux-arm-kernel, linux-mediatek, Justin Yeh This series converts mtk-infracfg to be buildable as a loadable module, allowing for more flexible kernel configurations and reduced memory footprint on systems that don't require this functionality built-in. Justin Yeh (2): soc: mediatek: Allow MTK_INFRACFG to be built as module soc: mediatek: mtk-infracfg: Export symbols for module support drivers/soc/mediatek/Kconfig | 2 +- drivers/soc/mediatek/mtk-infracfg.c | 9 +++++++-- include/linux/soc/mediatek/infracfg.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] soc: mediatek: Allow MTK_INFRACFG to be built as module 2026-05-29 10:16 [PATCH 0/2] soc: mediatek: Make mtk-infracfg modular Justin Yeh @ 2026-05-29 10:16 ` Justin Yeh 2026-05-29 10:16 ` [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules Justin Yeh 1 sibling, 0 replies; 4+ messages in thread From: Justin Yeh @ 2026-05-29 10:16 UTC (permalink / raw) To: Matthias Brugger, AngeloGioacchino Del Regno Cc: Project_Global_Chrome_Upstream_Group, linux-kernel, linux-arm-kernel, linux-mediatek, Justin Yeh Change MTK_INFRACFG from bool to tristate to support building it as a loadable kernel module (.ko) instead of being built into the kernel. This is required for DDK (Driver Development Kit) module build, where mtk-infracfg needs to be loaded dynamically along with other SoC infrastructure modules. Signed-off-by: Justin Yeh <justin.yeh@mediatek.com> --- drivers/soc/mediatek/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/mediatek/Kconfig b/drivers/soc/mediatek/Kconfig index d7293977f06e..d28b0817ce51 100644 --- a/drivers/soc/mediatek/Kconfig +++ b/drivers/soc/mediatek/Kconfig @@ -38,7 +38,7 @@ config MTK_DVFSRC best achievable performance-per-watt. config MTK_INFRACFG - bool "MediaTek INFRACFG Support" + tristate "MediaTek INFRACFG Support" select REGMAP help Say yes here to add support for the MediaTek INFRACFG controller. The -- 2.45.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules 2026-05-29 10:16 [PATCH 0/2] soc: mediatek: Make mtk-infracfg modular Justin Yeh 2026-05-29 10:16 ` [PATCH 1/2] soc: mediatek: Allow MTK_INFRACFG to be built as module Justin Yeh @ 2026-05-29 10:16 ` Justin Yeh 2026-06-23 8:06 ` AngeloGioacchino Del Regno 1 sibling, 1 reply; 4+ messages in thread From: Justin Yeh @ 2026-05-29 10:16 UTC (permalink / raw) To: Matthias Brugger, AngeloGioacchino Del Regno Cc: Project_Global_Chrome_Upstream_Group, linux-kernel, linux-arm-kernel, linux-mediatek, Justin Yeh Export mtk_infracfg functions to allow other DDK modules (like mtk-scpsys) to use bus protection APIs. Changes: - Add EXPORT_SYMBOL_GPL for set/clear bus_protection and init functions - Remove static and __init qualifiers from mtk_infracfg_init - Add mtk_infracfg_init() declaration to header - Remove postcore_initcall, let dependent modules call init explicitly - Add #include <linux/module.h> for export macros - Add MODULE_LICENSE("GPL") metadata This allows mtk-infracfg to be built as a DDK module (.ko) and its functions to be used by other modules like mtk-scpsys for power domain management. Signed-off-by: Justin Yeh <justin.yeh@mediatek.com> --- drivers/soc/mediatek/mtk-infracfg.c | 9 +++++++-- include/linux/soc/mediatek/infracfg.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/soc/mediatek/mtk-infracfg.c b/drivers/soc/mediatek/mtk-infracfg.c index 2acf19676af2..8a88805468cc 100644 --- a/drivers/soc/mediatek/mtk-infracfg.c +++ b/drivers/soc/mediatek/mtk-infracfg.c @@ -7,6 +7,7 @@ #include <linux/jiffies.h> #include <linux/regmap.h> #include <linux/mfd/syscon.h> +#include <linux/module.h> #include <linux/soc/mediatek/infracfg.h> #include <asm/processor.h> @@ -43,6 +44,7 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, return ret; } +EXPORT_SYMBOL_GPL(mtk_infracfg_set_bus_protection); /** * mtk_infracfg_clear_bus_protection - disable bus protection @@ -73,8 +75,9 @@ int mtk_infracfg_clear_bus_protection(struct regmap *infracfg, u32 mask, return ret; } +EXPORT_SYMBOL_GPL(mtk_infracfg_clear_bus_protection); -static int __init mtk_infracfg_init(void) +int mtk_infracfg_init(void) { struct regmap *infracfg; @@ -90,4 +93,6 @@ static int __init mtk_infracfg_init(void) MT8192_INFRA_CTRL_DISABLE_MFG2ACP); return 0; } -postcore_initcall(mtk_infracfg_init); +EXPORT_SYMBOL_GPL(mtk_infracfg_init); + +MODULE_LICENSE("GPL"); diff --git a/include/linux/soc/mediatek/infracfg.h b/include/linux/soc/mediatek/infracfg.h index 9956e18c5ffa..847431a7b967 100644 --- a/include/linux/soc/mediatek/infracfg.h +++ b/include/linux/soc/mediatek/infracfg.h @@ -454,4 +454,5 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, bool reg_update); int mtk_infracfg_clear_bus_protection(struct regmap *infracfg, u32 mask, bool reg_update); +int mtk_infracfg_init(void); #endif /* __SOC_MEDIATEK_INFRACFG_H */ -- 2.45.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules 2026-05-29 10:16 ` [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules Justin Yeh @ 2026-06-23 8:06 ` AngeloGioacchino Del Regno 0 siblings, 0 replies; 4+ messages in thread From: AngeloGioacchino Del Regno @ 2026-06-23 8:06 UTC (permalink / raw) To: Justin Yeh, Matthias Brugger Cc: Project_Global_Chrome_Upstream_Group, linux-kernel, linux-arm-kernel, linux-mediatek On 5/29/26 12:16, Justin Yeh wrote: > Export mtk_infracfg functions to allow other DDK modules (like > mtk-scpsys) to use bus protection APIs. > > Changes: > - Add EXPORT_SYMBOL_GPL for set/clear bus_protection and init functions > - Remove static and __init qualifiers from mtk_infracfg_init > - Add mtk_infracfg_init() declaration to header > - Remove postcore_initcall, let dependent modules call init explicitly > - Add #include <linux/module.h> for export macros > - Add MODULE_LICENSE("GPL") metadata > > This allows mtk-infracfg to be built as a DDK module (.ko) and its > functions to be used by other modules like mtk-scpsys for power domain > management. > > Signed-off-by: Justin Yeh <justin.yeh@mediatek.com> > --- > drivers/soc/mediatek/mtk-infracfg.c | 9 +++++++-- > include/linux/soc/mediatek/infracfg.h | 1 + > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-infracfg.c b/drivers/soc/mediatek/mtk-infracfg.c > index 2acf19676af2..8a88805468cc 100644 > --- a/drivers/soc/mediatek/mtk-infracfg.c > +++ b/drivers/soc/mediatek/mtk-infracfg.c > @@ -7,6 +7,7 @@ > #include <linux/jiffies.h> > #include <linux/regmap.h> > #include <linux/mfd/syscon.h> > +#include <linux/module.h> > #include <linux/soc/mediatek/infracfg.h> > #include <asm/processor.h> > > @@ -43,6 +44,7 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, > > return ret; > } > +EXPORT_SYMBOL_GPL(mtk_infracfg_set_bus_protection); > > /** > * mtk_infracfg_clear_bus_protection - disable bus protection > @@ -73,8 +75,9 @@ int mtk_infracfg_clear_bus_protection(struct regmap *infracfg, u32 mask, > > return ret; > } > +EXPORT_SYMBOL_GPL(mtk_infracfg_clear_bus_protection); Those two are ok, but I'd prefer to use namespaces (EXPORT_SYMBOL_NS_GPL) and to import the namespace in the relevant drivers. > > -static int __init mtk_infracfg_init(void) > +int mtk_infracfg_init(void) > { > struct regmap *infracfg; > > @@ -90,4 +93,6 @@ static int __init mtk_infracfg_init(void) > MT8192_INFRA_CTRL_DISABLE_MFG2ACP); > return 0; > } > -postcore_initcall(mtk_infracfg_init); > +EXPORT_SYMBOL_GPL(mtk_infracfg_init); Sorry, but that makes little sense. Check the mtk_infracfg_init() function: if you avoid the postcore_initcall() there, what's going to happen with MT8192?! :-) Cheers, Angelo > + > +MODULE_LICENSE("GPL"); > diff --git a/include/linux/soc/mediatek/infracfg.h b/include/linux/soc/mediatek/infracfg.h > index 9956e18c5ffa..847431a7b967 100644 > --- a/include/linux/soc/mediatek/infracfg.h > +++ b/include/linux/soc/mediatek/infracfg.h > @@ -454,4 +454,5 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, > bool reg_update); > int mtk_infracfg_clear_bus_protection(struct regmap *infracfg, u32 mask, > bool reg_update); > +int mtk_infracfg_init(void); > #endif /* __SOC_MEDIATEK_INFRACFG_H */ ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-06-23 8:06 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-29 10:16 [PATCH 0/2] soc: mediatek: Make mtk-infracfg modular Justin Yeh 2026-05-29 10:16 ` [PATCH 1/2] soc: mediatek: Allow MTK_INFRACFG to be built as module Justin Yeh 2026-05-29 10:16 ` [PATCH 2/2] soc: mediatek: mtk-infracfg: Export symbols for DDK modules Justin Yeh 2026-06-23 8:06 ` AngeloGioacchino Del Regno
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox