Как управлять последовательностью инициализации встроенного драйвера с помощью дерева устройств? - PullRequest
0 голосов
/ 30 января 2019

Я бы хотел изменить последовательность инициализации встроенного драйвера.Я использую файл дерева устройств (DTS).Согласно моему опыту, я мог контролировать последовательность загрузки встроенного драйвера с помощью функций initcall, как показано ниже, когда я не использовал файл dts.

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);

Не могли бы вы дать совет, что я что-то пропустил?

...