- 論壇徽章:
- 0
|
static int __init demo_init_module (void)
{
/ /* 注冊(cè)硬件驅(qū)動(dòng)程序 */
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;
/* 啟動(dòng)PCI設(shè)備 */
if (pci_enable_device(pci_dev))
return -EIO;
。。。。
request_region(card->iobase, 64, card_names[pci_id->driver_data]);
return 0;
}
請(qǐng)問PROBE函數(shù)是不是在我安裝該驅(qū)動(dòng)模塊,進(jìn)入到pci_register_driver函數(shù)里,PCI系統(tǒng)就會(huì)調(diào)用PROBE函數(shù),如果PCI子系統(tǒng)能成功檢測(cè)到設(shè)備并且條用了我的PROBE函數(shù)后,pci_register_driver才能返回到init_module 函數(shù)里,別且只有在PCI子系統(tǒng)能成功檢測(cè)到設(shè)備并且條用了我的PROBE后,pci_register_driver返回的結(jié)果才是成功狀態(tài)。
另外PROBE的第二個(gè)參數(shù)所提供的信息第一個(gè)參數(shù)不也包含嗎??第二個(gè)參數(shù)是不是多余的??
我自己寫的PCI驅(qū)動(dòng)里面安裝驅(qū)動(dòng)時(shí),給出出錯(cuò)提示no such device.,并且發(fā)現(xiàn)PROBE函數(shù)始終沒被調(diào)用。
急急急 |
|