我想更改内置驱动程序模块的初始化顺序。 我使用设备树文件(dts)。 根据我的经验,当我不使用dts文件时,可以使用如下所示的initcall函数控制内置驱动程序的加载顺序。
pure_initcall(fn),device_initcall(fn),late_initcall(fn)...
我的内置驱动程序正在使用dts文件。 这是我的原始代码。
static struct platform_driver board_info_driver = {
.probe = board_info_probe,
.remove = board_info_remove,
.driver = {
.name = "boardinfo",
.of_match_table = of_board_info_match,
},
};
module_platform_driver(board_info_driver);
要更改上述代码的初始化顺序,我尝试使用其他initcall函数。但是,驱动程序加载时间没有太大变化。
static int __init board_info_init(void)
{
return platform_driver_register(&board_info_driver);
}
static void __init board_info_exit(void)
{
platform_driver_unregister(&board_info_driver);
}
//pure_initcall(board_info_init);
//device_initcall(board_info_init);
late_initicall(board_info_init);
您能给我些什么吗?