[PATCH v5 3/4] pinctrl: mediatek: mt7986: register both platform drivers from a single initcall
Chen-Yu Tsai
wenst at chromium.org
Thu Jul 9 00:02:20 PDT 2026
On Thu, Jul 9, 2026 at 2:35 PM Justin Yeh <justin.yeh at mediatek.com> wrote:
>
> The MT7986 driver registers two separate platform drivers (mt7986a and
> mt7986b) and used to call arch_initcall() twice, once for each.
>
> This is fine while the driver is built-in, but a single translation unit
> can only provide one module_init(). Since arch_initcall() expands to
> module_init() when built as a module, having two of them would break the
> module build with a redefinition of init_module()/__inittest().
>
> Fold both platform drivers into a single driver array and register them
> from one initcall using platform_register_drivers(), matching the shape of
> the other MediaTek pinctrl SoC drivers. platform_register_drivers() also
> rolls back the first registration if the second one fails.
>
> No functional change for built-in builds; this is a preparatory cleanup
> for enabling module builds.
>
> Signed-off-by: Justin Yeh <justin.yeh at mediatek.com>
Reviewed-by: Chen-Yu Tsai <wenst at chromium.org>
More information about the Linux-mediatek
mailing list