- 论坛徽章:
- 0
|
static int __init demo_init_module (void)
{
/ /* 注册硬件驱动程序 */
if (!pci_register_driver(&demo_pci_driver)) {
pci_unregister_driver(&demo_pci_driver);
return -ENODEV;
}
/* ... */
NEXT:
... return 0;
}
static int __init demo_probe(struct pci_dev *pci_dev, const struct
pci_device_id *pci_id)
{
struct demo_card *card;
/* 启动PCI设备 */
if (pci_enable_device(pci_dev))
return -EIO;
。。。。
request_region(card->iobase, 64, card_names[pci_id->driver_data]);
return 0;
}
请问PROBE函数是不是在我安装该驱动模块,进入到pci_register_driver函数里,PCI系统就会调用PROBE函数,如果PCI子系统能成功检测到设备并且条用了我的PROBE函数后,pci_register_driver才能返回到init_module 函数里,别且只有在PCI子系统能成功检测到设备并且条用了我的PROBE后,pci_register_driver返回的结果才是成功状态。
另外PROBE的第二个参数所提供的信息第一个参数不也包含吗??第二个参数是不是多余的??
我自己写的PCI驱动里面安装驱动时,给出出错提示no such device.,并且发现PROBE函数始终没被调用。
急急急 |
|