Предупреждение: spi_register_board_info не определено - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь написать модуль ядра spi. Однако я получаю предупреждение о том, что не могу разрешить.

WARNING: "spi_register_board_info" undefined!

И всякий раз, когда я пытаюсь загрузить модуль, онотображает ошибку "Неизвестный символ в модуле". Даже если символ существует, когда я проверял / proc / kallsyms

Вывод cat / proc / kallsyms |grep spi_register_board_info

c09e58c8 T spi_register_board_info

функция инициализации:

    #include "header.h"
    #include "declaration.h"
    #include "spiop.h"


    MODULE_AUTHOR("Vijay");
    MODULE_LICENSE("GPL");

    static struct spi_driver Vijay_spi =
    {
    .driver=
    {
            .name="Vijay_spi_driver",
        },
     .id_table=myid_table,
    .probe=spi_probe,
    .remove=spi_remove
};

static struct spi_board_info myspi_board_info []  __initdata = {
{
    .modalias="Vijay_spi",
    .max_speed_hz=14000000,
    .bus_num=0,
    .chip_select=3,
    .mode=SPI_MODE_0,
},
/*  {
        .modalias="spidev",
        .chip_select=0,
        .max_speed_hz=1*100*100,
        .bus_num=1,
        .mode=SPI_MODE_0,
    },*/
};


struct spi_driver *mydriver;

static int __init init_func(void)
{


    if(spi_register_board_info(myspi_board_info,ARRAY_SIZE(myspi_board_info)) == -1)
    {
        pr_err("spi_register_board_infofailed \n");
        goto OUT;
    }
#ifndef DEBUG
    printk(KERN_INFO "%s: Begin \n",__func__);
#endif
    mydriver=&Vijay_spi;

    if(spi_register_driver(mydriver) == -1)
    {
        pr_err("spi_register_driver failed \n");
        goto OUT;
    }

#ifndef DEBUG
    printk(KERN_INFO "%s: End \n",__func__);
#endif
    return 0;

OUT:
    return -1;
}

Содержимое header.h: -

#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/module.h>
#include<linux/slab.h>
#include<linux/spi/spi.h>
#include<linux/device.h>
#include<linux/types.h>
#include<linux/mutex.h>
#include<linux/mod_devicetable.h>

Может кто-нибудь пролить светпочему я получаю это предупреждение.

...