Функция зонда драйвера PCIe не вызывается

Я написал драйвер PCIe. Во время отладки я заметил, что моя функция проверки никогда не вызывается, и я не вижу проблемы. Надеюсь, ты сможешь мне помочь.

Вот код:

static int device_init(struct pci_dev *dev, const struct pci_device_id *id)
{ ... }

static struct pci_device_id pci_drv_tbl[] = {{ PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_XILINX_PCIE, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0 }, { 0,}};

static struct pci_driver pci_drv =  
{                                                  
.name= "Xilinx PCIe",
.id_table= pci_drv_tbl,
.probe= device_init,
.remove= device_deinit,
};

И здесь я собираюсь вызвать device_init()fct:

static int pci_drv_init (void)
{
    if(register_chrdev(drvMajor, drvName, &pci_fops) == 0) {
         if (pci_register_driver(&pci_drv) == 0) {
              printk("Nach pci_register_driver \n");
              return 0;
         }
         printk("register_chrdev failed!\n");
    }
    return -EIO;
}

Я не получаю никаких сообщений об ошибках или что-то в этом роде, но, конечно, мой драйвер не работает, так как device_init(...) никогда не вызывается.

0 ответов

Другие вопросы по тегам