Re: [PATCH v7 4/5] pinctrl: mediatek: mt7986: register both platform drivers from a single initcall
AngeloGioacchino Del Regno <[email protected]>
| Newsgroups | org.kernel.vger.linux-gpio,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 7/23/26 05:58, Justin Yeh 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 <[email protected]> > Reviewed-by: Chen-Yu Tsai <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]>